一、库的操作
1、创建数据库
语法
create database db_name;
2、修改数据库
语法
alter database db_name ...;
举例
alter database test charset=gbk;
把test数据库的编码集修改成gbk
补充知识
创建数据库时要有字符集(编码集)和校验规则(校验集)
编码集是数据库存数据用的,校验集是支持数据库进行字段比较使用的编码,本质从数据库中读取数据采用的编码格式。
编码集和校验集要一一对应,例如utf8对应utf8_general_ci
show variables like 'character_set_database'; 当前库默认编码集
show variables like 'collation_database'; 当前库默认校验集
上文提到的校验集utf8_general_ci是不区分大小写,而另外一个utf8_bin区分大小写。
3、删除数据库
语法
drop datatbase db_name
4、数据库备份与恢复
(1)数据库备份
先进入到要备份的目录。
mysqldump -P3306 -uroot -p -B db_name > 存储文件名
上面的-P3306是端口号,可以省略,因为在配置文件中写了。
数据库的备份不仅备份表,还备份了历史上对数据库的有效操作。
(2)数据库恢复
source sqlfile_path
source后面带上备份文件的路径即可。
补充知识
备份表
mysqldump -uroot -p 表名1 表名2 ...;
备份多数据库
mysqldump -uroot -p -B 数据库名1 数据库名2...;
若恢复数据库时没带 -B 恢复前要先建立空数据库,use 进入库之后再恢复。
5、操纵数据库
查看系列
cat db_name .db.opt 查看数据库的两个编码
show processlist; 查看数据库的连接情况
select database(); 查看当前在哪个数据库
show databases; 查看数据库
show db_name; 查看库中表
show create database db_name 查看创建库时的操作
二、表的操作
1、创建表
语法
create table table_name(
field1 datatype comment '....',
field2 datatype comment '....',
field3 datatype comment '....'
)charset=... collate=... engine=...;
其中field指表中一列的名字,datatype是列的属性,comment是说明,可以没有。
举例
2、查看表结构
show tables; 看到数据库中所有表
desc table_name; 看表信息
show create table table_name\G; 查看创建表时的操作
3、修改表
(1)改表名
alter table old_name rename to new_name;
(2)新增列
alter table table_name add field1_name datatype comment '...' after field2_name;
新增位置在field2之后
(3)修改列属性
alter table table_name modify field_name 修改后属性
modify本质是覆盖,此操作就像重新定义一列一样。
(4)删除列
alter table table_name drop field_name;
(5)改列名
alter table table_name change old_name new_name 属性;
相当于重新设置列。
4、删除表
语法
drop table table_name;