1 #DDL数据定义语言
2 /*
3 上一节学的insert delete update
4 是对表中数据进行操作 是DML数据管理语言
5
6 这一节学的是对整个表,或者库的操作
7 创建/修改/删除 一个表或者库,
8
9 库和表的管理
10 库:创建、修改、删除
11 表:创建、修改、删除
12 create alter drop
13
14 C:\ProgramData\MySQL\MySQL Server 5.5\data
15 */
16 #----------------库-----------------#
17
18 #1、库的创建
19 #create database 库名;
20 #if not exitsts 是容错处理,如果存在则不创建 如果没有则创建
21 CREATE DATABASE IF NOT EXISTS books;
22
23 #2、库的修改
24 RENAME DATABASE books TO 新库名//一般不修改,容易出错
25 #更改库的字符集
26 #在创建的时候默认的字符集是utf-8
27 ALTER DATABASE books CHARACTER SET gbk;
28
29 #3、库的删除
30 #IF EXISTS 容错处理 如果存在就删除 否则不做处理
31 DROP DATABASE IF EXISTS books;
32
33
34 #表
35 #1、表的创建
36 #IF NOT EXISTS容错处理 若不存在,创建
37 CREATE TABLE IF NOT EXISTS 表名 (
38 列名 列类型 [长度] [约束],
39 列名 列类型 [长度] [约束],
40 ...
41 列名 列类型 [长度] [约束]
42 )
43 CREATE TABLE book(
44 id INT,#编号
45 bName VARCHAR(20),#书名
46 peice DOUBLE,#价格
47 authorId INT,#作者ID
48 publishDate DATETIME#出版日期
49 );
50 #varchar 类型必须+长度
51 CREATE TABLE author(
52 id INT,#编号
53 authorName VARCHAR(20),#作者名
54 nation VARCHAR(10)#国籍
55 );
56 DESC author ;
57 DESC book ;
58 #2、表的修改
59 ALTER TABLE 表名 CHANGE/ADD/DROP/MODIFY COLUMN 列名[类型或约束];
60
61 #修改列名,
62 ALTER TABLE book CHANGE COLUMN publishdate pubdate DATETIME;
63 #修改 表 表名 改变 列(可省略) 旧列名 新列名 新列的类型
64
65 #列类型或约束,
66 ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;
67
68 #添加列,
69 ALTER TABLE book ADD COLUMN annual DOUBLE;
70
71 #删除列,
72 ALTER TABLE book DROP COLUMN annual;
73
74 #修改表名。
75 ALTER TABLE author RENAME TO book_author;
76 DESC book_author;
77
78 #3、表的删除
79 #if exists 容错处理 如果存在删除 否则不处理
80 DROP TABLE IF EXISTS book_author;
81
82 SHOW TABLES;
83
84 #4、表的复制
85 #在复制之前我们先把表名改过来再添加几个数据
86 ALTER TABLE book_author RENAME TO author;
87 INSERT INTO author VALUES
88 (1,'村上春树','日本'),
89 (2,'莫言','中国'),
90 (3,'冯唐','中国'),
91 (4,'金庸','中国');
92
93 SELECT * FROM copy2_author;
94
95 #1、仅复制表的结构
96 CREATE TABLE copy_author LIKE author;
97 #2、复制表的数据+结构
98 CREATE TABLE copy2_author
99 SELECT * FROM author;
100
101 #3、复制部分数据/列
102
103 #复制id authorName这两列
104 #且 nation='中国'的数据
105 CREATE TABLE copy3_author
106 SELECT id,authorName
107 FROM author
108 WHERE nation='中国';
109
110 #4、仅复制部分结构不要数据
111 CREATE TABLE copy4_author
112 SELECT id,authorName
113 FROM author
114 WHERE 0
115 #写一个无法满足的条件,即可排除所有数据