cgb2109-day04
Posted cgblpx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cgb2109-day04相关的知识,希望对你有一定的参考价值。
一,SQL练习
–1,测试
#练习1:依次按照多个条件排序,asc升序,desc降序
SELECT * FROM emp ORDER BY sal DESC,ename ASC
SELECT * FROM emp ORDER BY deptno DESC,ename ASC
#练习2:统计每个岗位的员工人数
SELECT job,COUNT(1) FROM emp
#什么时候必须需要分组?查询时出现了混合列
#按照啥分组?按照非聚合列分组
GROUP BY job
#练习3:统计每个部门包含re的部门编号
SELECT deptno FROM dept
WHERE dname LIKE 're%' #以re开始的
GROUP BY loc #合理的分组
#练习4:统计每年入职的员工的最高薪资,只要>5000的
SELECT MAX(sal) a,YEAR(hiredate) b FROM emp
GROUP BY b #分组,除了where里不能用别名其他位置都行
#having里可用聚合函数where不能
HAVING a>5000 #分组后过滤
#练习5:查询所有员工的最高薪-用分页
SELECT MAX(sal) FROM emp
SELECT sal FROM emp ORDER BY sal DESC LIMIT 1
#创建user表(id,name,pwd),并插入数据
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,#主键自增
NAME VARCHAR(20),
pwd VARCHAR(10)
)
INSERT INTO USER VALUES(NULL,'jack',"123")
INSERT INTO USER VALUES(NULL,'rose',"456")
#对上面SQL中使用的事务进行优化,因为上面的SQL需要两个事务的开启和关闭
#下面这种SQL也叫作批量插入的功能,高效,多次插入使用同一个事务
INSERT INTO USER VALUES
(NULL,'tony',"123"),(NULL,'jerry',"456")
二,字段约束
–1,默认约束
哪个字段添加了默认约束,从此字段值的就有了默认值
#默认约束:给字段设置默认值而不是默认的null,使用default
CREATE TABLE a(
id INT PRIMARY KEY AUTO_INCREMENT,
sex VARCHAR(10) DEFAULT '男'#默认约束
)
–2,检查约束
哪个字段添加了检查约束,从此,字段值必须符合检查的条件才可以
#检查约束:使用check,了解
CREATE TABLE b(
id INT PRIMARY KEY AUTO_INCREMENT,
age INT,
CHECK(age<200 AND age>0)#检查约束
#数据要满足检查条件才可以
)
–3,外键约束!
使用明确的一段代码表示,两个表之间的关系
#外键约束:先创建外键+再使用外键
CREATE TABLE tb_user(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
sex CHAR(10) DEFAULT '男'#默认约束
)
CREATE TABLE tb_user_address(
user_id INT PRIMARY KEY,
address VARCHAR(200),
#foreign key(当前表的主键名) references 对方表(对方的主键)
FOREIGN KEY(user_id) REFERENCES tb_user(id)#1.创建外键
)
#2.使用外键
#约束的情况1:子表的主键值 必须 取自 主表的主键值
三,标题
以上是关于cgb2109-day04的主要内容,如果未能解决你的问题,请参考以下文章