Inhaltsverzeichnis
前言
正文
内外连接 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
注:事务不处理
总结
Heim Datenbank MySQL-Tutorial 内外连接、组函数、DDL、DML和TCL

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

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

前言 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.当前事务回滚段的资源不会释放

总结

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1672
14
PHP-Tutorial
1276
29
C#-Tutorial
1256
24
IFA 2024 | Das NXTPAPER 14 von TCL wird in der Leistung nicht mit dem Galaxy Tab S10 Ultra mithalten können, in der Größe aber fast IFA 2024 | Das NXTPAPER 14 von TCL wird in der Leistung nicht mit dem Galaxy Tab S10 Ultra mithalten können, in der Größe aber fast Sep 07, 2024 am 06:35 AM

Neben der Ankündigung zweier neuer Smartphones hat TCL auch ein neues Android-Tablet namens NXTPAPER 14 angekündigt, dessen riesige Bildschirmgröße eines seiner Verkaufsargumente ist. Das NXTPAPER 14 verfügt über Version 3.0 der matten LCD-Panels der Signaturmarke von TCL

IFA 2024 | Die neuen TCL 50 NXTPAPER-Smartphones werden mit speziellen Tasten zum Aktivieren eines Quasi-E-Ink-Modus auf den Markt gebracht IFA 2024 | Die neuen TCL 50 NXTPAPER-Smartphones werden mit speziellen Tasten zum Aktivieren eines Quasi-E-Ink-Modus auf den Markt gebracht Sep 06, 2024 am 06:56 AM

TCL erweitert seine Smartphone-Serie TCL 50 um zwei neue Modelle. Das auf der IFA 2024 angekündigte TCL 50 Pro NXTPAPER 5G und das TCL 50 NXTPAPER 5G sind nicht nur mit der charakteristischen NXTPAPER-Technologie von TCL ausgestattet, sondern verfügen auch über einen praktischen Schieberegler an der Seite

Tipps zum dynamischen Erstellen neuer Funktionen in Golang-Funktionen Tipps zum dynamischen Erstellen neuer Funktionen in Golang-Funktionen Apr 25, 2024 pm 02:39 PM

Die Go-Sprache bietet zwei Technologien zur dynamischen Funktionserstellung: Schließung und Reflexion. Abschlüsse ermöglichen den Zugriff auf Variablen innerhalb des Abschlussbereichs, und durch Reflektion können mithilfe der FuncOf-Funktion neue Funktionen erstellt werden. Diese Technologien sind nützlich bei der Anpassung von HTTP-Routern, der Implementierung hochgradig anpassbarer Systeme und dem Aufbau steckbarer Komponenten.

Überlegungen zur Parameterreihenfolge bei der Benennung von C++-Funktionen Überlegungen zur Parameterreihenfolge bei der Benennung von C++-Funktionen Apr 24, 2024 pm 04:21 PM

Bei der Benennung von C++-Funktionen ist es wichtig, die Reihenfolge der Parameter zu berücksichtigen, um die Lesbarkeit zu verbessern, Fehler zu reduzieren und das Refactoring zu erleichtern. Zu den gängigen Konventionen für die Parameterreihenfolge gehören: Aktion-Objekt, Objekt-Aktion, semantische Bedeutung und Einhaltung der Standardbibliothek. Die optimale Reihenfolge hängt vom Zweck der Funktion, den Parametertypen, möglichen Verwirrungen und Sprachkonventionen ab.

Vollständige Sammlung von Excel-Funktionsformeln Vollständige Sammlung von Excel-Funktionsformeln May 07, 2024 pm 12:04 PM

1. Die SUMME-Funktion wird verwendet, um die Zahlen in einer Spalte oder einer Gruppe von Zellen zu summieren, zum Beispiel: =SUMME(A1:J10). 2. Die Funktion AVERAGE wird verwendet, um den Durchschnitt der Zahlen in einer Spalte oder einer Gruppe von Zellen zu berechnen, zum Beispiel: =AVERAGE(A1:A10). 3. COUNT-Funktion, die verwendet wird, um die Anzahl der Zahlen oder Texte in einer Spalte oder einer Gruppe von Zellen zu zählen, zum Beispiel: =COUNT(A1:A10) 4. IF-Funktion, die verwendet wird, um logische Urteile auf der Grundlage spezifizierter Bedingungen zu treffen und die zurückzugeben entsprechendes Ergebnis.

Vergleich der Vor- und Nachteile von C++-Funktionsstandardparametern und variablen Parametern Vergleich der Vor- und Nachteile von C++-Funktionsstandardparametern und variablen Parametern Apr 21, 2024 am 10:21 AM

Zu den Vorteilen von Standardparametern in C++-Funktionen gehören die Vereinfachung von Aufrufen, die Verbesserung der Lesbarkeit und die Vermeidung von Fehlern. Die Nachteile sind eingeschränkte Flexibilität und Namensbeschränkungen. Zu den Vorteilen variadischer Parameter gehören unbegrenzte Flexibilität und dynamische Bindung. Zu den Nachteilen gehören eine größere Komplexität, implizite Typkonvertierungen und Schwierigkeiten beim Debuggen.

Welche Vorteile haben C++-Funktionen, die Referenztypen zurückgeben? Welche Vorteile haben C++-Funktionen, die Referenztypen zurückgeben? Apr 20, 2024 pm 09:12 PM

Zu den Vorteilen von Funktionen, die Referenztypen in C++ zurückgeben, gehören: Leistungsverbesserungen: Durch die Übergabe als Referenz wird das Kopieren von Objekten vermieden, wodurch Speicher und Zeit gespart werden. Direkte Änderung: Der Aufrufer kann das zurückgegebene Referenzobjekt direkt ändern, ohne es neu zuzuweisen. Einfachheit des Codes: Die Übergabe als Referenz vereinfacht den Code und erfordert keine zusätzlichen Zuweisungsvorgänge.

Wie schreibe ich effiziente und wartbare Funktionen in Java? Wie schreibe ich effiziente und wartbare Funktionen in Java? Apr 24, 2024 am 11:33 AM

Der Schlüssel zum Schreiben effizienter und wartbarer Java-Funktionen ist: Halten Sie es einfach. Verwenden Sie eine aussagekräftige Benennung. Bewältigen Sie besondere Situationen. Nutzen Sie entsprechende Sichtbarkeit.

See all articles