库的操作
1. 创建数据库
sql
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
DEFAULT\] CHARACTER SET charset_name \[DEFAULT\] COLLATE collation_name 大写的都是关键字 db_name: 创建数据库的名字 \[\] :是可选项 \[IF NOT EXISTS\] :如果没有这个数据库就创建 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则

其本质就是在/var/lib/mysql创建一个目录
编码问题
创建数据库的时候,有两个编码集
-
数据库编码集 -- 数据库未来存储数据
-
数据库校验集 -- 支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式
数据库无论对数据做任何操作都必须保证操作和编码必须是编码一致的。
查看系统默认字符集
bash
show variables like 'character_set_database';

查看系统默认校验规则
bash
show variables like 'collation_database';

查看数据库所支持到的字符集
bash
show charset;
查看数据库所支持的校验集
bash
show collation;
指定编码创建,两个方法(warning 是因为版本问题)

同时创建校验集


校验码对数据库的影响

两种区别为一个区分大小写一个不区分大小写
往test1插入值为

查询里面所有的'a'

我们可以看到A与a都被查到了,所以他是不区分大小写的
test2表插入的如下

查询b

对test1进行排序 (小写在大写前面是因为小写都比大写先创建)

如果对其(test2)进行排序

2. 查看数据库
查看数据库
bash
show databases;
进入数据库
bash
use d1; //进入d1这个数据库
查看当前在哪个数据库
bash
select database();
3. 修改数据库
bash
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
对数据库的修改主要指的是修改数据库的字符集,校验规则

查看一下再改一下查看

4. 删除数据库
bash
DROP DATABASE [IF EXISTS] db_ name;
db_name: 删除数据库的名字
IF EXISTS :判断是否存在
本质就是在/var/lib/mysql删除一个目录

备份与恢复
bash
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

查看 .sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
根据上面备份的还原命令
bash
source /home/pc/MySQL/test2.sql;
如果备份的不是整个数据库,而是其中的一张表,怎么做?
bash
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库
bash
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据 库,再使用source来还原。
表的操作
1. 创建表
sql
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
table_name 表示表名
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
不同的存储引擎,创建表的文件不一样。
users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
users.frm:表结构
users.MYD:表数据
users.MYI:表索引



不同存储引擎如下所示

2. 查看表
desc 表名;

show create table user1 \G
看创建user1表时的详细信息

3. 修改表
实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
sql
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename DROP (column);
更改表名字
sql
alter table user1 rename to user;
//to 可省略
alter table user1 rename user;

sql
alter table user add image_path varchar(128) comment '用户头像路径' after birthday;
添加一列到birthday后面

修改一列 name长度将其改为50
sql
//modify会覆盖,并非定向的更改
alter table user modify name varchar(50);
//不想去掉其余的就要都加上
alter table user modify name varchar(50) comment '用户的名字';

删除一列:把password这一列删掉
sql
alter table user drop password;

删除字段一定要小心,删除字段及其对应的列数据都没了
更改列名称
sql
alter table user change name xingming varchar(60) DEFAULT NULL;
DEFAULT NULL - 设置默认值为NULL

4. 删除表
sql
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
//////////////////////////////
drop table 表名;

轻易不要删除
这篇就到这里啦(づ ̄3 ̄)づ╭❤~
(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