【MySQL】--- 库表操作
【MySQL】--- 库表操作
- 一、库操作
- 1、增(创建)
- 字符编码集
- 备份
- 2、删
- 3、查
- 4、改
- 二、表操作
- 1、增
- 2、删
- 3、查
- 4、改
一、库操作
1、增(创建)
创建一个数据库
1、
create database db_name;
此时就创建了test1
数据库,可以通过show databases
查看。
1)站在操作系统的角度:实际上,一个数据库,就是一个目录,use + 数据库,就相当于cd,进入数据库
2)我们的数据库在操作系统
里面,存储的默认路径
:/var/lib/mysql
2、
create database [if not exists] db_name;
可以加这个选项,也可以不加!~
主要作用:如果 没有这个数据库,就创建!
字符编码集
在MySQL中,数据库有两种字符编码集合:
字符集
:字符存储
时,采用的编码方式校验集
:字符读取
时,采用的编码方式
查看系统支持的
字符集
:
show charset;
查看系统支持的
校验集
:
show collation;
此时系统就列出了支持的各种集合,比如utf8
。
可以在创建数据库
时,指定使用的字符集与校验集
指定字符集:
create database [if not exists] 数据库名 charset=xxx;
create database [if not exists] 数据库名 character set xxx;
以上两种方式,都可以指定字符集
为xxx
指定校验集:
create database [if not exists] 数据库名 collate xxx;
示例:
执行create database db_1 charset=utf8 collate utf8_general_ci
:
该指令创建了数据库db_1
,并指定字符集为utf8
,校验集为utf8_general_ci
。
在数据库对应的目录中,会存在一个文件dp.opt
,其内部存储了数据库对应的校验集与字符集
:
当然,如果你不指定字符集和校验集,此时会使用系统默认的。
查看
系统默认的字符集
:
show variables like 'character_set_database';
即默认的校验集
为utf8_general_ci
。
备份
拷贝数据库指令
mysqldump -P 端口号-u 用户名 -p 密码 -B 数据库名 > 数据库备份存储的文件路径
注意:该指令要在bash
中执行,而不是数据库中。
比如备份bit_index
数据库:
mysqldump -B bit_index > ~/test/bit_index.sql
上述指令指定了一个名为bit_index 数据库,将其保存在路径~/test/bit_index.sql。
此时在对应路径下,就产生了对应.sql文件:
通过vim
查看一下sql内部
的数据:
可以发现:.sql文件并不是简单的拷贝一份数据库,而是保留了整个数据库的SQL语句
。
还原数据库
source 路径.sql;
该指令要在MySQL内部执行
,而不是命令行。
2、删
删除数据库:
drop database test1;
3、查
查看存在哪些数据库:
show databases;
查看自己当前处于哪一个数据库:
select database();
4、改
修改数据库
一般来说就修改字符集和校验集
:
修改字符集:
alter database 数据库名 charset=xxx;
修改校验集:
alter database 数据库名 collate xxx;
二、表操作
1、增
创建一个表:
create table [if not exists] 表名 (field1 datatype,field2 datatype,// 这些都是表的属性!field3 datatype
) character set 字符集 collate 校验集 engine 存储引擎;// 校验集,字符集可以省略,使用默认即可
注意事项:
- 每一个列(属性)后面都有一个逗号,但是最后一个没有
- 整个语句末尾有分号
此时在/var/lib/mysql下的db_1目录下,出现了三个文件:tb1.frm,tb1.ibd,db.opt这三个文件共同维护了tb1这张表。
可见:数据库中的表的本质,就是多个文件!
2、删
删除一个表:
drop table [if exists] 表名 [, 表名, ...];
3、查
查看当前数据库下有哪些表:
show tables;
查看表的结构:
desc 表名;
各个字段含义如下:
Field
:列名Type
:列的数据类型Null
:该列是否允许为空Key
:索引类型Default
:默认值Extra
:扩充
查看 当时 建表时的语句:
show create table 表名 \G
总结:
4、改
修改表的名称
alter table old_name rename to new_name;
rename [to]:此处的to可省略,效果一样
插入新的列add
alter table 表名 add 列名 类型 comment 描述 after xxx;
comment
:相当于备注,用于表示这一列数据的含义after
:指定新增的列插入到哪一列后面,如果不指定,默认插入到最后一列
删除列drop
alter table 表名 drop 列名;
修改列change
alter table 表名 change 旧列名 新列名 类型;
总结