首页 小组 文章 相册 留言本 用户 搜索 我的社区 在线学堂 商城 购物车 支付钱包

[打卡]打卡Do

2024-05-17 17:05:51
0
171


# 多行子查询

# 多行比较操作符

/*
	IN 等于列表中任意一个
	
	ANY 需要和单行比较符号一起使用,和子查询查询的某一个值比较(任意、任一)
	
	ALL 需要和单行比较操作符一起使用,和子查询返回的所有值比较
	SOME 实际上是ANY的别名,作用和ANY相同,一般常用ANY
	
	# 非法使用子查询
	
	


*/

# 非法使用子查询

select employee_id,last_name
from employees
where salary in(
						select min(salary)
						from employees
						GROUP BY department_id
);

# ANY / ALL

# 返回其他job_id中比job_id为'IT_prog'部门仁义工资的员工的员工号,姓名,job_id 以及salary

select employee_id,last_name,salary
from employees
where job_id<>'IT_PROG'
AND salary < all(
						SELECT salary
						FROM employees
						where job_id='IT_PROG'

);

# 查询平均工资最低的部门id

# mysql中聚合函数不能嵌套
select min(avg(salary))
from employees
GROUP BY department_id;


# 第九章 约束

/*

1 基础知识

1.1 为什么要学约束?为了保障数据的完整性

1.2 什么叫约束? 对表中字段的限制

1.3 约束的分类

角度1:约束的字段的个数

单列约束 vs 多列约束

角度2:约束的作用范围

列级约束:将此约束声明在对应字段的后面

表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束

角度3:约束的作用(或功能)

(1) NOT NULL 非空约束

(2) UNION 唯一性约束

(3) PRIMARY KEY 主键约束

(4) FOREIGN KEY 外键约束

(5) CHECK 检查约束

(6) DEFAULT 默认值约束

1.4 如何添加/删除约束

CREATE TABLE 时添加约束 删除约束

# 2 如何查看表中的约束



*/

select * from information_schema.TABLE_CONSTRAINTS where table_name='employees';

# not null 非空约束 只能用列级约束,不能用表级约束

create DATABASE dbtest;

use dbtest;

# 在 CREATE TABLE 时添加约束

create table test(

id int not null,

last_name VARCHAR(10) not null,

email VARCHAR(15),

salary INT



);

评论
意见反馈