数据库基本操作
查看数据库
show databases;(所有数据库)
show databases like ‘test’;(test数据库)
show databases like ‘test%’;(test开头的数据库)
show databases like ‘%test’;(test结尾的数据库)
show databases like ‘%test%’;(包含test的数据库)
show create database test;(查看test数据库的全局特性)
创建数据库
create database IF NOT EXISTS test
DEFAULT CHARACTER SET gb2312(字符集名)
DEFAULT COLLATE gb2312_chinese_ci;(校对规则名)(修改数据库的全局特性)
修改数据库
alter database test
DEFAULT CHARACTER SET gb2312(字符集名)
DEFAULT COLLATE gb2312_chinese_ci;(校对规则名)(修改数据库的全局特性)
删除数据库
drop database test;(test数据库)
选择数据库
use test;(test数据库)
注释
#我是行注释
– 我是行注释
/* */我是多行注释
帮助
help contents;
数据表基本操作
查看数据表
show tables;(所有的表)
desc tb;(tb表结构)
show create table tb\G;(tb表的详细信息,包括约束)
创建数据表
use db;
create table tb(
id int,
name varchar(25),
salary float
);(tb数据表)
修改数据表
alter table tb rename tb1;
alter table tb add marry int;(在末尾增加字段)
alter table tb add marry int first;(在开头增加字段)
alter table tb add marry int after salary;(在字段后增加字段)
alter table tb modify marry int;
alter table tb change marry ma int;
alter table tb drop marry;
alter table tb1 drop foreign key fk_tb1_tb;(删除tb1表的主键约束)
删除数据表
drop table tb;(tb数据表)
约束
主键约束:唯一确定表中的一条记录,该字段的值不重复且不为空
联合主键约束:联合主键字段的值相加不重复
自增约束:该字段的值自动增长
唯一约束:该字段的值不重复可以为空
非空约束:该字段的值不能为空
默认约束:该字段的值,如果没有传值,使用默认值
外键约束:父表,没有的值,在子表,不可以使用
父表的列被子表引用,不可以删除该列
数据三大设计范式
第一范式:表中所有字段都是不可分割的原子值。(字段可以分割成更小的字段,拆字段)
第二范式:满足第一范式前提下,除主键外的字段都要完全依赖主键。
如果要出现不完全依赖,只能发生在联合主键的情况下。(如果字段不依赖主键并且依赖其他字段,拆表)
第三范式:满足第二范式前提下,除主键外的字段和其他字段之间不能有传递依赖关系。(如果字段同时依赖2个字段,拆表)
连接查询
内联查询inner join:两张表的数据,通过某个字段相对,查询出相关记录数据。
左外连接left join:两张表的数据,把左表的所有数据取出来。右表有相对的字段,就显示,没有就补NULL。
右外连接right join:两张表的数据,把右表的所有数据取出来。左表有相对的字段,就显示,没有就补NULL。
全外连接full join: