sql基本语法
关键字不一定使用大写,一般是便于区分内容
创建数据库
1 | CREATE DATABASE `demo`; |
反引号主要是用于防止创建的名称和关键字重复导致报错,如database
创建之后可以用show检查是否已经生成
1 | SHOW DATABASE; |
删除数据库
1 | DROP DATABASE `demo`; |
使用数据库
1 | USE `demo`; |
先了解一下有哪些数据类型
| int | decimal(m,n) | varchar(n) | blob | date | timestamp |
|---|---|---|---|---|---|
| 整数 | 小数 m代表总共几位数,n代表小数点部分占几位数 | 字符串 n代表存放多少字节 | 图片 影像 档案 | ‘YYYY-MM-DD’ 日期 | ‘YYYY-MM-DD HH:MM:SS’ 记录时间 |
创建表格
1 | CREATE TABLE `student`( |
每行执行语句后加上逗号分隔开,在主键字段后加上PRIMARY KEY设置主键
1 | CREATE TABLE `student`( |
或者在最后加上 PRIMARY KEY(主键名称)
限制
1 | CREATE TABLE `student`( |
AUTO_INCREMENT:会自动由1开始增加,减少手动输入带来的失误(一般用于设计主键),插入数据时也可以不用填入
NOT NULL:该属性的值不能为空
DEFAULT:设置预设值,若没有填写就会按预设值填入
UNIQUE:该属性的值是唯一的(不能出现与该值重复的)
外键设置
假设创建student表格之前已经创建了这样一个表格
1 | CREATE TABLE `teacher`( |
现在创建student表格要再增加一项任课老师id并设置为外键
1 | CREATE TABLE `student`( |
或者在原有的student基础上直接添加外键
1 | ALTER TABLE `student` |
ON DELETE SET NULL:当主键被删除时,表中对应外键值为NULL
ON DELETE CASCADE:当主表中的记录被删除时,从表中所有引用该主键的记录也会被自动删除
查看表格属性
1 | DESCRIBE `student`; |
注意表的查看跟数据库不太一样:表使用的是describe,数据库用的是show
删除表格
1 | DROP TABLE `student`; |
新建属性
1 | ALTER TABLE `student` |
删除属性
1 | ALTER TABLE `student` |
增加表中数据
1 | INSERT INTO `student` VALUE(1,`ano`,`吉他`); |
括号中的顺序按照上面创建表的属性的顺序一致
1 | INSERT INTO `student`(`name`,`major`,`student_id`) VALUE('riki','架子鼓',2); |
或者在表名称后加上需要存储的属性,在VALUE后按相应顺序写入存储数据
(非主键部分可以不录入,相当于null)
1 | INSERT INTO `student`(`name`,`student_id`) VALUE('soyo',3); |
tips:如果新增数据有是外键的属性,需要提前插入外键对应表格属性的元素,否则对应不上会出现报错
检查表中录入数据
1 | SELECT * FROM `student`; |
*代表的是搜索全部
1 | SELECT `name`,`major` FROM `student`; |
只展示表中name和major中的数据
1 | SELECT * FROM `student` |
将表中的顺序按照score升序排序,如果要降序排序的话需要在score后加上DESC(没有写时预设为ASC,由低到高排序)
1 | SELECT * FROM `student` |
先按照score排序,如果分数相同的话再按id排序
1 | SELECT * FROM `student` |
限制只展示前两笔数据
1 | SELECT * FROM `student` |
WHERE条件查询在查找中也可以使用,也可以跟上面的几种用法混用
tips:不等于在sql中的符号为<>
1 | SELECT * FROM `student` |
效果跟上面一样,只会显示major为架子鼓或主唱的学生信息,不用写太多个OR避免误差
修改数据
1 | UPDATE `student` |
UPDATE后接要进行修改的表格,SET选择需要修改的属性信息,WHERE选择修改的条件(如修改哪位学生,修改哪个id的属性)
如果没有增加修改的条件,会将表中的全部属性修改
1 | UPDATE `student` |
修改的属性不止一个时需要用逗号隔开
1 | UPDATE `student` |
条件有多个时可以用OR或AND连接
删除数据
1 | DELETE FROM `student` |
直接删除了id为1的整排数据。如果有多个条件也可以使用OR或AND连接
