DDL
数据定义语言:针对的是表的结构
库和表的管理
一、库的管理
创建、修改、删除
二、表的管理
创建、修改、删除
创建: create
修改: alter
删除: drop
库的管理
库的创建
语法:
create database [if not exists]库名 [character set 字符集名];
#案例:创建库Books
# 如果不存在则创建,如果存在则不创建
CREATE DATABASE IF NOT EXISTS books ;
库的修改
一般很少涉及到库的修改,如果想要修改库名,一般是先关闭服务,找到ProgramData下面的data文件修改相应库的文件名,然后再启动服务,但是不安全存在风险,一般不修改
#更改库的字符集
ALTER DATABASE books CHARACTER SET gbk;
库的删除
# 如果存在则删除,不存在不删除
DROP DATABASE IF EXISTS books;
表的管理
表的创建
语法:
create table if not exists 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
…
列名 列的类型【(长度) 约束】
)
最后一列后面没有逗号,【】代表可选
表的修改
语法
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
①修改列名
#要求加上类型
#column可以省略
alter table 表名 change column 旧列名 新列名 类型;
②修改列的类型或约束
alter table 表名 modify column 列名 新类型 【新约束】;
③添加新列
#【中的内容是可选的,表示要添加的新列的位置,first表示添加到第一列,
# after表示添加到哪一列的后面,其中什么也不写表示添加到末尾】
alter table 表名 add column 列名 类型 【first|after 字段名】;
④删除列
alter table 表名 drop column 列名;
⑤修改表名
alter table 表名 rename 【to】 新表名;
表的删除
DROP TABLE IF EXISTS book_author;
创建表和库的通用写法
#通用的写法:
DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新库名;
DROP TABLE IF EXISTS 旧表名;
CREATE TABLE 表名();
表的复制
1.仅仅复制表的结构
# author是被复制的
CREATE TABLE copy LIKE author;
2.复制表的结构+数据
CREATE TABLE copy2
SELECT * FROM author;
3.只复制部分数据
CREATE TABLE copy3
SELECT id,au_name
FROM author
WHERE nation='中国';
4.仅仅复制某些字段
CREATE TABLE copy4
SELECT id,au_name
FROM author
WHERE 0; # 设置where条件恒不成立,也可以写成1=2
5.跨库复制
#将表departments中的数据插入新表dept2中
# 注意:departments和dept2不在一个库中,需要用"库名.表名"的方式
CREATE TABLE dept2
SELECT department_id,department_name
FROM myemployees.departments;