本文整理来源于数据库系统工程师软考考试参考用书《数据库系统设计与管理》以及日常生产环境接触的知识点,仅小结日常用MySQL语句。不一定完全,如果有缺漏后续会补上。
文章目录
表操作
创建表
语句格式
CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束]
[, <列名><数据类型>[列级完整性约束]]...
[, <表级完整性约束>]);
常见约束
- 自动增长 auto_increment
- 主键 primary key
- 非空 not null
- 唯一 unique
- 缺省 default
- 注释 comment
例子
CREATE TABLE P(
id INT NOT NULL AUTO_INCREMENT,
Pno VARCHAR(6) NOT NULL DEFAULT '' COMMENT '用户ID',
Pname VARCHAR(20) NOT NULL DEFAULT '' COMMENT '用户姓名',
Height DECIMAL(5,2) NOT NULL DEFAULT 0.00 COMMENT '用户体重',
City VARCHAR(20) NOT NULL DEFAULT '' COMMENT '用户所在城市',
PRIMARY KEY(id)
);
查询表
此部分为查询数据库中的所有表,非查询语句
语句格式
SHOW TABLES;
修改表
语句格式
ALTER TABLE <表名> [ADD <新列名><数据类型>[完整性约束]]
[DROP <完整性约束名>]
[MODIFY <列名><数据类型>]; //修改数据类型
删除表
语句格式
DROP TABLE <表名>;
索引
索引的作用
- 通过创建唯一索引,可以保证数据记录的唯一性
- 可以大大加快数据检索速度
- 可以加速表与表之间的连接
- 在使用ORDER BY 和 GROUP BY 子句中进行检索数据时,可以显著减少查询中分组和排序的时间
- 使用索引可以检索数据的过程中使用优化隐藏器,提高系统性能
索引的分类
索引分为聚集索引和非聚集索引。
聚集索引是索引表中索引项的顺序与表中记录的物理顺序一致的索引。
建立索引
语句格式
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>]]...);
常见参数
- 次序:可选升序ASC或降序DESC
- UNIQUE:表明此索引的每一个索引值只对应唯一的数据记录
- CLUSTER:表明是要建立聚簇索引,意为索引项的顺序是与表中记录的物理顺序一致的索引组织
例子
CREATE UNIQUE INDEX SPJ-NO ON SPJ(Sno ASC, Pno DESC, Jno ASC);