WHCSRL 技术网

MySql库和表的管理

DDL语言

– 数据定义语言
– 库和表的管理

一:库的管理:创建,修改,删除

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

1.库的创建:

– 语法:
– create database 库名;

案例:

CREATE DATABASE books;
CREATE DATABASE IF NOT EXISTS books;
  • 1
  • 2

2.库的修改:

– 无法更改库的名字
– rename database 旧库名 to新库名(现在已经不支持,存在风险)
– 可以更改库的字符集
ALTER DATABASE books CHARACTER SET utf8;

3.库的删除:

DROP DATABASE books;
DROP DATABASE IF EXISTS books;
  • 1
  • 2

二:表的管理:创建,修改,删除

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

1.表的创建

– create table 表名(
– 列名 列名类型[(长度)约数],
– 列名 列名类型[(长度)约数],
– …
– )

案例:

CREATE TABLE book(
	id INT,
	bName VARCHAR(20),
	price DOUBLE,
	author INT,
	publishDate DATETIME
);
DESC book;
CREATE TABLE author(
	id INT,
	au_Name VARCHAR(20),
	nation VARCHAR(20)
);
DESC author;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.表的修改

– 语法:
– alter table 表名 add|drop|change|modify column(为change时可以省略) 列名 [列类型 约束];

①.修改列名

ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;
  • 1

– column可以省略

②.修改列的类型或约数

ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP;
  • 1

③.添加新列

ALTER TABLE book ADD COLUMN annual DOUBLE;
  • 1

④.删除列

ALTER TABLE book DROP COLUMN annual;
  • 1

– 删除列时用alter而不是drop 下面那个会报错
DROP TABLE book DROP COLUMN annual;

⑤.修改表名

ALTER TABLE author RENAME TO book_author; 
  • 1

3.表的删除

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

通用写法

DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新库名;

DROP TABLE IF EXISTS 旧表名;
CREATE TABLE 新表名();
  • 1
  • 2
  • 3
  • 4
  • 5

4.表的复制

INSERT INTO author 
SELECT 1,'莫言','中国' UNION
SELECT 2,'村上春树','日本' UNION
SELECT 3,'金庸','中国';
  • 1
  • 2
  • 3
  • 4

①仅仅复制表的结构

CREATE TABLE copy LIKE author;
  • 1

②复制表的结构和数据

CREATE TABLE copy2 
SELECT * FROM author;
  • 1
  • 2
只复制部分数据
CREATE TABLE copy3
SELECT * FROM author
WHERE nation='中国';
  • 1
  • 2
  • 3
只复制部分结构
CREATE TABLE copy4
SELECT id,au_Name FROM author
WHERE 0;
  • 1
  • 2
  • 3