1.多行子查询
in
all max min
> 我就跟最大值比较
< 我就跟最小值比较
all和全部的值比较,所以条件最为苛刻,返回一个值 最大/最小
要找个XXX条件的女的,条件苛刻
any
> 我就跟最小值比较
< 我就跟最大值比较
any和任意一个值比较,所以其条件最为宽松,返回所有值
是个女的就可以了,条件宽松
我们可以用max ,min替换all,any
2.最简单的就是最好的
3.处理数据
4.常见的数据库对象:
表
视图
序列
索引
同义词
5.表:
用户定义的表
数据字典
desc user_tables;
select * from user_tables where lower(TABLE_NAME) = 'employees';
创建表:
权限 存储空间
限额 指定大小
create table XXX(.....);
drop table XXX;
数据类型:
使用子查询来建表:
create table YYY as ..写select...
create table YYY() as ..写select...;
写select中用别名as
那么create table 中的列名就可以自定义了
alter table add
modify
drop column
rename XXX to YYY
清空表
truncate table XXX
truncate不能回滚
Oracle中auto_commit为false
MySQL中auto_commit为true
6.insert into dept_1 select department_id, department_name from departments
不能使用values
7.create table employees2 as select * from employees where 1=2;
人为的搞错,只复制表结构,记录不要
8.insert into XXX () values ();
字符和日期要放在' '中
日期: to_date() 不知道它的格式,我同一用to_date()
插入空值 : 不写(不插你) 或者 null(插你个null)
9. &取值
insert into emp(name, email) values ('&name', '&email')
10.从其他表中拷贝数据
insert into XXX (不写values) ...写select...
11.update中使用子查询
update employees
set job_id = (
select job_id
from employees
where employee_id = 205
),
salary = (....)
where employee_id = 104;
12.数据完整性:
update
...中没有
13.delete from XXX where
数据完整性
通过外键。。来约束
14.事务
原子性:要么都成,要么都不成
一致性:A有100,B有100
转账后A有50,B有150
钱的总数和转账前是一致的
隔离性:
持久性:一旦被提交,在数据库中是永久的
15.事务 结束
commit / rollback
DDL DCL (自动提交)
用户会话正常结束
系统异常
16.回滚点
rollback to XXX
17.约束
not null
unique
primary key 唯一标识,非空不能重复
foreign key
关联另一张表的 列 那个列要是唯一的
主键是:唯一 非空不重复
大部分是关联到主键上
外键 指向.... 它的取值范围是关联的那个列的取值范围
on delete cascade
on delete set null
check
定义每一行必须满足的条件
列级约束 对一列
表级约束 constraint 对多列
not null 只能定义在列上
建约束的时候 最好给它取名字
唯一约束的列值可以为空
第二十三天:听课笔记
最新推荐文章于 2022-08-12 17:05:50 发布