SQL(Structured Query Language 结构化查询语言)
标准SQL语句类型 | |
查询语句 |
select关键字,SQL语句中最复杂但功能最丰富 |
DML 数据操作语言 |
insert、update、delete |
DDL 数据定义语言 |
create(创建)、alter(修改)、drop(删除)、truncate(快速删表) 数据库对象 |
DCL 数据控制语言 |
grant、revoke;【授权、回收用户权限,通常无需程序员操作】 |
事物控制语句 |
commit、rollback、savepoint |
1、SQL语句关键字不区分大小写;
2、SQL语句字符串:单引号
3、标识符:以字母开头,包括字母、数字和三个特殊符号(#_$),建议多单词下划线连缀;
DDL语句:操作数据库对象的语句
4、常见数据库对象:
table表:列是字段,行是记录
数据字典:就是系统表,存放数据库相关信息的表,程序员一般不用手动改
constraint约束:数据检验规则
view视图:数据的逻辑显示,不储存数据
index索引:为了提高数据查询的性能
function函数:完成特定计算,具有返回值
procedure存储过程:完成特定的业务处理,没有返回值
trigger触发器:相当于一个事件监听器
5、《MySql建表》
6、修改表结构ALTER
增加列定义、修改列定义、删除列、重命名列。
增加列定义ADD:(新增不存在的)
ALTER TABLE student
ADD new_id INT; #新增一列可以省略圆括号
ALTER TABLE student ADD(
#指定初始值为dog
love VARCHAR(255)DEFAULT'dog',
noLove VARCHAR(255)
)
修改列定义MODIFY:(修改已存在的)
# (MySql不支持一个modify命令修改多个列定义,可在ALTER
TABLE后使用多个MODIFY)
ALTER TABLE student
MODIFY new_id VARCHAR(255),
MODIFY noLove INT
# 同样,若表中已有数据,修改列定义很容易失败。
删除列定义DROP:
ALTER TABLE student DROP noLove
以上是标准SQL语法,对所有数据库均适用,NySQL还提供了两种特殊语法:
重命名数据表RENAME:
ALTER TABLE student RENAME TO newstu
完全改变列定义CHANGE:
# 同样,若表中已有数据,修改列定义很容易失败。
ALTER TABLE student CHANGE new_id
idid INT
7、删除表DROP
DROP TABLE personnew
表结构被删除,表对象不在存在;表中所有数据被删除;表相关的索引、约束被删除。
8、表TRUNCATE
TRUNCATE
table
截断表,清空所有数据但保留表结构;只能一次性删除所有数据。
MySQL对其处理较特殊,若使用非InnoDB机制,truncate比delete快;
对于InnoDB机制,在5.0.3之前,truncate和delete一样;在5.0.3之后,truncate比delete高效,但如果表被外键约束参照,则变为delete操作;5.1.3后,快速truncate总是可用,即更高效。
1、数据库中不能重复的字段
主键、唯一键:
PRIMARY KEY (`KeyID`),
UNIQUE KEY `UK_BaseDataDetailed201512_` (`PayNum`),