MySQL操作库

目录

一、对数据库的操作

[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不是操作表结构,而是操作表的内容;

相关推荐
cfm_291420 分钟前
Redis数据安全性解析
数据库·redis·缓存
DIY源码阁26 分钟前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
NiceCloud喜云2 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书
辞忧九千七2 小时前
Redis 单机一主二从主从复制完整搭建指南
数据库·redis·缓存
lzhdim2 小时前
SQL 入门 16:SQL 事务隔离级别与死锁解析(易懂)
数据库·sql
AI 小老六3 小时前
Claude Code 如何压缩上下文:Microcompact、Prompt Cache 与 cache_edits 工程拆解
数据库·人工智能·ai·语言模型·架构·系统架构
Chasing__Dreams3 小时前
Redis--基础知识点--32--redis底层存储结构
数据库·redis·缓存
不总是3 小时前
[2026最新] Windows 免安装版 MySQL 8 详细安装配置教程(ZIP 压缩包版)
数据库·windows·mysql
tedcloud1234 小时前
DBX部署教程:打造支持AI SQL助手的数据库管理环境
数据库·人工智能·sql
野生技术架构师4 小时前
我有个大胆的想法,用 PostgreSQL 代替 Redis
数据库·redis·postgresql