数据定义语言

库和表的管理

一、库的管理
创建、修改、删除
二、表的管理
创建、修改、删除

创建: create
修改: alter
删除: drop

*/

一、库的管理

1.1、库的创建

语法:
create database [if not exists]库名;

  1. #案例:创建库Books
  2. CREATE DATABASE IF NOT EXISTS books ;

1.2 库的修改

  1. RENAME DATABASE books TO 新库名;
  1. #更改库的字符集
  2. ALTER DATABASE books CHARACTER SET gbk;

1.3 库的删除

  1. DROP DATABASE IF EXISTS books;

二、表的管理

2.1 表的创建 ★

语法
create table 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,

列名 列的类型【(长度) 约束】

  1. #案例:创建表Book
  2. CREATE TABLE book(
  3. id INT,#编号
  4. bName VARCHAR(20),#图书名
  5. price DOUBLE,#价格
  6. authorId INT,#作者编号
  7. publishDate DATETIME#出版日期
  8. );

DESC book;
image.png

  1. #案例:创建表author
  2. CREATE TABLE IF NOT EXISTS author(
  3. id INT,
  4. au_name VARCHAR(20),
  5. nation VARCHAR(10)
  6. )

DESC author;
image.png

2.2 表的修改

语法
alter table 表名 add | drop | modify | change column 列名 【列类型 约束】;

  1. #①修改列名
  2. ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;
  3. #②修改列的类型或约束
  4. ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
  5. #③添加新列
  6. ALTER TABLE author ADD COLUMN annual DOUBLE;
  7. #④删除列
  8. ALTER TABLE book_author DROP COLUMN annual;
  9. #⑤修改表名
  10. ALTER TABLE author RENAME TO book_author;

DESC book;

2.3 表的删除

  1. DROP TABLE IF EXISTS book_author;
  2. SHOW TABLES;

通用的写法

  1. DROP DATABASE IF EXISTS 旧库名;
  2. CREATE DATABASE 新库名;
  3. DROP TABLE IF EXISTS 旧表名;
  4. CREATE TABLE 表名();

2.4 表的复制

  1. #0.先建个表
  2. INSERT INTO author VALUES
  3. (1,'村上春树','日本'),
  4. (2,'莫言','中国'),
  5. (3,'冯唐','中国'),
  6. (4,'金庸','中国');
  7. SELECT * FROM Author;
  8. SELECT * FROM copy2;
  9. #1.仅仅复制表的结构
  10. CREATE TABLE copy LIKE author;
  11. #2.复制表的结构+数据
  12. CREATE TABLE copy2
  13. SELECT * FROM author;
  14. #3.只复制部分数据
  15. CREATE TABLE copy3
  16. SELECT id,au_name
  17. FROM author
  18. WHERE nation='中国';
  19. #4.仅仅复制某些字段
  20. CREATE TABLE copy4
  21. SELECT id,au_name
  22. FROM author
  23. WHERE 0;

案例分析

1. 创建表dept1
NAME NULL? TYPE
id INT(7)
NAME VARCHAR(25)

  1. USE test;
  2. CREATE TABLE dept1(
  3. id INT(7),
  4. NAME VARCHAR(25)
  5. );

2. 将表departments中的数据插入新表dept2中

  1. CREATE TABLE dept2
  2. SELECT department_id,department_name
  3. FROM myemployees.departments;

3. 创建表emp5
NAME NULL? TYPE
id INT(7)
First_name VARCHAR (25)
Last_name VARCHAR(25)
Dept_id INT(7)

  1. CREATE TABLE emp5(
  2. id INT(7),
  3. first_name VARCHAR(25),
  4. last_name VARCHAR(25),
  5. dept_id INT(7)
  6. );

#4. 将列Last_name的长度增加到50

  1. ALTER TABLE emp5 MODIFY COLUMN last_name VARCHAR(50);

#5. 根据表employees创建employees2

  1. CREATE TABLE employees2 LIKE myemployees.employees;

#6. 删除表emp5

  1. DROP TABLE IF EXISTS emp5;

#7. 将表employees2重命名为emp5

  1. ALTER TABLE employees2 RENAME TO emp5;

#8.在表dept和emp5中添加新列test_column,并检查所作的操作

  1. ALTER TABLE emp5 ADD COLUMN test_column INT;

#9.直接删除表emp5中的列 dept_id

  1. DESC emp5;
  2. ALTER TABLE emp5 DROP COLUMN test_column;