create database sail;
create database `create`;
create database if not exists sail;
drop database sail;
drop database if exists sail;
show databases;
use test;
show create database test;
select table_name, table_comment from information_schema.tables where table_comment like '%表注释%';
show tables;
describe grade;
show create table student;
desc grade;
create table 新表 like 旧表;
insert into 新表 select * from 旧表;
set autocommit = 0;
set autocommit = 1;
set autocommit = 0;
start transaction;
commit;
rollback;
set autocommit = 1;
savepoint 保存点名;
rollback to savepoint 保存点名;
release savepoint 保存点名;
主键索引(PRIMARY KEY
唯一标识,主键不可以有重复值,只能有一列作为主键
唯一索引(UNIQUE KEY)
避免重复的列出现,唯一索引可以有重复值,多个列都可以标识为唯一索引
常规索引(KEY/INDEX)
默认的,index或者key关键字来设置
全文索引(FULLTEXT)
快速定位数据
show index from student;
alter table student add fulltext key `name`(`name`);
create index id_表名_字段名 on 表名(字段名)
create index id_student_name on student(`name`);
alter table student drop index id_student_name;
drop index id_student_name on student;
explain select * from student;
explain select * from student where match(name) against('廖');
索引原则
索引不是越多越好。
不要对经常变动数据加索引。
小数据量的表不需要加索引。
索引一般加在常用来查询的字段上。
索引的数据结构
Btree:innoDB默认的数据结构
create user liaohang identified by '123456';
drop user liaohang;
set password = password('123456');
set password for liaohang = password('123456');
rename user liaohang to sail;
赋予所有库和表的所有权限:除了不能授权都可以
grant all privileges on *.* to liaohang;
show grants for liaohang;
show grants for root@localhost;
revoke all privileges on *.* from liaohang;
flush privileges;
mysql -h主机 -u用户名 -p密码 数据库 表 >物理磁盘路径
mysqldump -hlocalhost -uroot -pAsailing648735 test student grade >D:1.sql
登录的情况下
source 备份文件
未登录的情况下
mysql -u用户名 -p密码 <备份文件
mysql -uroot -pAsailing648735 test <D:1.sql
第一范式(1NF)
原子性:保证每一列不可再分。
第二范式(2NF)
前提:满足第一范式。
每张表只描述一件事情。
第三范式(3NF)
前提:满足第一范式和第二范式。
确保数据库表的每一列都和主键直接相关,而不是间接相关。