MySQL-DDL语句
- 数据库操作语句
- 增删数据库
- 查看数据库列表
- 创建数据库
- 进入(使用)数据库/查看当前所在的数据库
- 查看数据库的建库语句
- 查看数据库的编码集和校验集
- 删除数据库
- 修改数据库的编码集
- 查看数据库支持的编码集和校验集
- 数据库备份
- 备份单个数据库
- 恢复数据库
- 备份多个数据库
- 备份数据库中的表结构
- 查看登录列表
- 表结构操作语句
- 创建表
- 查看此数据库下的所有表
- 查看表的详细信息
- 查看建表语句
- 修改表
- 删除表
- 插入数据
- 增加属性列
- 更改属性列的数据类型
- 更改属性列的属性名
- 删除某一属性列
数据库操作语句
增删数据库
查看数据库列表
show databases;
其中前四个数据库是MySQL数据库自带的,test_db是后来新创建的数据库。
创建数据库
create database db1;
create database [if not exists] dbname [charset = utf8 collate utf8_general_ci engine=innodb]
//上面上种是完整的建库语句,如果在配置文件中设置了编码集和存储引擎可以不用显示写出。
🚀创建数据库的本质:在Linux下安装的MySQL,创建一个数据库就是在 /var/lib/mysql目录下创建一个目录文件。创建表结构就是在相应的数据库目录下创建表文件。
db.opt文件内记录了该数据库的配置信息。
进入(使用)数据库/查看当前所在的数据库
use db_name; //使用或者进入名字为db_name的数据库
select database(); //查看当前所在的数据库
查看数据库的建库语句
show create database db_name; //\G是格式化显示
查看数据库的编码集和校验集
show variables like "character_set_database";
show variables like "collation_database";
🚀编码集和校验集
编码集是指数据在数据库中以怎样的编码格式存储
校验集是指在数据库中读取数据或者是进行数据对比是采用的编码格式。
删除数据库
drop database [if exists] db_name;
修改数据库的编码集
alter database db_name charset = gbk; //修改数据库的编码集
可以看到当我们修改数据库的编码集时,其校验集跟随着自动发生改变。
查看数据库支持的编码集和校验集
show charset;
show collation;
数据库备份
备份数据库的操作在root权限下进行。
备份单个数据库
mysqldump -u -P -p -B test_db > /home/gy/test_db.sql
//在命令行中,不是在MySQL中输出此语句
//-u后面跟用户名
//-p后面跟密码(有密码的话)
//-P 指明数据库使用的端口号
//-B 后面跟数据库名称
恢复数据库
source 路径/test_db.sql; 导入之前备份的数据库文件
备份多个数据库
mysqldump -u -P -p -B test_db > /home/gy/test_db.sql db1 > /home/gy/db1.sql //直接在后面追加即可
备份数据库中的表结构
mysqldump -P -u -p 指定数据库 表1 表2 > name.sql
备份文件中的数据
查看登录列表
show processlist;
表结构操作语句
创建表
create table tb_name (
字段名,数据类型
...
)[character set 编码集 collate 校验集 engine 存储引擎];
create table t3(
id int,
name varchar(12) )
character set utf8 collate utf8_general_ci engine=innodb;
查看此数据库下的所有表
show tables;
查看表的详细信息
desc tb_name;
查看建表语句
show create table tb_name\G; \G用于格式化显示
🚀comment—建表时对某一列属性进行文字说明
create table stu (
sno char(12) primary key comment '这是学号',
sname varchar(10) comment '学生姓名'
);
//使用show create table tb_name;来查看建表语句时就可以看到建表时对属性列的描述
修改表
删除表
drop table tb_name;
🚀修改表名
alter table tb_name rename to newtb_name;
//alter table stu rename to student;
插入数据
insert into tb_name [(属性列...)]全列插入时可省略 values(插入的属性值);
1.全列插入
insert into student values('1001','张三');
2.指定列插入
insert into student(sno) values('1002');
增加属性列
alter table tb_name add 属性列名 数据类型[after 属性列];
1.在学生表中插入年龄这一属性列
alter table student add age int;
2.在学生表中插入性别这一属性列,并且要求在姓名列后
alter table student add gender enum('男','女') after sname;
更改属性列的数据类型
alter table tb_name modify 属性名 数据类型;
1.修改学生表中性别数据类型为char(1)
alter table student modify gender char(1);
更改属性列的属性名
alter table tb_name change oldname newname 数据类型;
1.修改学生表中性别的属性名为sex
alter table student change gender sex char(1);
删除某一属性列
alter table tb_name drop 属性列;
1.删除学生表中年龄字段
alter table student drop age;