MySQL入门系列 --- 2 DDL 操作数据库和数据表

「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

数据库、数据表、数据的关系

截屏2021-11-22 上午11.26.29.png

SQL分类:

1
2
3
4
scss复制代码DDL(Data Definition Language): 数据定义语言。用来操作数据库,表,列等。
DML(Data Manipulation Language): 数据操作语言。用来对数据库中表的数据进行增删改。
DQL(Data Query Language): 数据查询语言。用来查询数据库中表的记录(数据)。
DCL(Data Control Language): 数据控制语言。用来定义数据库的访问权限和安全级别,及创建用户。

DDL 查询和创建数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sql复制代码查询所有数据库
SHOW DATABASES;

查询数据库的创建语句
SHOW CREATE DATABASE 数据库名称;

创建数据库
CREATE DATABASE 数据库名称;

创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;

创建数据库(指定字符集)
CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
1
ini复制代码SHOW DATABASES;
1
2
3
sql复制代码SHOW CREATE DATABASE mysql;
// 执行效果
CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */
1
sql复制代码CREATE DATABASE IF NOT EXISTS db2;
1
2
3
4
sql复制代码CREATE DATABASE db3 CHARACTER SET utf8;

SHOW CREATE DATABASE db3;
CREATE DATABASE `db3` /*!40100 DEFAULT CHARACTER SET utf8 */
1
2
3
4
sql复制代码-- 练习:创建db4数据库、如果不存在则创建,指定字符集为gbk
Create database if not exists db4 character set gbk;
-- 查看db4数据库的字符集
SHOW CREATE DATABASE db4;

DDL 修改、删除、使用数据库

1
2
3
4
5
6
7
8
9
10
sql复制代码修改数据库(修改字符集)
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
删除数据库
DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
使用数据库
USE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();
1
2
3
4
5
6
sql复制代码ALTER DATABASE db4 CHARACTER SET utf8;
SHOW CREATE DATABASE db4;
DROP DATABASE db2;
DROP DATABASE IF EXISTS db2;
USE db4;
SELECT DATABASE();

DDL 查询数据表

1
2
3
4
5
6
7
8
sql复制代码查询所有的数据表
show tables;

查询表结构
desc 表名;

查询表字符集
show table status from 库名 like '表名';
1
2
3
4
sql复制代码USE mysql;
show tables;
desc user;
show table status from mysql like 'user';

DDL 创建数据表

1
2
3
4
5
6
7
8
lua复制代码创建数据表

create table 表名(
列名 数据类型 约束,
列名 数据类型 约束,
.......
列名 数据类型 约束,
);

数据类型:

截屏2021-11-22 下午3.49.59.png

1
2
3
4
5
6
7
8
9
10
11
12
sql复制代码-- 创建一个product 商品表 (商品编号、商品名称、商品价格、商品库存、上架时间)
use db3;
create table product(
id int,
NAME varchar(20),
price double,
stock int,
insert_time DATE
);

-- 查看product表详细结构
desc product;

截屏2021-11-22 下午3.55.05.png

DDL 修改数据表

1
2
3
4
5
6
7
8
9
10
11
12
sql复制代码修改表名
alter table 表名 rename to 新表名;
修改表的字符集
alter table 表名 character set 字符集名称;
单独添加一列
alter table 表名 add 列名 数据类型;
修改某列的数据类型
alter table 表名 modify 列名 新数据类型;
修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;
删除某一列
alter table 表名 drop 列名;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sql复制代码-- 修改product表名为product2
alter table product rename to product2;
-- 查看db3 数据库中product2数据表字符集
show table status from db3 like 'product2';
-- 修改product2数据表字符集为gbk
alter table product2 character set gbk;
-- 查看db3 数据库中product2数据表字符集
show table status from db3 like 'product2';

-- 给product2表添加一列color
alter table product2 add color varchar(10);

-- 将color数据类型修改为int
alter table product2 modify color int;

desc product2;

-- 将color修改为address
alter table product2 change color address varchar(200);

-- 删除address列
alter table product2 drop address;

DDL 删除数据表

1
2
3
4
5
sql复制代码删除数据表
DROP table 表名;

删除数据表(判断,如果存在则删除)
drop table if exists 表名;
1
2
3
4
sql复制代码-- 删除product2 表
DROP table product2;
-- 删除Product2表,如果存在则删除
DROP table if exists product2;

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%