创建表
create table 表名(列名 数据类型 建表约束);
建表约束可以按照需求填写 ,包括:
主键:primary key 唯一且不为空
唯一:unique 内容唯一 可以为空 可以有多个唯一列
不为空:not null
默认值:default
自增:auto_increment
create table studentInfo(number int primary key auto_increment,
name varchar(10) not null,
sex enum('男','女') not null,
age int default 18);
删除表
drop table 表名
该命令为整张表删除
drop table studentinfo;
修改表
alter table 表名...;
1 增加列
Alter table 表名 add columr 列名 数据类型 建表约束
alter table studentinfo add column school int ;
2 修改列属性
Alter table 表名 modify 列名 数据类型 建表约束
alter table studentinfo modify school varchar(15) ;
3 删除列
Alter table 表名 drop columr 列名
alter table studentinfo drop column school;
插入数据
1 全部列插入
insert into 表名 values(数据1,数据2,......)
数据列顺序与表中列顺序相同
insert into studentinfo values(1,'xxx','男',20);
insert into studentinfo values(2,'xx','女',19);
2 部分插入
insert into 表名(列名1,列名2....) values(数据1,数据2,......)
数据列顺序与列名顺序相同
insert into studentinfo(name,sex) valuse('wu','男');
insert into studentinfo(sex,name,age) valuse('男','wang',18);
修改数据
updata 表名 set into 列名=新的值 where 条件;
update studentinfo set sex='男' where name='xx';
删除数据
delete from 表名 where 条件;
delete from studentinfo where name='xx';
查询
1 查询全部数据
select*from 表名
select * from studentinfo;
2 查询部分数据
select 列名1,列名2,.....from 表名;
给列起别名select 列名1 别名1,列名2 别名2,.....from 表名;
在本次查询中临时改变
3 查询加条件
select*from 表名 where 条件;
select * from studentinfo where age>18 or sex='女';
模糊查询
where 列名 like 模糊表达式
%可匹配0或多个字符
_可匹配一个字符
分页查找
limit a,b a为起始位置 b为显示多少行
聚合函数
1 查行数
select count(参数)from 表名
2 求和
select sum()from 表名
3 最大值和最小值
max()和min()
4 平均值
avg()
分组
group by 条件
例:查询每门课程的平均分:
select avg(score)from sc where group by course;
having
用来过滤条件 过滤条件的列表中没有用having
排序
order by 列名 排序规则 (asc/desc)
多表联查
内联
表1 inner join 表二 on 连接条件
左联
表1 left join 表二 on 连接条件
右联
表1 right join 表二 on 连接条件
笛卡尔积
select*from表一,表二 where 连接条件
区别
内联:不包含空的结果,取的是两个表的交集
左联:以左侧的表为基准,匹配行,如果没有对应的属性就是空
右联:以右侧的表为基准,匹配行,如果没有对应的属性就是空
笛卡尔积:查询结果和内联一致。先排列组合所有的可能,再选满足条件的行
视图
视图:是为了简化复杂的sq1语句提出的概念,是一个表或者多个表导出的虚拟表,不是真实存在的,不需要遵守范式的要求
创建视图:create view 视图名 as(sql语句);
优点:sql语句在网络中传输,使用视图可以减少流量,更安全
缺点:执行效率并不会提高,还是执行的原来的
函数
函数删除:drop function 函数名