创建数据库
·创建一个保存员工信息的数据库
create database employees;
·相关其他命令
show databases; 查看当前所有数据库
use employees; "使用"一个数据库,使其作为为当前数据库
命名规则
·数据库名不得超过30个字符,变量名限制为29个
·必须只能包含 A-Z, a-z, 0-9, _共63个字符
·不能在对象名的字符间留空格
·必须不能和用户定义的其他对象重名
·必须保证你的字段没有保留字、数据库系统或常用方法冲突
·保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里就不要变成字符型了
CREATE TABLE 语句
·必须具备:
·CREATE TABLE权限
·储存空间
create table [schema.]table
(column datatype [default expr][, ...]);
·必须指定:
·表名
·列名,数据类型,尺寸
创建表
·语法
create table dept
(deptno int(2),
dname varchar(14),
loc varchar(13));
table created.
·确认
describe dept
使用子查询创建表
·使用AS subquery选项,将创建表和插入数据结合起来
create table table
[(column,column...)]
as subquery;
·指定的列和子查询中的列要一一对应
·通过列明和默认值定义列
·使用子查询创建表
·复制现有的表:
create table emp1 as select * from employees;
create table emp2 as select * from employees where 1 = 2;
-- 创建的emp2是空表。
·使用子查询创建表举例
ALTER TABLE 语句
使用ALTER TABLE 语句可以实现:
·向已有的表中添加列
·修改现有表中的列
·删除现有表中的列
·重命名现有表中的列
追加一个新列
alter table dept80
add job_id varchar(15);
修改一个列
·可以修改列的数据类型,尺寸和默认值
alter table dept80
modify (last_name varchar(30));
Table altered.
alter table dept80
modify (salary double(9,2) default 1000);
Table altered.
重命名一个列
·使用CHANGE old_column new_column dataType 子句重命名列
alter table dept80
change department_name dept_name varchar(15);
Table altered.
删除一个列
·使用DROP COLUMN 子句删除不在需要的列
alter table dept80
drop column job_id;
Table altered.
改变对象的名称
·执行RENAME语句改变表,视图的名称
alter table dept
rename to detail_dept;
Table renamed.
·必须是对象的拥有者
删除表
·数据和结构都被删除
·所有正在运行的相关事务被提交
·所有相关索引被删除
·DROP TABLE 语句不能回滚
drop table dept80;
Table dropped.
清空表
·TRUNCATE TABLE 语句:
·删除表中所有的数据
·释放表中的存储空间
truncate table detail_dept;
Table truncated.
·TRUNCATE 语句不能回滚
·可以使用 DELETE 语句删除数据,可以回滚
·对比:
set autocommit = false;
delete from emp2;
select * from emp2;
rollback;
select * from emp2;