创建和管理表:
创建数据库
• 创建表
• 描述各种数据类型
• 修改表的定义
• 删除,重命名和清空表
(1)创建数据库
创建一个保存员工信息的数据库
– create database employees;
l 相关其他命令
– show databases;查看当前所有数据库
– use employees;“使用”一个数据库,使其作为当前数据库
(2)创建表
CREATE TABLE
必须具备:
– CREATE TABLE权限
– 存储空间
• 必须指定:
– 表名
– 列名, 数据类型, 尺寸
CREATE TABLE dept ( deptno INT(2), dname VARCHAR(14), loc VARCHAR(13) );
常用数据类型:数据库字段的类型
INT 使用4个字节保存整数数据
CHAR(size) 定长字符数据。若未指定,默认为1个字符,最大长度255
VARCHAR(size) 可变长字符数据,根据字符串实际长度保存,必须指定长度
FLOAT(M,D) 单精度,M=整数位+小数位,D=小数位。 D<=M<=255,0<=D<=30,
DOUBLE(M,D) 双精度。D<=M<=255,0<=D<=30,默认M+D<=15
DATE 日期型数据,格式’YYYY-MM-DD’
BLOB 二进制形式的长文本数据,最大可达4G
TEXT 长文本数据,最大可达4G
CREATE TABLE emp ( emp_id INT AUTO_INCREMENT, emp_name CHAR (20), salary DOUBLE, birthday DATE, PRIMARY KEY (emp_id) ) ; #复制表: create table emp1 as select * from employees;
(3)更改表
ALTER TABLE 语句
使用 ALTER TABLE 语句可以实现:
向已有的表中添加列
ALTER TABLE dept80 ADD job_id varchar(15); 修改现有表中的列 ALTER TABLE dept80 MODIFY (last_name VARCHAR(30)); 删除现有表中的列 ALTER TABLE dept80 DROP COLUMN job_id; 重命名现有表中的列 ALTER TABLE dept80 CHANGE department_name dept_name varchar(15); Table altered.
(4)删除表
数据和结构都被删除
• 所有正在运行的相关事务被提交
• 所有相关索引被删除
• DROP TABLE 语句不能回滚
DROP TABLE dept80;
(5)清空表
TRUNCATE TABLE
TRUNCATE TABLE 语句:
– 删除表中所有的数据
– 释放表的存储空间
• TRUNCATE语句 不能回滚
• 可以使用 DELETE 语句删除数据,可以回滚
• 对比:
delete from emp2; select * from emp2; rollback; select * from emp2; TRUNCATE TABLE detail_dept; Table truncated
(7)改变表名称
ALTER table dept
RENAME TO detail_dept;
Table renamed.
// 开始事务操作进行回滚 select * from ordertotals; start transaction; delete from ordertotals; select * from ordertotals; rollback; select * from ordertotals;