目录
[1.1 创建数据库](#1.1 创建数据库)
[1.1.1 正常创建数据库](#1.1.1 正常创建数据库)
[1.1.2 指定数据库的字符集进行创建](#1.1.2 指定数据库的字符集进行创建)
[1.1.3 指定数据库的校验规则进行创建](#1.1.3 指定数据库的校验规则进行创建)
[1.1.4 同时指定数据库的字符集和校验规则进行创建](#1.1.4 同时指定数据库的字符集和校验规则进行创建)
[1.1.5 查看字符集](#1.1.5 查看字符集)
[1.1.6 查看校验规则](#1.1.6 查看校验规则)
[1.2 查看数据库](#1.2 查看数据库)
[1.2.1 详细查看数据库(显示创建语句)](#1.2.1 详细查看数据库(显示创建语句))
[1.3 修改数据库](#1.3 修改数据库)
[1.4 删除数据库](#1.4 删除数据库)
[1.5 数据库的备份与恢复](#1.5 数据库的备份与恢复)
[1.5.1 备份数据库(在命令行执行操作)](#1.5.1 备份数据库(在命令行执行操作))
[1.5.2 恢复数据库(登录mysql)](#1.5.2 恢复数据库(登录mysql))
[1.5.3 备份表结构](#1.5.3 备份表结构)
[1.5.4 恢复表结构](#1.5.4 恢复表结构)
[1.6 代码案例](#1.6 代码案例)
[2.1 创建表](#2.1 创建表)
[2.2 查看表](#2.2 查看表)
[2.3 修改表](#2.3 修改表)
[2.4 删除表](#2.4 删除表)
一、对数据库的操作
1.1 创建数据库
1.1.1 正常创建数据库
sql
-- 正常创建数据库
CREATE DATABASE IF NOT EXISTS d1;
1.1.2 指定数据库的字符集进行创建

sql
-- 指定数据库的字符集
CREATE DATABASE IF NOT EXISTS d2 CHARACTER SET utf8;-- 或CHARSET=utf8;
1.1.3 指定数据库的校验规则进行创建
sql
- 指定数据库的校验规则
CREATE DATABASE IF NOT EXISTS d3 COLLATE utf8_general_ci;
1.1.4 同时指定数据库的字符集和校验规则进行创建
sql
-- 同时指定字符集和校验规则
CREATE DATABASE IF NOT EXISTS d4 CHARACTER SET utf8 COLLATE utf8_general_ci;
1.1.5 查看字符集
sql
-- 查看字符集
SHOW CHARACTER SET;-- 或SHOW CHARSET;
1.1.6 查看校验规则
sql
-- 查看校验规则
SHOW COLLATION;
1.2 查看数据库
1.2.1 详细查看数据库(显示创建语句)
sql
-- 详细查看数据库(显示创建语句)
SHOW CREATE DATABASE test1;
SHOW CREATE DATABASE test2;
1.3 修改数据库
sql
-- 修改数据库
ALTER DATABASE test1 CHARACTER SET gbk;
ALTER DATABASE test2 CHARACTER SET gbk;
SHOW CREATE DATABASE test1;
SHOW CREATE DATABASE test2;
1.4 删除数据库
sql
-- 删除数据库
DROP DATABASE test1;
DROP DATABASE test2;
1.5 数据库的备份与恢复
查看连接情况
sql
SHOW PROCESSLIST;
1.5.1 备份数据库(在命令行执行操作)
语法:
sql
mysqldump -u root -p -B 数据库名1 数据库名2 数据库名3... > 数据库存放路径
sql
mysqldump -P 3306 -u root -p 密码 -B 数据库名 mytest > D:/mytest.sql
其中,没有带上-B参数,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source还原,因为不带-B参数,只会把所有的表信息数据备份起来。
1.5.2 恢复数据库(登录mysql)
语法:
sql
source D:/mysql-5.7.22/mysql.sql
1.5.3 备份表结构
语法:
sql
mysqldump -u root -p 数据库名 表1 表2 > D:/mytest.sql
1.5.4 恢复表结构
语法:
sql
source D:/mysql-5.7.22/mysql.sql
1.6 代码案例
sql
SHOW DATABASES;
-- 创建数据库
-- 正常创建数据库
CREATE DATABASE IF NOT EXISTS d1;
-- 指定数据库的字符集
CREATE DATABASE IF NOT EXISTS d2 CHARACTER SET utf8;-- 或CHARSET=utf8;
-- 指定数据库的校验规则
CREATE DATABASE IF NOT EXISTS d3 COLLATE utf8_general_ci;
-- 同时指定数据库的字符集和校验规则
CREATE DATABASE IF NOT EXISTS d4 CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 查看字符集
SHOW CHARACTER SET;-- 或 SHOW CHARSET;
-- 查看校验规则
SHOW COLLATION;
-- 创建一个数据库,指定其校验规则为utf8_general_ci(不区分大小写)
CREATE DATABASE IF NOT EXISTS test1 COLLATE utf8_general_ci;
-- 使用数据库
USE test1;
-- 创建表结构
CREATE TABLE IF NOT EXISTS person(name VARCHAR(20));
-- 向表中插入数据
INSERT INTO person VALUES('a');
INSERT INTO person VALUES('A');
INSERT INTO person VALUES('b');
INSERT INTO person VALUES('B');
INSERT INTO person VALUES('c');
INSERT INTO person VALUES('C');
-- 不区分大小写查询表中内容
SELECT * FROM person;
-- 不区分大小写查询表中元素
SELECT * FROM person WHERE name = 'a';
-- 不区分大小写对name列进行排序
SELECT * FROM person ORDER BY name;
-- 创建一个数据库,指定其校验规则为utf8_bin(区分大小写)
CREATE DATABASE IF NOT EXISTS test2 COLLATE utf8_bin;
-- 使用数据库
USE test2;
-- 查看当前在哪个数据库当中
SELECT DATABASE();
-- 查看当前数据库有哪些表结构
SHOW TABLES;
-- 创建表结构
CREATE TABLE IF NOT EXISTS person(name VARCHAR(20));
-- 向表中插入数据
INSERT INTO person VALUES('a');
INSERT INTO person VALUES('A');
INSERT INTO person VALUES('b');
INSERT INTO person VALUES('B');
INSERT INTO person VALUES('c');
INSERT INTO person VALUES('C');
-- 区分大小写查询表中内容
SELECT * FROM person;
-- 区分大小写查询表中元素
SELECT * FROM person WHERE name = 'a';
-- 区分大小写对name列进行排序
SELECT * FROM person ORDER BY name;
-- 详细查看数据库(显示创建语句)
SHOW CREATE DATABASE test1;
SHOW CREATE DATABASE test2;
-- 修改数据库
ALTER DATABASE test1 CHARACTER SET gbk;
ALTER DATABASE test2 CHARSET gbk;
SHOW CREATE DATABASE test1;
SHOW CREATE DATABASE test2;
-- 删除数据库
DROP DATABASE test1;
DROP DATABASE test2;
-- 查看连接情况
SHOW PROCESSLIST;
二、对表的操作
2.1 创建表
sql
-- 创建表结构
CREATE TABLE IF NOT EXISTS user1(
id INT COMMENT '用户序号',
name VARCHAR(32) COMMENT '用户名',
password CHAR(32) COMMENT '用户密码',
birthday DATE COMMENT '用户生日'
)CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE MyISAM;
CREATE TABLE IF NOT EXISTS user2(
id INT COMMENT '用户序号',
name VARCHAR(32) COMMENT '用户名',
password CHAR(32) COMMENT '用户密码',
birthday DATE COMMENT '用户生日'
)CHARSET=utf8 COLLATE=utf8 ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS user3(name VARCHAR(32));
其中,int为整数类型,varchar为变长字符串类型,char为定长字符串类型,date为日期类型,comment为关键字,表示对该列的文字说明。
2.2 查看表
sql
-- 查看表
SELECT DATABASE();
SHOW TABLES;
DESC user1;
DESC user2;
DESC user3;
SHOW CREATE TABLE user1;
SHOW CREATE TABLE user2;
SHOW CREATE TABLE user3;
2.3 修改表
sql
-- 修改表
-- 该表名(to可以省略)
ALTER TABLE user1 RENAME To U1;
ALTER TABLE user2 RENAME To U2;
ALTER TABLE user3 RENAME TO U3;
SHOW TABLES;
ALTER TABLE U1 RENAME TO user1;
ALTER TABLE U2 RENAME TO user2;
ALTER TABLE U3 RENAME To user3;
-- 表中插入数据
ALTER TABLE user1 RENAME TO user;
SHOW TABLES;
DESC user;
INSERT INTO user VALUES (1,'张三','12345','2010-10-1');
INSERT INTO user VALUES (1,'李四','54321','2020-10-1');
-- 增加新的一列在birthday的后面
ALTER TABLE user ADD image_path VARCHAR(128) COMMENT '用户图片路径' AFTER birthday;
SELECT * FROM user;
SHOW CREATE TABLE user;
-- 修改某一列的属性(会覆盖之前的属性)
ALTER TABLE user MODIFY name VARCHAR(60) COMMENT '用户名';
SHOW CREATE TABLE user;
-- 删除某一列
ALTER TABLE user DROP password;
DESC user;
SELECT * FROM user;
-- 修改某一列的列名(这一列的相关属性也要提供)
ALTER TABLE user CHANGE name xingming VARCHAR(60) COMMENT '用户名';
SELECT * FROM user;
2.4 删除表
sql
-- 删除表结构
DROP TABLE user;
SHOW TABLES;
总结
1.表的操作和数据库的操作属于SQL语句中的DDL;
2.SELECT不是操作表结构,而是操作表的内容;








