Python mysql-SQL概要
2017-09-05 20:10:58
一、SQL语句及其种类
SQL使用关键字,表名,列名等组合成一条语句来描述操作的内容。关键字是指那些含义或者使用方法是先已经定义好的英语单词。根据RDBMS赋予的指令种类的不同,SQL语句可以分为以下三类:
- 数据定义语言DDL(data definition language)用来创建或者删除数据库以及数据库中的表等对象。DDL包含以下几种指令。
create : 创建数据库和表等对象
drop : 删除数据库和表等对象
alter : 修改数据库和表等对象的结构,用来向表中添加列或者从表中删除列
- 数据操作语言DML(data manipulation language)用来查询或者变更表中的记录。DML包含以下几种指令。
select : 查询表中的数据
insert : 向表中插入新的数据
update : 变更表中的数据
delete : 删除表中的数据
- 数据控制语言DCL(data control language)用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对RDBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL包含以下几种指令。
commit : 确认对数据库中的数据进行的变更
rollback : 取消对数据库中的数据进行的变更
grant : 赋予用户操作权限
revoke : 取消用户的操作权限
实际使用的SQL语句中有90%属于DML。
二、SQL的基本书写规则
- SQL语句要以分号结尾
- SQL语句不区分大小写(关键词的大小写不加区分)
- 常数的书写方式是固定的(字符串和日期一遍需要使用但引号‘’括起来,数字常数无需加上单引号)
- 单词之间需要使用半角空格或者换行符来进行分割
- 命名规则:只能使用半角英文字符、数字、下划线作为数据库、表和列的名称。并且名称的开头必须以半角英文字符开始
三、数据类型
- INTEGER
用来指定存储整数的列的数据类型,不能存储小数
- CHAR
用来指定存储字符串的列的数据类型,可以像CHAR(100)这样,在括号中指定字符串的最大长度,字符串一旦超出最大长度的部分是无法输入到该列中的。根据RDBMS的不同这里的100有可能指的字符个数,也有可能指的是字节长度。
字符串以定长字符串的形式存储在被指定为CHAR的列中,所谓定长字符串,就是当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行补足。当然这里的字符是区分大小写的。
- VARCHAR
可边长字符串类型,可以像VARCHAR(100)这样,在括号中指定字符串的最大长度,字符串如果未达最大长度,也不会使用半角空格进行补足。当然这里的字符串是区分大小写的。
- DATE
用来指定存储日期(年月日)的列的数据类型