0查看数据库列表
show databases; ----查看用户当前数据库列表
1创建数据库
create database db_name;
语法:
CREATE DATABASE [IF NOT EXISTS] db_ name [create_ specification [,create_ specification] ...]
create_ specification:
[DEFAULT] CHARACTER SET charset_ name
[DEFAULT] COLLATE collation_ name
说明:
大写的表示关键字
[]是可选项
CHARACTER SET:指定数据库采用的字符集
COLLATE:指定数据库字符集的校验规则
例:
-----创建一个名为database1的数据库
创建数据库后,可通过show databases;查看到
如:
2删除数据库
drop database db_name;
drop database database1; ---删除database1数据库
3数据库的编码问题
创建数据库时,有两个编码集:
- 数据库编码集----数据库在存储数据时采用的编码集合
- 数据库校验集----支持数据库进行字段比较使用的编码,本质也是一种读取数据库中采用的编码格式
数据库无论对数据做任何操作,都必须保证操作时的编码和校验集编码必须是编码一致的。
- 查看系统默认字符集以及校验规则
字符集:show variables like ‘character_set_database’;
校验规则:show variables like ‘collation_database’;
查看数库支持的全部的字符集:show charset;
查看系统支持的全部字符集校验规则:show collation;
- 指定编码创建数据库
指定编码集:create database d2 charset=utf8;
或者create database d3 charseter set utf8;
同时指定编码集,校验规则:create database d4 charset=utf8 collate utf8_gereral_ci;
- 验证不同编码的影响
-------校验规则对数据库的影响
create database test1 collate utf8_general_ci; -----不区分大小写
create database test2 collate utf8_bin; -----区分大小写
使用数据库:use db_name
use test1; ---进入test1数据库
建表:create table if not exists person (name varchar(20));
展示数据库内的表: show tables;
展示表结构:desc person;
向表内插入数据:insert into person (name) values (‘a’);
insert into person (name) values (‘b’);
insert into person (name) values (‘A’);
insert into person (name) values (‘B’);
查看表内所有数据:select * from person;
查看指定数据:select * from person where name=’a’;
---------从person表中查看name为a的数据------通过数据库的校 验规 则--utf8_gereral_ci进行比较
发现大小写a的数据都别查找出来。
若使用test2数据库,其采用utf8_bin校验规则,区分大小写,则在表内查找a时,只会展示小写a的数据。
4操纵数据库
- use进入数据库后才能进行表的建立,数据的查找等工作。
- 可以通过select database();查看当前在哪个数据库内
- 修改数据库
ALTER DATABASE db_ name
[alter_ spacification [,alter. _spacification]...]
alter_ spacification:
[DEFAULT] CHARACTER SET charset_ name
[DEFAULT] COLLATE collati on_ name
对数据库的修改主要指的是修改数据库的字符集,校验规则
如:alter database test2 charset=gbk collate gbk_chinese_ci;
将test2的字符集修改为gbk,校验规则修改为gbk_chinese_ci;
查看数据库的在创建时的相关命令:show create database test2;
-------------------------看历史上创建test2的指令
/*40100 default ......*/表示当前mysql版本大于4.01
/*80016 default ......*/也是表示当前mysql版本大于8.0016
5数据库的备份和恢复
备份:
mysqldump -P3306 -uroot -p -B tes1 > test1.sql -----在系统下运行,而不是mysql内
-B表示指明需要备份的数据库
test1.sql表示备份到当前目录下的test1.sql文件
备份不是只对数据就进行备份,还有历史上所有对数据库的操作也进行备份了。
恢复:
通过在mysql内drop database test1删除test1数据库后,在mysql内通过:source /home/lzl/myslq/test1.sql ----source后接备份文件的地址来恢复被删除的数据库
5查看当前数据库连接情况:
show processlist;