一、数据库基础
1.1SQL分类
DDL(数据定义语言),用来维护存储数据的结构,代表指令:create,drop,alter
DML(数据操纵语言),用来对数据进行操作,代表指令:insert,delete,update
DML中单独分出了DQL,数据查询语言,代表指令:select
DCL(数据控制语言),主要负责权限管理和事务代表指令,grant,revoke,commit
二、库的操作
字符集和校验规则
查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
校验规则对数据库的影响
不区分大小写
创建一个不区分大小写的数据库,校验规则utf8_general_ci
create database test1 collate utf8_general_ci;
区分大小写
create database test1 collate utf8_bin;
显示数据库
show databases;
创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
例:
create database db1;
删除数据库
语法:
DROP DATABASE [IF EXISTS] db_ name;
修改数据库
语法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
备份与恢复
备份
语法:
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
实例:将mytest库备份到文件
# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql
这时,其实把我们整个创建数据库,建表,导入数据的语句
都装载这个文件中。
如果备份的不是整个数据库,而是其中的一张表
# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库
# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原
还原
mysql> source D:/mysql-5.7.22/mytest.sql;
查看连接情况
语法:
show processlist;