SQL语法汇总 —— 库与表的增删改查
SQL语法——创建与选择
USE 选择语句(选择一个数据库)
语法:USE 数据库名;
只有选择了一个数据库后,才可以在这个数据库内增删改查。
1 | USE database_1; #选择database_1数据库 |
SHOW 展示语句(展示数据库或表格)
通过SHOW语句查看所有的数据库/数据库内所有的表
DATABASES & TABLES 数据库子句
语法:SHOW DATABASES;
或SHOW TABLES;
1 | SHOW DATABASES; #查看所有的数据库 |
DESCRIBE 描述表语句(查看表的结构)
语法:DESCRIBE 表名
1 | DESCRIBE table_1; #展示table_1表的结构信息 |
CREATE 创建语句(创建数据库/表)
通过CREATE语句可以创建数据库或表。
DATABASE 数据库子句(用于创建数据库)
语法:CREATE DATABASE 数据库名;
1 | CREATE DATABASE database_1; #创建一个名为database_1的数据库 |
TABLE 表格子句(用于创建表格)
语法-1:CREATE TABLE 表名;
语法-2:CREATE TABLE 表名{字段名 数据类型 约束};
创建表格之前,需要先选择一个已创建的数据库。
创建时可以在大括号内描述该表格的结构。
1 | CREATE TABLE table_1; #创建一个名为table_1的空表 |
有关约束的部分在后面。
DROP 删除语句(删除数据库/表/索引/字段)
DATABASE 数据子句
语法:DROP DATABASE 数据库名;
1 | DROP DATABASE database_1; #删除database_1数据库 |
TABLE 表格子句
语法:DROP TABLE 表名;
1 | DROP TABLE table_1; #删除table_1表 |
INDEX 索引子句
语法:...DROP INDEX 索引名;
MySQL中:DROP INDEX要指定表,所以要写在ALTER语句后面
1 | #MySQL |
COLUMN 字段子句
语法:...DROP COLUNM 字段名;
MySQL中:DROP COLUNM要指定表,所以要写在ALTER语句后面
1 | #MySQL |
TRUNCATE TABLE 清空表内数据
语法:TRUNCATE TABLE 表名;
TRUNCATE TABLE 只清空表内数据,不删除表。
ALTER TABLE 修改表语句(在表中添加、删除、修改)
ADD 添加子句(新增字段)
语法:ALTER TABLE 表名 ADD 字段名 数据类型 约束;
1 | #添加字段 |
DROP COLUMN / INDEX 删除字段/索引
在DROP中提到过
1 | #MySQL |
AUTO_INCREMENT 递增子句(让字段的值自动递增)
语法:ALTER TABLE 表 AUTO_INCREMENT=值
当一个表中有字段被约束为AUTO_INCREMENT时才能使用。
AUTO_INCREMENT=val设置该表中AUTO_INCREMENT字段的递增值从val开始。(从现在起)
1 | ALTER TABLE table_1 AUTO_INCREMENT=100; #让表table_1的AUTO_INCREMENT字段从100开始递增 |
约束
当描述表格时,可以指定约束条件,其包括:
约束关键字 | 描述 |
---|---|
NOT NULL | 该字段不能为空 |
UNIQUE | 该字段值不能重复 |
PRIMARY KEY | 主键(可看作NOT NULL与UNIQUE结合,用于唯一标识一条记录) |
FOREIGN KEY | 外键(保证该表中的这个字段数据与另一个表中值有参照完整性) |
CHECK | 保证该字段的值符合给指定条件 |
DEFAULT | 指定一个默认值 |
AUTO_INCREMENT | 该字段的值从1开始,每条记录递增1 |
NOT NULL 非空约束
NOT NULL 约束强制某一字段不为空,若不为该字段指定值则无法插入记录。