本节涉及MySQL关键字:create、drop、alter、truncate、change、modify等。
数据表是最基本的数据库对象,也是存储数据的逻辑单元。但数据库里不只包含数据表,通常包含以下几种常见数据库对象:
1、数据表:table,存储数据的逻辑单元,行为记录,列为字段。
2、视图:view,一个或多个数据表里数据的逻辑显示。视图并不存储数据。
3、索引:index,用于提高查询性能,相当于书的目录。
4、函数:fuction,用于完成一次特点的计算,具有一个返回值。
5、存储过程:procedure,用于完成一次完整的业务处理,无返回值,但可通过传出参数将多个值传给调用环境(?)。
6、触发器:trigger,相当于一个事件监听器,当数据库发生特定事件后,被触发,完成相应处理。
7、约束:constraint,用于保证数据完整性的规则。
注:关于view、index、function等的使用方法与作用,后面单独学习讨论。
create、drop与alter等关键字后可紧跟不同的数据库对象关键字,表示具体操作哪种数据库对象,如create table table1,create view ,……
1、create创建
*创建并使用数据库:
create database dbName;
use dbName;
*创建表,基本语法:
create table [模式名.]表名(
columnName1 dataType [default value1],
……
);
注:default关键字可指定默认值;最后一列不用逗号结尾!
*此外,可通过从其他表中的查询结果创建新表:
create table tableName as subQuery;
如:create table newInfo as SELECT * FROM student; 将创建一个与student一样的表newInfo。
注:MySQL支持的数据类型,小节单独讨论。
2、drop删除
*删除数据库:drop database dbName;
*删除表:drop table tableName;
说明:删除表或数据库后,对应的对象不再存在,相关联的索引、约束也被删除。
3、alter修改表结构
alter关键字通常可用于添加字段、删除字段、修改字段、修改表名。
1)、添加字段(add)。语法:
alter table 表名 add(
columnName dataType [default value],
……
);
注意:添加字段不可指定非空约束,除非给新增的字段添加了默认值,因为原来表中的记录该行是NULL。
2)、删除字段(drop)。语法:
alter table 表名 drop columnName;
3)、修改字段(modify)。语法:
alter table 表名 modify columnName dataType [default value] [first|after column_name];
说明:MySQL的modify只能同时修改一个字段,而Oracle等数据库的modify可同时修改多个字段,语法同add增加字段相似。
4)、修改表名(rename)。语法:
alter table 表名 rename to newName;
例:alter table student rename to students;
5)、修改字段(change)。语法:
alter table 表名 change oldColumnName newColumnName dataType [default value] [first|after column_name];
注:modify与change都能修改字段,但change比modify多一个修改字段名的能力,故change关键字后接旧与新的字段名。
4、truncate截断表
大多数数据库将truncate归为DDL 处理,被称为“截断”某个表——删除表里的全部数据,但保留表结构,比DML里的delete命令快许多,因为delete是删除指定的记 录,还需要查找。
语法:
truncate 表名;