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

248 阅读3分钟

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

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

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

SQL分类:

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

DDL 查询和创建数据库

查询所有数据库
SHOW DATABASES;

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

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

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

创建数据库(指定字符集)
CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
SHOW DATABASES;

SHOW CREATE DATABASE mysql;
// 执行效果
CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */
CREATE DATABASE IF NOT EXISTS db2;
CREATE DATABASE db3 CHARACTER SET utf8;

SHOW CREATE DATABASE db3;
CREATE DATABASE `db3` /*!40100 DEFAULT CHARACTER SET utf8 */

-- 练习:创建db4数据库、如果不存在则创建,指定字符集为gbk
Create database if not exists db4 character set gbk;
-- 查看db4数据库的字符集
SHOW CREATE DATABASE db4;

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

修改数据库(修改字符集)
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
删除数据库
DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
使用数据库
USE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();

ALTER DATABASE db4 CHARACTER SET utf8;
SHOW CREATE DATABASE db4;
DROP DATABASE db2;
DROP DATABASE IF EXISTS db2;
USE db4;
SELECT DATABASE();

DDL 查询数据表

查询所有的数据表
show tables;

查询表结构
desc 表名;

查询表字符集
show table status from 库名 like '表名';


USE mysql;
show tables;
desc user;
show table status from mysql like 'user';

DDL 创建数据表

创建数据表

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

数据类型:

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

-- 创建一个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 修改数据表

修改表名
alter table 表名 rename to 新表名;
修改表的字符集
alter table 表名 character set 字符集名称;
单独添加一列
alter table 表名 add 列名 数据类型;
修改某列的数据类型
alter table 表名 modify 列名 新数据类型;
修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;
删除某一列
alter table 表名 drop 列名;
-- 修改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 删除数据表

删除数据表
DROP table 表名;

删除数据表(判断,如果存在则删除)
drop table if exists 表名;
-- 删除product2 表
DROP table product2;
-- 删除Product2表,如果存在则删除
DROP table if exists product2;