DDL_1_库和表的管理

DDL 数据定义语言

/*
库和表的管理

一、库的管理
创建、修改、删除

二、表的管理
创建、修改、删除

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

*/

一、库的管理

1.库的创建

/*
语法:

create database 【if not exists (不会报错)也不会重复创建】库名; 

*/

CREATE DATABASE IF NOT EXISTS books; # C:\ProgramData\MySQL\MySQL Server 8.0\Data 找到新建的库

2.库的修改

更改库的字符集
ALTER DATABASE books CHARACTER SET gbk;

3.库的删除

DROP DATABASE IF EXISTS BOOKS; #加上 IF EXISTS, 如果没有库的话 删除也不报错

二、表的管理

1.表的创建

/*
语法:

create table 表名(
列名 列的类型【(长度)约束】,
列名 列的类型【(长度)约束】,
列名 列的类型【(长度)约束】,
...
列名 列的类型【(长度)约束】
)

*/

CREATE DATABASE BOOKS;
案例1:创建表
CREATE TABLE IF NOT EXISTS book(
	id INT,#编号
	bName VARCHAR(20),#图书名
	price DOUBLE,#价格
	authorId INT,#作者编号
	publishDate DATETIME#出版日期
);
DESC book;
案例2:作者表
CREATE TABLE author(
	id INT,
	au_name VARCHAR(20),
	nation VARCHAR(10)
);
DESC author;

2.表的修改

/*

1.修改列名
2.修改列的类型或约束
3.添加新的列 alter table 表名 add column 列名 类型【first|after 字段】(添加指定某个字段后)
4.删除列
5.修改表名

语法:

alter table 表名 add|drop|modify|change column 列名 【列类型 约束】

*/

1.修改列名
ALTER TABLE BOOK CHANGE COLUMN publishdate pubDate DATETIME;
2.修改列的类型或约束
ALTER TABLE BOOK MODIFY	COLUMN PUBDATE TIMESTAMP;
3.添加新的列
ALTER TABLE AUTHOR ADD COLUMN annual DOUBLE;
4.删除列
ALTER TABLE AUTHOR DROP COLUMN ANNUAL;
5.修改表名
ALTER TABLE AUTHOR RENAME TO BOOK_AUTHOR;
DESC BOOK_AUTHOR;

3.表的删除

DROP TABLE IS EXISTS book_author;
SHOW TABLES;#看当前表

4.表的复制

#插入数据
INSERT INTO BOOK_AUTHOR VALUES
(1,'村上春树','日本'),
(2,'莫言','中国'),
(3,'金庸','中国');
1.仅仅把表的结构复制
CREATE TABLE COPY_AUTHOR LIKE BOOK_AUTHOR;
2.复制表的结构+数据
CREATE TABLE COPY_AUTHOR2
SELECT * FROM BOOK_AUTHOR;
3.复制部分数据
CREATE TABLE COPY_AUTHOR4
SELECT ID,AU_NAME
FROM BOOK_AUTHOR
WHERE NATION ='中国';
4.仅仅复制某些字段
CREATE TABLE COPY_AUTHOR5
SELECT ID,AU_NAME
FROM BOOK_AUTHOR
WHERE 0;# where 0 恒不成立  所以找不到数据 只能传递字段

三、通用写法

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

DROP TABLE IF EXISTS 旧表名;
CREATE TABLE 表名();

四、练习

1. 创建表 dept1

/*

NAME 	NULL? 	TYPE
id 		INT(7)
NAME V		ARCHAR(25)

*/

CREATE DATABASE EXERCISE;
CREATE TABLE IF NOT EXISTS dept1(
id INT(7),
NAME VARCHAR(25)
);

2. 将表 departments 中的数据插入新表 dept2 中

CREATE TABLE DEPT2#可以跨库添加
SELECT * FROM
myemployees.`departments`;

###3. 创建表 emp5
/*

	NAME 	NULL? 	TYPE
	id 		INT(7)
	First_	name 	VARCHAR (25)
	Last_name 	VARCHAR(25)
	Dept_id 	INT(7)

*/

CREATE TABLE IF NOT EXISTS EMP5(
	id INT(7),
	First_name VARCHAR (25),
	Last_name VARCHAR(25),
	Dept_id INT(7)
);

4. 将列 Last_name 的长度增加到 50

ALTER TABLE EMP5 MODIFY COLUMN Last_name VARCHAR(50);

5. 根据表 employees 创建 employees2

CREATE TABLE EMPLOYEES2 LIKE myemployees.`employees`;

6. 删除表 emp5

DROP TABLE EMP5;

7. 将表 employees2 重命名为 emp5

ALTER TABLE employees2 RENAME TO emp5;

8 在表 dept 和 emp5 中添加新列 test_column,并检查所作的操作

ALTER TABLE EMP5 ADD COLUMN TEST_COLUMN INT; 

9.直接删除表 emp5 中的列 JOB_ID

ALTER TABLE EMP5 DROP COLUMN JOB_ID;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值