一、数据库相关知识
1.数据库连接
mysql -h 127.0.0.1 -P 3306 -u root -p
2.行:一条记录
列:属性(列名称不能重复)
3.SQL分类
分类 | 功能 | 代表指令 |
---|---|---|
DDL | 数据定义语言,用来维护存储数据的结构 | create,drop,alter |
DML | 数据操纵语言,用来对数据进行操作 | insert,delete,update |
DQL(DML中的一种) | 数据查询语言 | select |
DCL | 数据控制语言,主要负责权限管理和事务 | grant,revoke,commit |
4.存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
5.校验规则:在进行数据对比的时候,所采用的编码格式
(1)创建数据库以字符集utf8,校验集,不区分大小写
create database db2 charset=utf8 collate utf8_general_ci;
(2)创建数据库以字符集utf8,校验集,区分大小写
create database db2 charset=utf8 collate utf8_bin;
二、数据库的库操作
1.查看数据库
show database;
2.显示创建的数据库
show create database 数据库名;
3.修改数据库的字符集
alter database 数据库名 charset=gbk;
4.删除数据库
drop database 数据库名
5.备份和恢复
(1)备份:本质是将历史上对mysql指定的数据库的所有历史操作,都做一下备份(binlog全量记录对指定数据 库的操作)
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
例如:
mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql
(2)恢复
source ./备份名.sql;
注意:
(1)备份数据库中的一张表
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
(2)同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
若没有带-B参数,恢复时需要先创建一个空数据库,再恢复
6.查看数据库连接情况
show processlist;
三、数据库的表操作
1.创建表(默认表名是users)
CREATE TABLE 表名 (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
注意:
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
MYisam:默认在指定的database中形成的数据库文件是3个,分别是
users.frm:表结构
users.MYD:表数据
users.MYI:表索引
例如:
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;
comment相当于注释
2.查看表结构
第一种
desc 表名;
第二种
show create table 表名;
或者
show create table 表名 \G
3.修改表(表属性)
alter table 表名字 add/modify/drop 列名+列属性
alter table 表名字 rename 表新名
alter table 表名字 change 旧列名字 新列名+新列属性
(1)增列
alter table users add path varchar(100) comment '图片路径';
(2)删列
alter table users drop path;
(3)改列类型
alter table users modify name varchar(60);
(4)改列排列顺序
alter table users add path varchar(100) comment '图片路径' after id;
(5)改表名
alter table 旧名 rename 新名
(6)修改列名
列name改为sxl
alter table 表名 change name sxl varchar(60); --新字段需要完整定义
4.删表(尽量不要删,删之前备份)
drop table users;