创建数据库
用CREATE DATABASE关键字(也可以小写但建议关键字用大写方便区分)创建一个名为“mydatabase”的数据库。
CREATE DATABASE mydatabase;
如果名称和关键字相撞,可以用Esc键下面的反引号括起来(关键字会显示蓝色)。
选择要运行的语句再点击“闪电”(也可以根据鼠标点下这一语句然后再点击第二个“闪电”即带“I的闪电”)即可创建数据库“database”(已经存在的数据库再创建会报错)。
显示数据库
用SHOW DATABASE显示已有的数据库,其中红框里的是Mysql内建的数据库。
SHOW DATABASES;
删除数据库
用DROP DATABASE删除名为"database"的数据库(不冲突的名字可以不用反引号括起来)。
DROP DATABASE `database`;
表格
创建表格
USE表示使用哪个数据库,CREATE TABLE表示在该数据库下创建表格,在这里都用反引号括起来是为了防止冲突,比如name(单行注释--后记得加一个空格才能被识别为注释)。
USE mydatabase;
CREATE TABLE `student`(
`student_id` INT PRIMARY KEY,-- INT表示student_id的数据类型是int整型,PRIMARY KEY表示student_id是作为student区分的唯一标识
`name` VARCHAR(20),-- VARCHAR(20)表示是个不定长的字符串,最大可以存20个字符
`major` VARCHAR(20)
);
显示表格样式
用DESCRIBE显示表格。
DESCRIBE student;
删除表格
用DROP TABLE删除表格。
DROP TABLE student;
更改表格的某行
用ALTER TABLE `表格` ADD 增加表格中的属性(行)。
ALTER TABLE student ADD gpa DECIMAL(3,2);-- DECIMAL(3,2)表示十进制的浮点数,其中位数3位,小数位占2位
用ALTER TABLE `表格` DROP COLUMN `属性` 删除表格中的某属性。
ALTER TABLE student DROP COLUMN gpa;
填写表格
用INSERT INTO `表格` VALUES()按照创建的表格中的属性顺序填写表格(如果某个属性不填就默认为NULL或者也可以直接填NULL)。
INSERT INTO student VALUES(1,'小黑','物理');
显示表格内容
用SELECT * FROM `表格`显示表格中填写的内容(*代表全部)。
SELECT * FROM student;
表格的属性限制
新增诸如NOT NULL、UNIQUE等限制属性的值。
CREATE TABLE `student`(
`student_id` INT PRIMARY KEY AUTO_INCREMENT,-- AUTO_INCREMENT表示自动编号,这样填表就不用手动填student_id的值了
`name` VARCHAR(20) NOT NULL,-- 表示该属性不能为NULL
`major` VARCHAR(20) UNIQUE -- 表示该属性的值不能重复,比如已经有‘物理’就不能再新增major为‘物理’的字段了
);
一般在PRIMARY KEY加上AUTO_INCREMENT自动编号,但是填表时需要(`name`,`major`)这样指定填的是`name`,`major`。
修改表格属性
修改
比如初始的表格是这样的。
现在要将“英语”改为“英语文学”。
UPDATE student
SET major = '英语文学'
WHERE major = '英语';
我们也可以在WHERE里填其他属性来找到该条表格信息。
我们也可以用OR同时把“英语文学”和“物理”都改为“数学”。
我们可以在SET同时修改多个属性值。
如果不写WHERE就会修改全部。
删除
用DELETE FROM删除第几条数据。
DELETE FROM student
WHERE student_id = 3;
我们也可以在WHERE匹配多个条件。
除了用逻辑运算符,我们也可以用比较运算符,注意不等于是<>。
不写WHERE就是全删。
搜寻表格数据
用SELECT "属性" FROM "表格" 获取某属性,如果多个属性则用逗号隔开(*是全部属性)。
SELECT `name` FROM `student`;
现在新增一个"score"分数用来演示排序。
用ORDER BY可以从小到大排序,也可以写ORDER BY `score`,`student_id`,这样表示如果"score"一样再按"student_id"从小到大排。
从大到小则加上DESC,默认是从小到大ASC。
LIMIT表示获取前几条数据。
还可以与排序结合起来,比如获取前几高分数的数据。
还可以与WHERE结合起来,比如获取分数为100的数据。
用IN类似于用OR连接起来,不过会更简洁。