MySQL的DDL语言:1、库和表的管理(创建、修改、删除)
程序员文章站
2022-05-30 17:13:53
...
DDL语言
DDL:数据定义语言
一、库的管理
创建、修改、删除
二、表的管理
创建、修改、删除
创建:create
修改:alter
删除:drop
【注】delete、update是对表中数据的操作,属于数据操作语言DML
库的管理
库的创建
语法:
create database 库名;
create database if not exit 库名;
创建库 Books
create database Book;
#若所创建的数据库已存在,则报错,可以使用以下语句
create database if not exists Book;#若所创建的数据库存在,则不创建,若不存在,则创建数据库
库的修改
#rename database 库名 to 新库名;#修改库名,该方式已废弃
更改库的字符集
alter database 库名 character set 字符集;
alter database books character set gbk;
库的删除
drop database 库名;
drop database if exists 库名;
drop database Book;#若不存在库,则报错
drop database if exists Book;
表的管理
表的创建
语法:
create table 表名(
字段名 字段类型[(长度)] [字段的约束],
字段名 字段类型[(长度)] [字段的约束],
......
字段名 字段类型[(长度)] [字段的约束]
);
案例1:创建表Book
create table book(
id int,#书的编号
bname varchar(20)# 图书名 20为字符的最大长度
price double,# 价格
authorId int, #作者编号
publishDate datetime #出版日期
);
创建表author
create table author(
id int,
au_name varchar(20),
nation varchar(10)
);
表的修改
表的修改核心语法
alter table 表名 add|drop|modify|change column 列名 [列的类型] [约束]
1、修改列名
alter table 表名 change column 旧列名 新列名 类型;
alter table book change column publishdate pubDate datetime;#column 可以省略
2、修改列的类型或约束
alter table 表名 modify column 需修改的列名 修改后的类型
alter table book modify column pubdate timestamp;
3、添加新列
alter table 表名 add column 新添加的列名 类型;
alter table author add column annual double;
4、删除列
alter table 表名 drop column 列名;
alter table author drop column annual;
5、修改表名
alter table 旧表名 rename to 新表名;
alter table author rename to book_author;
表的删除
drop table 表名;
drop table if exists 表名;#if exists和if not exists 只在库或表的删除或创建的时候可以使用,列则不行
通用写法
drop database if exists 旧库名;
create database 新库名;
drop database if exists 旧表名;
create database 新表名();
表的复制
1、仅仅复制表的结构
create table 复制的表 like 被复制地表;
#仅仅只能复制表地结构,但内部地数据不能复制
2、复制表的结构和数据
(1)、复制全部的数据
create table 复制的表 select * from 被复制的表;
#将表的结构和数据复制到一个新的表中
create table copy select * from author;
(2)、复制部分的数据
create table 复制的表 select 列1,列2... from 被复制的表 where 筛选条件;
#只复制筛选出来的部分
create table copy select id,au_name from author where nation='中国';
(3)、仅仅复制某些字段(不需要数据)#此时的like已不适合使用
create table 复制的表 select 列1,列2... from 被复制的表 where 0
create table copy select id,au_name from author where 0;#0代表的是false,1代表true
练习
- 创建表 dept1
name | Null? | type |
---|---|---|
id | int(7) | |
name | varchar(25) |
create table dept1(
id int(7),
name varchar(25)
);
- 将表 departments 中的数据插入新表 dept2 中
create table dept2 select * from myemployees.departments;
#库名.表名 实现跨库复制表的结构
- 创建表 emp5
name | Null? | type |
---|---|---|
id | int(7) | |
First_name | varchar(25) | |
Last_name | varchar(25) | |
Dept_id | int(7) |
create table dept1(
id int(7),
first_name varchar(25),
last_name varchar(25),
dept_id int(7)
);
- 将列 Last_name 的长度增加到 50
alter table emp5 modify column last_name vachar(50);
- 根据表 employees 创建 employees2
create table employees2 like myemployees.employees;
- 删除表 emp5
drop table if exists emp5;
- 将表 employees2 重命名为 emp5
alter table employees2 rename to emp5;
- 在表 dept 和 emp5 中添加新列 test_column,并检查所作的操作
alter table dept add column test_column int;
alter table emp5 add column test_column int;
- 直接删除表 emp5 中的列 dept_id
alter table emp5 drop column dept_id;
上一篇: es使用 项目中遇到的问题
下一篇: MySQL学习总结(六)DDL语言之库的创建/修改库名/修改库的字符集/库的删除/表的创建/修改列名/添加列/修改列的类型或约束/删除列/修改表名/表的删除/表的复制
推荐阅读
-
MySQL学习总结(八)DDL语言之常见约束/六大约束/添加约束/列级约束/表级约束/列级约束和表级约束的区别/复合主键/主键和唯一的区别/修改表时删除约束
-
DDL语言,表的创建,修改,删除
-
MySQL数据库(四):DML(增、改、删)、DDL(表的创建、修改、删除、复制等)、约束、标识列(自增长列)
-
MySQL的DDL语言:1、库和表的管理(创建、修改、删除)
-
MySQL学习总结(六)DDL语言之库的创建/修改库名/修改库的字符集/库的删除/表的创建/修改列名/添加列/修改列的类型或约束/删除列/修改表名/表的删除/表的复制
-
MySQL复习笔记(十一):DDL、数据库和表的管理、常见数据类型、常见约束、自增
-
Mysql-DDL库和表的管理 常见数据类 型常见约束
-
MySQL DDL表的管理、表的创建、表的修改、表的删除、表的复制
-
七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)
-
mysql基础---DDL语言,库和表的管理,常见数据类型介绍,常见约束。