今天初学MySQL:从“敲错分号”到看懂数据表的一天
第一次打开MySQL命令行客户端时,看着黑屏上闪烁的光标,我连“怎么开始”都不知道——直到老师敲下show databases;
,屏幕列出一堆数据库名称,我才慢慢摸清:原来这就是用来存数据的“大仓库”。
最开始绕不过的是“数据库”和“表”的关系。老师在黑板上画了个文件夹:“数据库就像你电脑里的‘学习资料’文件夹,表就是文件夹里的‘Java笔记.xlsx’‘算法题.csv’——每个库装同类的表,每个表存结构化的数据。”这话一下点醒了我,之前总把两者混为一谈,现在才懂:要存学生信息,得先建个student_db
数据库,再在里面建student_info
表,表里面再设id
“姓名”“年龄”这些字段,就像Excel表格的表头一样,规规矩矩才能存数据。
接着学最基础的SQL语句,第一个坑就栽在“分号”上。老师教我们用create database test_db;
创建数据库,我手快没敲分号,按了回车后光标一直闪,半天没反应。旁边同学提醒“SQL语句要加分号结尾”,我补上分号再执行,屏幕弹出“Query OK”,才算成功建出第一个数据库。后来写create table student(id int, name varchar(20), age int);
时,又忘了给varchar
加长度,报错“syntax error”,查了课本才知道,字符串类型必须指定能存多少个字符,就像给杯子标上“能装500ml水”一样,不能含糊。
第一次往表里插数据时,还闹了个小笑话。我写insert into student values(1, 张三, 18);
,结果报错“Unknown column '张三'”。老师过来看了眼说:“字符串得用单引号包起来,不然MySQL会以为‘张三’是个字段名。”我赶紧改成insert into student values(1, '张三', 18);
,再用select * from student;
查询,屏幕上终于显示出一行数据:id=1,name=张三,age=18。看着自己插的第一条数据,突然觉得“数据持久化”不再是课本上的词——原来Java里用变量、集合存的数据,一关程序就没了,而MySQL里的表,就算关掉客户端,数据也还在,这就是“存住数据”的感觉。
课堂练习时,老师让我们写个“图书表”,包含book_id
“book_name”“author”字段,再插3条数据。我照着之前的步骤来:先建库book_db
,再建表book_info
,这次特意注意了分号和引号,还给book_id
加了primary key
(老师说主键能唯一标识每条数据,就像每个人的身份证号)。插完数据后用select book_name, author from book_info;
只查书名和作者,结果精准显示出来,没带多余的字段——原来SQL查询还能“按需取数”,比Java里遍历集合方便多了。
下课前关掉MySQL客户端,脑子里还回放着今天的操作:从建库、建表到插数据、查询,每一步都要守SQL的规矩,错个符号就报错,但成功后看着结构化的数据,又特别有成就感。之前总觉得“数据库是后端的事,离自己很远”,现在才发现,它就是个“专业存数据的工具”,以后写Java项目要存用户、订单数据,都得靠它。
晚上打算再练几个表,比如“成绩表”,试试给字段加not null
(不让字段为空),再用select * from score where score > 90;
查高分数据。原来MySQL入门也没那么难,只要跟着步骤来,把每个小错误记下来,慢慢就能摸透它的脾气~