目录
文章涉及到的MySQL、SQLyog的配置安装,请参考 MySQL配置+SQLyog安装教程
DDL
含义
库和表的管理
- 库的管理:创建、修改、删除
- 表的管理:创建、修改、删除
一、库的管理
1、库的创建
语法
create database 库名;
#案例:创建库Books
CREATE DATABASE IF NOT EXISTS books;
2、库的修改
现在只能通过进入文件夹进行重命名
RENAME DATABASE books TO 新库名; #不安全,被遗弃了
TIP:更改库的字符集
ALTER DATABASE books CHARACTER SET gbk;
3、库的删除
DROP DATABASE IF EXISTS books;
二、表的管理
1、表的创建
语法
create table 表明(
列名 列的类型(【长度】) 【列的约束】,
列名 列的类型(【长度】) 【列的约束】,
... ,
列名 列的类型(【长度】) 【列的约束】
#案例:创建表book
CREATE TABLE book(
id INT,
bname VARCHAR(20), # 书名的最大长度(字符)
price DOUBLE,
author_id INT, # 作者编号
publishDate DATETIME #出版日期
);
#案例:创建author表
CREATE TABLE author(
id INT,
au_name VARCHAR(20),
nation VARCHAR(10)
);
2、表的修改
语法
alter table 表名 add/drop/modify/change column 列名 【类型】 【约束】
案例
#修改列名 column可以省略
ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME;
DESC author;
#修改列的类型或约束
ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP;
#添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE;
#删除列
ALTER TABLE author DROP COLUMN annual;
#修改表名
ALTER TABLE author RENAME TO book_author;
3、表的删除
语法
DROP TABLE IF EXISTS book_author; #exists只能用于表/库的创建和删除,不能用于库
通用写法
DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新表名;
DROP TABLE IF EXISTS 旧表名;
CREATE TABLE 新表明();
4、表的复制
首先,输入一些数据
INSERT INTO author VALUES
(1, '村上春树', '日本'),
(2, '莫言', '中国'),
(3, '冯唐', '中国'),
(4, '金庸', '中国');
案例
#1.仅仅复制表的结构
CREATE TABLE copy LIKE author;#copy里没有内容
#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;