MySQL学习总结(六)DDL语言之库的创建/修改库名/修改库的字符集/库的删除/表的创建/修改列名/添加列/修改列的类型或约束/删除列/修改表名/表的删除/表的复制
程序员文章站
2022-05-30 17:13:47
...
DDL(Data Definition Language):数据定义语句,用于库和表的创建、修改、删除。
一、库的管理
(一)库的创建
格式:
CREATE DATABASE 【IF NOT EXISTS】 库名 【CHARACTER SET 字符集名】;
案例:创建数据库books
CREATE DATABASE IF NOT EXISTS books;
(二)库的修改
1.修改库名
格式:
RENAME DATABASE 旧库名 TO 新库名;
这个语法在MySQL 5.1.7中被添加进来,到了5.1.23又去掉了,不建议使用,因为不安全
要想更改库的名字,我们可以先关闭MySQL服务器,然后在文件夹中把旧数据库名重命名为新数据库名,最后再开启MySQL服务器
2.修改库的字符集
格式:
ALTER DATABASE 库名 CHARACTER SET 新字符集名;
(三)库的删除
格式:
DROP DATABASE 【IF EXISTS】 库名;
二、表的管理
(一)表的创建
格式:
CREATE TABLE 表名(
列名 列的类型【(长度) 约束】,
列名 列的类型【(长度) 约束】,
...
);
案例1:创建表book
CREATE TABLE IF NOT EXISTS book(
id INT,#编号
bname VARCHAR(20),#图书名
price DOUBLE,#价格
author_id INT,#作者编号
publishDate DATE#出版日期
);
案例2:创建表author
CREATE TABLE IF NOT EXISTS author(
id INT,#编号
aname VARCHAR(20),#姓名
nation VARCHAR(10)#国籍
);
(二)表的修改
格式:
ALTER TABLE 表名 ADD|DROP|MODIFY|CHANGE COLUMN 列名 【列类型 约束】;
1.修改列名
格式:
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型;
案例:修改book表的列publishDate,更名为pubDate
ALTER TABLE book CHANGE COLUMN publishDate pubDate DATE;
2.添加列(字段)
格式:
ALTER TABLE 表名 ADD COLUMN 列名 列类型 【FIRST|AFTER 字段名】;
FIRST
表示添加到第一列,AFTER 字段名
表示添加到某字段后
案例1:在author表中添加薪资字段
ALTER TABLE author ADD COLUMN salary DOUBLE;
案例2:在author表中添加一个字段到第一列,再添加一个字段到nation后面
ALTER TABLE author ADD COLUMN new1 INT FIRST;
ALTER TABLE author ADD COLUMN new2 INT AFTER nation;
3.修改列的类型或约束
格式:
ALTER TABLE 表名 MODIFY COLUMN 列名 新类型 【或新约束】;
案例:将book表的pubDate字段的类型更改为TIMESTAMP
ALTER TABLE book MODIFY COLUMN pubDate TIMESTAMP;
4.删除列
格式:
ALTER TABLE 表名 DROP COLUMN 列名;
案例:删除author表中薪资这一列
ALTER TABLE author DROP COLUMN salary;
5.修改表名
格式:
ALTER TABLE 表名 RENAME 【TO】 新表名;
案例:将author表的名字修改为book_author
ALTER TABLE author RENAME TO book_author;
(三)表的删除
格式:
DROP TABLE 【IF EXISTS】 表名;
案例:删除book_author表
DROP TABLE IF EXISTS book_author;
开发中通用的创建库、创建表的写法:
DROP DATABASE IF EXISTS 库名;
CREATE DATABASE 库名;
DROP TABLE IF EXISTS 表名;
CREATE TABLE 表名();
(四)表的复制
假设有这样一张表author:
1.仅复制表的结构
格式:
CREATE TABLE 表名 LIKE 源表名;
案例:
CREATE TABLE copy1 LIKE author;
2.复制表的结构+数据
格式:
CREATE TABLE 表名
SELECT * FROM 源表名;
案例:
CREATE TABLE copy2
SELECT * FROM author;
3.复制表的结构+部分数据
格式:
CREATE TABLE 表名
SELECT 列1,列2,...
FROM 源表名
WHERE 筛选条件
案例:复制author表中所有的中国人
CREATE TABLE copy3
SELECT * FROM author
WHERE nation='中国';
4.仅复制表的结构中的某些字段(不复制数据)
格式:
CREATE TABLE 表名
SELECT 要复制的字段列表
FROM 源表名
WHERE 恒不成立的筛选条件;
案例:
CREATE TABLE copy4
SELECT id,aname
FROM author
WHERE 0;
推荐阅读
-
MySQL学习总结(八)DDL语言之常见约束/六大约束/添加约束/列级约束/表级约束/列级约束和表级约束的区别/复合主键/主键和唯一的区别/修改表时删除约束
-
MySQL数据库(四):DML(增、改、删)、DDL(表的创建、修改、删除、复制等)、约束、标识列(自增长列)
-
MySQL学习总结(六)DDL语言之库的创建/修改库名/修改库的字符集/库的删除/表的创建/修改列名/添加列/修改列的类型或约束/删除列/修改表名/表的删除/表的复制
-
七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)
-
MySQL(二)代码实现对数据库的一些操作(创建、修改、删除表)、字段属性、数据库的列类型
-
Mysql学习及笔记06--ddl语言、库的创建、修改、删除、表的管理创建、修改、删除、表的复制,常见数据类型,常见约束,修改表时添加、删除约束、标识列