目录
前言
正文
内外连接 inner join
内连接
等值连接
非等值连接
自连接
外连接
左外连接 left join
右外连接 right join
全连接 full join
组函数
分组查询 group by
子查询
非关联子查询
单列子查询
单行子查询
多行子查询
多列子查询
关联子查询(循环主查询)
集合
DDL create、drop、truncate和alter
oracle数据库的基本数据类型
创建表
复制表
删除表
修改表
重命名
修改表的字段名
修改字段类型长度
添加字段
删除字段
截断表 truncate
DML insert、delete、update
添加记录
修改记录
删除记录
TCL commit、rollback和savapoint
事务ACID特性
原子性 atomicity
一致性 consistency
隔离性 isolation
持续性 durability
注:事务不处理
总结
首页 数据库 mysql教程 内外连接、组函数、DDL、DML和TCL

内外连接、组函数、DDL、DML和TCL

Jun 07, 2016 pm 03:56 PM
ddl dml tcl 函数 前言 连接

前言 cross join ,是笛卡尔积;nature join 是自然连接。 正文 内外连接 inner join inner join 的inner可以省略。 内连接 在一个表中能够找到在另一个表中与之对应的记录,来组成新的记录显示出来,舍弃表中在另一个表中没有对应记录的记录。 等值连接 一

前言

cross join ,是笛卡尔积;nature join 是自然连接。

正文

内外连接 inner join

inner join 的inner可以省略。

内连接

在一个表中能够找到在另一个表中与之对应的记录,来组成新的记录显示出来,舍弃表中在另一个表中没有对应记录的记录。

等值连接

一个表中的某个字段是另一个表的外键

例如。emp表和dept表存在多对一的关联关系,由外键字段deptno来维护,即emp表来主动维护这一关系。

非等值连接

between and 来实现非等值连接;

select e.ename,e.sal,s.grade from emp e join salgrades on e.sal between s.losal and s.hisal;

自连接

表中的字段之间寻在引用关系,通过得同一个表取不同别名来实现自身连接。

select e.empno,m.name from emp e join emp m on m.empno=e.mgr;

外连接

外连接【陪陪时会将驱动表中所有记录显示

左外连接 left join

左外连接会将主表对应的所有信息显示,从表与之匹配的记录显示。

select * from emp join dept on emp.deptno=dept.deptno(+); --加号在join 右边的表的属性上位左连接

select * from emp left join dept on emp.deptno=dept.deptno;

右外连接 right join

加号在join 左边的表的属性上位右连接

全连接 full join

将两表中所有匹配和不匹配记录显示出来。

组函数

多行函数,输入一组记录,输出一行记录。max、min、avg、sum和count函数。

分组查询 group by

1.如果在select之后有某个字段名称,那么此字段必须作为分组的条件之一。

select deptno,max(sal) from emp group by deptno;--在分组查询中,select 之后除了组函数以外,查询的字段名称和个数最好和group by 之后的字段名称和个数一致。

2.过滤分组查询可以使用having关键字,having用于过滤分组之后的结果

select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;--having不能单独使用,它必须出现在group by 之后。

3.where 不可接分组函数

4.分组查询的执行顺序

先执行from,在执行where,或在分组,最好才执行select。

子查询

查询中含有查询

非关联子查询

单列子查询

查询结果是一行一列

单行子查询可以使用比较运算符(,=,!=,)

select enamel ,sal rom emp where sal>(select sal from emp where ename='SOTT');

单行子查询

子查询的结果是一行多列

select enamel,sal。deptno from emp where (deptno,sal) in(select deptno,max(sal) from emp group by deptno having deptno=10);

多行子查询

子查询的结果是多行一列

select * from emp where deptno in(select deptno from emp where job='CLERK');

注:

=any 跟in的效果一样,匹配子查询的所有值

>any 大于最小的

多列子查询

子查询的结果是多行多列

select enamel,sal。deptno from emp where (deptno,sal) in(select deptno,max(sal) from emp group by deptno );

关联子查询(循环主查询)

子查询和主查询进行关联查询

select * from emp out where sal>(select avg(sal) from emp where out.deptno=deptno group by deptno);--先将主表out的第一条记录的deptno传到子查询,并将查询结果返回到主查询,主查询将符合条件的记录放入到结果集中,依次循环该过程,直到循环到主表的最后一条记录。

例子

select * from emp out where empno in(select mgr from emp);;--查询出所有的领导

select * from emp out where exists(select 'x' from emp where mgr=out.empno);--exists,假如存在,子查返回的是true,并不关注子查询返回的具体的结果。

集合

集合查询中的字段个数和类型要一致,这称为select的同构。

select job from emp deptno=10 union all select job from emp deptno=20;

注:

union all 并集,并且不去除重复

union 并集,去除重复

intersect 交集

minus 差集

DDL create、drop、truncate和alter

oracle数据库的基本数据类型

number 数字类型

varchar2字符串类型;可变长

char 字符串类型,固定长度,占用空间不变,执行效率高

date日期类型

clob 字符型大数据类型

blob 字节型大数据类型

创建表

create table 表名(字段名 数据类型 约束,字段名 数据类型 约束);

复制表

复制表只能复制表结构和数据,复制不了约束。

create table 表名1 as select * from emp where empno=10000;---如果where条件不成立,查不到任何东西时,该语句只复制了表结构;

注:user_constraints 存储当前用户的相关信息的数据字典

删除表

drop table 表名

修改表

重命名

rename 旧表名 to 新表名

修改表的字段名

alter table 表名 rename column 旧字段名 to 新字段名;

修改字段类型长度

