数据库定义语言,用于库和表的创建

5.1 库的管理


5.1.1 数据库的创建

语法:

  1. CREATE DATABASE 库名;

实例:

  1. CREATE DATABASE IF NOT EXISTS books;

5.1.2 更改数据库

实例:修改数据库的字符集

  1. ALTER DATABASE books CHARACTER set gbk;

5.1.3 库的删除

  1. DROP DATABASE IF EXISTS books;

删除库对于生产环境来说风险很大,所以极少使用

5.2 表的管理


5.2.1 表的创建

语法:

  1. CREATE TABLE IF NOT EXISTS 表名(
  2. 列名1 列的类型【(长度) 约束】
  3. 列名2 列的类型【(长度) 约束】
  4. 列名3 列的类型【(长度) 约束】
  5. ……
  6. 列名n 列的类型【(长度) 约束】
  7. );

实例1:创建图书信息表

  1. CREATE TABLE book(
  2. id INT, #书的编号
  3. bName VARCHAR(20),# 图书名
  4. price DOUBLE,# 价格
  5. authod_id INT,#作者编号
  6. publishDate DATETIME#出版日期
  7. )

实例2:创建作者表

  1. CREATE TABLE author(
  2. id INT,
  3. au_name VARCHAR(20),
  4. nation VARCHAR(10)
  5. )

5.2.2 表的修改

语法:

  1. ALTER TABLE 表名 ADD|DROP|MODIFY|CHANGE COLUMN 列名 【新列名 列类型 约束】

实例1:修改列名

  1. ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;

实例2:修改列的类型或约束

  1. ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;

实例3:添加新列

  1. ALTER TABLE author ADD COLUMN annual DOUBLE;

实例4:删除列

  1. ALTER TABLE author DROP COLUMN annual;

实例5:修改表名

  1. ALTER TABLE author RENAME TO book_author;

总结:

  1. ## 对列修改的总结
  2. ALTER TABLE 表名 ADD|DROP|MODIFY|CHANGE COLUMN 列名 【新列名 列类型 约束】
  3. ## 列相关操作
  4. ALTER TABLE author 操作列的关键字 COLUMN 列名
  5. ## 如果是修改列的名字 需要提供新的列名和数据类型
  6. ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;
  7. ## 如果只是修改列的类型,就只要把关键字换成modify,加上新的数据类型就可以了
  8. ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
  9. ## 如果是添加列,就将关键字修改为 add,然后加上类型就可以了
  10. ALTER TABLE author ADD COLUMN annual DOUBLE;
  11. ## 如果是删除表,修改关键字为 drop ,数据类型也不需要
  12. ALTER TABLE author DROP COLUMN annual;
  13. ## 如果是修改表名 ,把关键字 换成 RENAME TO 并且不需要 CONLUMN 关键字
  14. ALTER TABLE author RENAME TO book_author;

5.2.3 表的删除

语法:

  1. DROP TABLE IF EXISTS book_author;

建库建表的通用写法:

  1. DROP DATABASE IF EXISTS 库名
  2. CREATE DATABASE 库名;
  3. DROP TABLE IF EXISTS 表名
  4. CREATE TABLE 表名;

5.2.4 表的复制

实例1:仅仅复制表的结构

  1. CREATE TABLE girl LIKE beauty;

实例2:复制表的结构和数据

  1. CREATE TABLE girl2 SELECT * FROM beauty;

实例3:只复制部分数据

  1. CREATE TABLE girl3
  2. SELECT `name` from beauty;