mysql的ddl介绍...
时间:2010-08-07 来源:tujiyue
1. SQL简介
SQL是结构化查询语言,是关系数据库的应用语言,用户通过它对数据库进行交互并完成相应的操作或任务。
MySQL除了支持标准的SQL语法规范外,还增加了许多自身规范的SQL扩展语句。
SQL语句可分为3类,即DDL,DML,DCL。
DDL:数据定义语句,主要是定义数据库内部对象如数据段、数据库、表、字段、索引等。涉及的语句关键字是create、drop、alter等。
DML:数据操纵语句,主要是对数据库表内部数据的一些操作。涉及的语句关键字为insert、update、delete、select等。
DCL:数据控制语句,主要是定义对数据库内部对象和用户访问权限及安全级别。涉及的语句关键字为grant、revoke等。
区别:DDL主要是DBA使用,开发人员也使用。DDL对象是数据库内部对象,DML是表内部数据,不涉及对表外及其它对象的操作,主要是开发人员使用,DBA也会使用。DCL主要是授权和收回权限等安全性方面的应用,主要是DBA使用。
2. MySQL相关
MySQL命令语句以;或\g结束,在写存储过程时以自定义的结束符为结束符。
MySQL5.0安装完后会自动创建4个数据库,分别是:information_schema、mysql、cluster和test。比这早的版本可能没有information_schema数据库。
information_schema存储了数据库对象信息,如用户表、列、权限、字符集、分区等信息。拥有的表如下图:
cluster存储了系统集群信息。
mysql存储了用户权限信息。拥有的表如下:
test是测试数据库,任何用户都可使用。
3. MySQL DDL相关
MySQL表名是以目录的形式存放于磁盘上的,所以表名的命名字符可用任何目录名允许的字符。
简单地查看表的定义用desc 表名; 查看详细的表定义可用show create table 表名 \G
如下例:
它们的区别是:desc主要是显示表字段的相关信息,而show create table 表名 \G可以看到整个定义表的语句,最重要的是可以看到使用的存储引擎和所使用的字符集。\G可使得记录按字段竖着排列,可显示的内容更长。
重点就是 修改表
主要是修改表字段的类型(modify)、增加表字段(add)、删除表字段(drop)、修改表字段名(change)、修改表字段的排列顺序(first或after)、更改表名(rename)等。
以上面的pet表为例对修改表这些操作进行举例。
alter table 表名 modify [column] 列名 修改后的列类型或约束等,如下图:
alter table 表名 add [column] 字段名 字段类型 字段约束 first(后面不跟字段名)或 after 已存在的某字段名;如下图示例:
alter table 表名 drop [column] 字段名;如下图
alter table 表名 change [column] 旧列名 新列名 新列名类型或约束等 [first|after 某字段名],如下例:
modify和change的区别:modify只能修改字段的定义,不能改字段名;change可改字段的字段名和定义。
alter table 表名 rename [to] 新表名;如下例: