数据库之查询与约束

1.过滤空值 ifnull(comm,0)
如果是空值就取0

2. 升序(asc) 降序 (desc)
默认是升序 使用:order by 字段名 desc

 查询所有雇员,按月薪降序排序,如果月薪相同时,按编号降序排序
SELECT * from emp ORDER BY sal DESC, empno DESC;

3.一些基本的函数
3.1 count(*)计数
3.2 sum() 求和
3.3 avg() 去平均值
3.4 max() min() 最大值最小值

例 
计算佣金的记录数 查询薪金记录数
select count(comm) 佣金行数 ,count(sal) 薪金行数 from emp;
查询薪金总和
select sum(sal) from emp;
统计所有员工平均工资:
SELECT avg(sal) 平均工资 from emp;
查询最高工资和最低工资
select max(sal) ,min(sal) from emp;

4.分组查询 group by 组名
查询每个部门的编号以及每个部门的人数
select deptno,count(ename) from emp GROUP BY deptno;

5.分页查询
linmit 参数一,参数二 
第一个参数代表起始页 ,第二参数表示一共显示几条记录

例 
select * from emp LIMIT 0,3; 从0开始显示三条记录

6.模糊查询
通配符 关键字 like
% 代表可以匹配任意个字符  _ 代表一个字符 


select * from emp where ename like ‘%W’;
SELECT * from emp where ename like ‘%w%’;
SELECT * from emp where ename like ‘w_’;
SELECT * from emp where ename like ‘w_‘;

7数据的完整性
实体完整性,域完整性,引用完整性

7.1 主键完整性(primary key)—数据唯一,且不能为空

添加主键的方式一
create table student (id intprimary key,name varchar(100));

添加方式二 添加联合主键
create table stu2 (id int ,name varchar(100),primary key(id));

create table stu3(cid int,tid int,name varchar(100),primary key(cid,tid));

联合主键的意思是只要不完全相同就可以看做是唯一的

添加方式三 直接在表结构中添加主键

create table stu4 (id int ,name varchar(60));
alter table stu4 add constrint primary key(id);

7.2 唯一约束 (unique)
特点:数据不能重复但是可以空值 

create table stu5 (id int,name varchar(100) unique);

insert into stu5 values (4,null); 可以插入

insert into stu5 values (3,’wang’),(2,’wang’); 无法插入

7.3 自动增长列 auto_increment
create table stu6 (id int primary key auto_increment,name varchar(100));
insert into stu6 values (null,’ong’);
insert into stu6 values (null,’ong’);
insert into stu6 values (null,ong’);
insert into stu6 values (4 ,’sda’);
前面null自动会变成1,2,3

8.域完整性
— 限制单元格的数据是否正确
— 域完整性约束 数据类型

非空约束(not null)与默认约束(default)

create table stu7(id int primary key,name varchar(100) not null,gender varcahr(100) default ‘男’);

此时插入数据时name 字段不能为空,并且你不填写性别时,默认为男

例:insert into stu7(id,name) values (1,’fgjk’);

9.引用完整性

创建一张学生表 及其成绩表

create table mstudent(sid int primary key,name varcahr(100));

方式一;

create table score(
score int ,
sid int
--添加一个外键 foreign key(sid)
constrint fk_score_sid foreign key (sid) reference mstudent(sid)
);

方式二:
alter batle score add constra int fk_score_sid foreign key(sid) referance mystudent(sid);

你可能感兴趣的:(数据库之查询与约束)