修改字段类型的前提是当前的字段值是空的,即修改的列为空。

alter table 表名 modify(字段名称 字段类型(长度));

添加字段

alter table 表名 add(字段名称 字段类型(长度));

删除字段

alter table 表名 drop (字段名称);

alter table 表名 drop column(字段名称);

截断表 truncate

删除表中的所有记录,效率比delete更高

DML insert、delete、update

添加记录

字段的值与表中字段的类型和长度要匹配

insert into 表名(字段名称1,字段名称2) value(字段1的值,字段2的值);

1.一次插入多条记录

insert into emp(empno,ename) select empno,ename from emp;

修改记录

update 表名 set 被修改的字段名1=新值,被被修改的字段名2=新值

删除记录

delete 【from 】 表名;

TCL commit、rollback和savapoint

事务ACID特性

数据库运行的最小单元,是一系列的数据操作,是数据库应用程序的基本逻辑单元。事务是恢复和并发控制的基本单元。

1.在sql中,定义事务的预计有3条

begin transaction

commit

rollback

通常事务以begin transaction 开始,以commit或rollback结束。

注:

1.rollback 回滚事务,事务恢复到上一个事务结束之前的状态。

2.dml执行会开启一个事务。

3.commit 提交事务,当前操作会执行应用到数据库

4.commit和rollback会显式的提交事务

5.savepoint 事务点名;设置事务点

rollback to 事务点名;--在事务点之后的其他dml操作都会被取消

6.ddl语句隐式的提交事务

原子性 atomicity

事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性 consistency

事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性 isolation

一个事务的执行不能被其他事务干挠。

持续性 durability

也称永久性,值一个事务一旦提交,它对数据库中数据的改变就应该使永久性的。

注:事务不处理

1.表和行级别的锁不会释放

2.当前会话的操作在其他会话中查不到

3.当前事务可以回滚

4.当前事务回滚段的资源不会释放

总结

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

IFA 2024 | TCL 的 NXTPAPER 14 在性能上无法与 Galaxy Tab S10 Ultra 相媲美,但在尺寸上几乎可以与之媲美 IFA 2024 | TCL 的 NXTPAPER 14 在性能上无法与 Galaxy Tab S10 Ultra 相媲美,但在尺寸上几乎可以与之媲美 Sep 07, 2024 am 06:35 AM

除了发布两款新智能手机外,TCL 还发布了一款名为 NXTPAPER 14 的新 Android 平板电脑,其大屏幕尺寸是其卖点之一。 NXTPAPER 14 采用 TCL 标志性品牌哑光液晶面板 3.0 版本

IFA 2024 |新款 TCL 50 NXTPAPER 智能手机推出,配备用于激活准 E Ink 模式的专用按钮 IFA 2024 |新款 TCL 50 NXTPAPER 智能手机推出,配备用于激活准 E Ink 模式的专用按钮 Sep 06, 2024 am 06:56 AM

TCL 正在通过两款新型号扩展其 TCL 50 系列智能手机。在 IFA 2024 上发布的 TCL 50 Pro NXTPAPER 5G 和 TCL 50 NXTPAPER 5G 不仅配备了 TCL 标志性的 NXTPAPER 技术,而且侧面还配备了实用的滑块

golang函数动态创建新函数的技巧 golang函数动态创建新函数的技巧 Apr 25, 2024 pm 02:39 PM

Go语言提供了两种动态函数创建技术:closures和反射。closures允许访问闭包作用域内的变量,而反射可使用FuncOf函数创建新函数。这些技术在自定义HTTP路由器、实现高度可定制的系统和构建可插拔的组件方面非常有用。

C++ 函数命名中参数顺序的考虑 C++ 函数命名中参数顺序的考虑 Apr 24, 2024 pm 04:21 PM

在C++函数命名中,考虑参数顺序至关重要,可提高可读性、减少错误并促进重构。常见的参数顺序约定包括:动作-对象、对象-动作、语义意义和遵循标准库。最佳顺序取决于函数目的、参数类型、潜在混淆和语言惯例。

如何在Java中写出高效和可维护的函数? 如何在Java中写出高效和可维护的函数? Apr 24, 2024 am 11:33 AM

编写高效和可维护的Java函数的关键在于:保持简洁。使用有意义的命名。处理特殊情况。使用适当的可见性。

excel函数公式大全 excel函数公式大全 May 07, 2024 pm 12:04 PM

1、 SUM函数,用于对一列或一组单元格中的数字进行求和,例如:=SUM(A1:J10)。2、AVERAGE函数,用于计算一列或一组单元格中的数字的平均值,例如:=AVERAGE(A1:A10)。3、COUNT函数,用于计算一列或一组单元格中的数字或文本的数量,例如:=COUNT(A1:A10)4、IF函数,用于根据指定的条件进行逻辑判断,并返回相应的结果。

C++ 函数默认参数与可变参数的优缺点比较 C++ 函数默认参数与可变参数的优缺点比较 Apr 21, 2024 am 10:21 AM

C++函数中默认参数的优点包括简化调用、增强可读性、避免错误。缺点是限制灵活性、命名限制。可变参数的优点包括无限灵活性、动态绑定。缺点包括复杂性更高、隐式类型转换、调试困难。

C++ 函数返回引用类型有什么好处? C++ 函数返回引用类型有什么好处? Apr 20, 2024 pm 09:12 PM

C++中的函数返回引用类型的好处包括:性能提升:引用传递避免了对象复制,从而节省了内存和时间。直接修改:调用方可以直接修改返回的引用对象,而无需重新赋值。代码简洁:引用传递简化了代码,无需额外的赋值操作。

See all articles