1、通用语法
- SQL语句可以单行或者多行书写,以逗号结尾
- 可以使用空格和缩进增强可读性
- 不区分大小写,但是关键字建议大写
名称 | 解释 | 命令 |
---|---|---|
DDL (数据定义语言 ) | 定义和管理数据对象,如数据库,数据表等 | create、drop、alter、truncate |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | insert、update、delete |
DQL(数据查询语言) | 用于查询数据库数据 | select |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | grant、commit、rollback |
2、DDL (数据定义语言 )
数据库
create
database
[if not exists] 数据库名
[[default] character set <字符集名>] [[default] collate <校对规则名>];show
databases
[like
‘数据库名’]
like
从句是可选项,用于匹配指定的数据库名称。LIKE 从句可以部分匹配,也可以完全匹配。alter
databases
[数据库名] { [ default ] character set <字符集名> |[ default ] collate <校对规则名>}daop
database
[if exists] <数据库名>use
<数据库名>
数据表
CREATE
TABLE
数据库名
.表名
(
列1
INT UNSIGNED NOT NULL,
列2
FLOAT UNSIGNED NOT NULL,
列3
TEXT NOT NULL,
PRIMARY KEY (列1
,列2
,列3
),
CONSTRAINT外键1
FOREIGN KEY (列1
) REFERENCES000
.111
(学号
)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
- 主要是由表创建定义、表选项和分区选项所组成的。
- 在当前数据库中创建表时,可以省略数据库名。如果使用加引号的识别名,则应对数据库和表名称分别加引号。
- <表定义选项>:由列名、列的定义以及可能的空值说明、完整性约束或表索引组成。
drop
table
[if exists] <表名> [ , <表名1> , <表名2>] …alter
table
<表名> [修改选项]
add
<新列名> <数据类型> [约束条件] [first
|after
旧列名];drop
<列名>modify
<列名> <数据类型>change
<旧列名> <新列名> <新数据类型>rename
<新表名>
2、DML(数据操作语言)
1、插入数据
insert
into
表名 [ ( 字段1, 字段2, 字段3, … ) ] values
( ’ 值1’, ’ 值2’, ’ 值3’, …);
- 字段和值的数据类型要兼容(一致),字段或值之间用英文逗号隔开
- 没写字段,values 值要匹配一条记录所有的值,顺序一致
- 写字段,可以写部分字段,顺序可改,values 值要匹配
- 可同时插入多条数据,每条记录用()括起来,逗号隔开【只在mysql有效】
- 如果是空字段,在字段列表中写了,但是不想输入具体的值,此时,你可以插入的值为 null
- 自动增长的字段一般是不写在字段列表中的。如果写了,你必须给值,该值是不能重复的
- 要先在主键表中插入数据,在插入子表
insert
into
表名set
<列名1> = <值1>,<列名2> = <值2>…
insert
into
表名 ( 字段1, 字段2, 字段3, … )select
字段1, 字段2, 字段3, …from
表名
2、删除数据
delete
from
表名 [where
子句] [order by
子句] [limit
子句]
3、修改数据
update
表名 set
列名1=值1,列名2=值2 [where
子句] [order by
子句] [limit
子句]