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用于格式化显示
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;
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;