MySQL数据库基础_DDL语句

MySQL数据库基础_DDL语句

** (Data Definition Language):数据定义语言**

★其中主要包括库和表的管理以及对表中列的操作

三个关键词:
创建: create
修改: alter
删除: drop

一、库的管理

1、库的创建★

语法:
CREAT DATABASE  [if not exists] 库名;
	(if not exists 为容错性处理,可不写,但一般建议写上)
#举例:创建库Books
CREATE DATABASE IF NOT EXISTS books ;

在这里插入图片描述
库中已经有了books库

2、库的修改

更改库的库名为新库名

RENAME DATABASE books TO 新库名;

#更改库的字符集(默认utf8) 改为 gbk

ALTER DATABASE books CHARACTER SET gbk;

3、库的删除

DROP DATABASE IF EXISTS books;

二、表的管理

1.表的创建 ★

语法:

语法:
CREATE TABLE 表名(
	列名 列的类型【(长度) 约束】,
	列名 列的类型【(长度) 约束】,
	列名 列的类型【(长度) 约束】,
	...
	列名 列的类型【(长度) 约束】
);

#举例:创建表Book,根据上面表创建的语法:

CREATE TABLE book(
	id INT,#id为编号 INT为列的类型
	bName VARCHAR(20),#bName为图书名 VARCHAR(长度)为列的类型
	price DOUBLE,#price为价格 DOUBLE为列的类型 
	authorId  INT,#authorId为作者编号 类型为INT
	publishDate DATETIME#publishDate为出版日期 类型为DATETIME
);
DESC book;#查看表book的结构

在这里插入图片描述

#举例:创建表author

CREATE TABLE IF NOT EXISTS author(
	id INT,
	au_name VARCHAR(20),
	nation VARCHAR(10)
);
DESC author;#查看表author的结构

在这里插入图片描述

2.表的修改:指对表中列的添加、修改、和删除

语法

ALTER TABLE 表名 ADD|DROP|MODIFY|CHANGE COLUMN 列名 【列类型 约束】;

这里引用上面两个已经创建好的books库两个表book和author来示范列的操作

①修改列名

#修改表book的publishdate列的名字为pubDate,后面要加上原本列的类型

ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;

在这里插入图片描述

②修改列的类型或约束

#修改book表的pubdate列的类型为TIMESTAMP;

ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;

在这里插入图片描述

③添加新列

#给author表中添加新的一列,列名为annual,类型为DOUBLE;

ALTER TABLE author ADD COLUMN annual DOUBLE; 

对比上面的author表

④删除列

#删除author表中的annual列

ALTER TABLE author DROP COLUMN  annual;

在这里插入图片描述

修改表名

#修改author表的名字为book_author

ALTER TABLE author RENAME TO book_author;
SHOW TABLES FROM books;#查看books库中的所有表

author表变为book_author表
在这里插入图片描述

3.表的删除

#删除book_author表,如果存在的话(如果知道就不用写IF EXISTS)

DROP TABLE IF EXISTS book_author;

★★★一般建议通用的写法:
#删除旧库( IF EXISTS 为容错性处理,一般加上)
DROP DATABASE IF EXISTS 旧库名;
CREATE DATABASE 新库名;#创建新库
DROP TABLE IF EXISTS 旧表名;#删除旧表
CREATE TABLE 表名();#创建新表

4.表的复制★

#先给表book_author插入一些值

INSERT INTO book_author VALUES
(1,'哈利波特','英国'),
(2,'赫敏格兰杰','英国'),
(3,'罗恩韦斯莱','英国'),
(4,'邓布利多','英国');

SELECT * FROM book_author;#查询book_author表的数据

在这里插入图片描述

1.仅仅复制表的结构
#创建一个新表名为copy和book_author表一样的结构,但没有数据

CREATE TABLE copy LIKE book_author;
SELECT * FROM copy;#查询copy表的数据

在这里插入图片描述
只有结构没有数据;

2.复制表的结构+数据

CREATE TABLE copy2 #创建新表copy2
SELECT * FROM book_author;#把book_author表的结构和数据都复制给copy2

#只复制部分数据(只复制编号和姓名)

CREATE TABLE copy3#创建新表copy3
SELECT id,au_name
FROM book_author #从book_author表中复制列id,au_name
WHERE nation='英国';#除了nation列

在这里插入图片描述

#仅仅复制某些列(只复制编号和姓名列)

CREATE TABLE copy4 #创建新表copy4
SELECT id,au_name
FROM book_author
WHERE 0;#只从book_author表中复制id,au_name列的结构,但没有数据

在这里插入图片描述

感谢xdm看到这里,继续加油!
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值