主要写的是:mysql中对数据库,表,数据的增删改查
查询
内连接:隐式内连接,显示内连接
外连接:左外连接,右外连接
子查询:三种方式
数据库操作
增加数据库
create database 库名;
删除数据库
drop database 库名;
修改数据库字符集
alter database 库名 character set utf8; 修改数据库字符集
查询数据库
show database; 查询所有数据库
show create database 库名 ; 查询某一个数据库
表操作
主键约束: primary key
非空约束: not null
唯一约束: unique
外键约束: foreign key
创建表
create table 表名( 列名 数据类型 primary key(主键约束),
列名 数据类型 not null(非空约束),
列名 数据类型 unique(唯一约束),
列名 数据类型 foreign key(外键约束),
......
);
删除表
drop table 表名;
修改表
alter table 表名;
查询表
show table ; 查询所有表名称
desc 表名 ; 查询表结构
数据操作
增
insert into 表名(列名1,列名2,列名3,.....)values(值1,值2,值3,......);
删
delete from 表名 where 条件 ;
改
update 表名 set 列名1= 值 , 列名2=值 where 条件 ;
查
select 列名 from 表名 where 条件 ;
查询的命令模板
select 列名 distinct 筛选
count (*)计算个数
AVG 平均数 SUM 求和 MAX 最大 MIN 最小
from 表名
where
group by 列名 分组
having 条件 分组之后的条件
order by 列名 ASC/DESC 排序 ASC/DESC 升序/降序
limit 0,3 分页 查询3条数据
列名 between and 在什么之间
列名 in(1,2,3,4) 查询具体数据1,2,3,4对应的数据
is null 查询的数据为空
is not null 查询的数据不为空
列名 like '西%' 第一位为西的数据
like '_西%' 查询第二位为西的数据
like '_ _ _' 查询数据为3位的数据
like '%思%' 查询 包含思的数据
AND 优先级 高于 OR
and and是与关系,两边有必须全部为真
or or是或关系,就是两边有一个是真就行
not
内连接
隐式内连接
select
t.列1,t.列2,s.列3
from
表1 t 表2 s
where
条件 t.id = s.id
显示内连接
select 列 名 from 表名1 inner join 表名2 on 条件;
外连接
左外连接
select 列名 from 表1 left join 表名2 on 条件;
右外连接
select 列名 from 表1 right join 表名2 on 条件;
子查询
1,使用运算符 > >= <= < =
select 列名 from 表名 where 列名 > (select 列名 from 表名 where 条件);
2.使用子查询作为一张虚拟的表
select t1.列名 ,t2.列名 from t1,(select 列名from表名 where 条件)t2 where 条件 ;
3.使用子查询作为条件
select 列名 from 表名 where id in (select 列名 from 表名 where 条件);