常用的SQL
查询语句如下所示:
1。简单的查询语句
1。查看表结构
SQL> DESC EMP;
2。查询所有列
SQL SELECT * FROM EMP >;
三.查询指定列
SQL >选择empmo,ename,经理从EMP;
SQL >选择不同的经理从EMP;只有不同结果的项目
4。查询指定行
警告:SELECT * FROM emp
工作= 'clerk;
5。使用算术表达式
SQL >选择ENAME SAL * 13 + NVL(通讯,0)从EMP;
NVL(通讯1)意味着,如果在商业价值,然后NVL(通讯1)=通讯;在无价值的通讯,NVL(通讯,1)= 0。
SQL >选择ENAME SAL * 13 + NVL(通讯,0)year_sal从EMP;(year_sal是别名,可以
排序的别名)
警告:SELECT * FROM emp,姓名和雇佣> '01-1月82;
6。使用Like
运算符(%,_)
为一个或多个字符,_表示字符,{ charlist }说列中的任何单个字符,{ ^ charlist }或{!charlist }不在列中的任何单个字符。
SQL SELECT * FROM EMP在ENAME >> like's__t %;
7。在
条件下使用
警告:SELECT * FROM emp在工作('clerk ','analyst);
8。查询字段内容为空/非空语句
SQL SELECT * FROM EMP在经理>>是/不是空的;
9。使用逻辑
操作符号
SQL SELECT * FROM EMP在哪里>>(Sal > 500或工作= 'manage)和不like'j %;
10。查询结果按字段的值排序。
警告:SELECT * FROM的DEPTNO,EMP为萨尔desc;(升序按部门和降低工资)
二、复杂查询
1。数据组(最大值、最小值、平均数、总和、计数)
选择最大(最小),最小(AGE),AVG(萨尔),总和(萨尔)从EMP;
从EMP(=从EMP中选择max(萨尔));
SQL >选择计数(*)从EMP;
2。按组(查询结果分组统计)和有子句(用于限制组
显示的结果)
SQL >选择DEPTNO,max(SAL),AVG(SAL)的雇员工资;
SQL >选择多种工作,AVG(SAL),min(SAL)的雇员工资。
数据分组的摘要:
数据包
函数只能出现在选择列表中,有Clause
命令(不是在哪里)。
如果SELECT语句包含两个组,有,和按
顺序,那么它们的顺序是由,由,按。
如果C.在选定的列中有一列、一个表达式和一组函数,则列和表达式必须出现在组内子句中,否则会出错。
使用组不是使用的前提。
三.多表查询
>选择SQL查询,e.sal,从电磁脉冲及其所在部门里,e.deptno = d.deptno秩序。
SQL >查询每个部门,e.sal,从EMP E s.grade,salgrade e.sal之间的地方。
4。自
连接(同一表的连接查询)
SQL >选择er.ename,ee.ename mgr_name从EMP EMP EE在ER,ER,MGR = ee.empno;
5。子查询(SELECT语句嵌入在其他SQL语句,也被称为嵌套查询)
5.1单行查询
SQL >选择ename从EMP表(表在选择从EMP在ename = 'smith ');在查询表在同一个部门的人员的
名字。因为返回结果只有一行,所以用=连接子查询语句
5.2多行子查询
SQL >选择不工作,萨尔,从EMP在工作上(选择工作)。姓名,工作,在查询表的员工工资和部门数量与部门10号相同的员工。因为返回结果是多重的,所以在用于连接查询。
之间的差异和存在:在子查询中存在()称为相关子查询,而不返回列表的价值。只是返回一个真假,跑第一主查询,然后去子查询和查询相应的结果。如果真的是输出,反之亦然,输出不输出,然后根据每一行在主查询中的子查询的查询,查询后()返回的结果集,换句话说,
执行顺序是不存在相同的(),第一组查询产生的结果,然后主查询去为找到字段列表结果符合要求。符合要求的输出,反之亦然。
5.3使用所有
SQL >选择姓名,Sal deptno,从EMP而萨尔>所有(选择萨尔从EMP在表30或SQL >选择ename);Sal,别名,从EMP在萨尔>(选择最大(SAL)从EMP,表30);所有员工工资查询工资比部门编号30号高的员工的名字,号工资和部门。上述报表的
功能相同,但执行效率更高。
5.4使用任何
SQL >选择姓名,Sal deptno,从EMP在萨尔>任何(选择萨尔从EMP在表30或SQL >选择ename);Sal,别名,从EMP在萨尔>(选择min(SAL)从EMP,表30);任何查询工资比部门编号30,更高的工资比一个员工(只要高工资是员工的姓名、工资)和部门号。上述报表的功能相同,但执行效率更高。
5.5例查询
SQL SELECT * FROM EMP在哪里>>(工作、工资)=(选择工作,工资从EMP的地方);
5.6使用子查询的FROM子句中
SQL >选择emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal从EMP,(选择emp.deptno,AVG(EMP,SAL),emp.deptno,第一个是)。
5.7分页查询
每一行的数据库有相应的行数,称为行号。
SQL >选择A2。*(选择A1。*,rownum rn从(SELECT * FROM EMP的顺序);
指定查询栏目,查询结果排序,等等,都只需要
修改的最内层的子查询。
5.8用查询结果
创建一个新表
创建表的SQL表>>(编号,名称,萨尔,工作,工资作为选择empno)。
5.9查询(并集交集,所有并集,交集,并集和交集,减去差集)
SQL >选择不工作在Sal,工资超过2500联盟(EMP相交 / /减去选择联盟所有)。
组合查询的执行效率远远高于逻辑查询,例如,和,等等。
5.10使用子查询插入数据
SQL >创建表myemp(工号号码(4),(20),萨尔的名字空数(6)、(10)、部门工作空系(2));先建立一个空表;
SQL >插入myemp(工号,姓名,工资,工作,部)选择编号、姓名,姓名,部门,myemp,然后插入数据的
扇区数在新表到新表实现数据的批量查询。
5.11在查询更新表中使用数据
SQL >更新EMP组(工作、萨尔,通讯)=(选择工作,萨尔,通信从EMP);
以上描述是日常收集的sql查询语句,希望大家喜欢。