SQL查询基础课件.ppt
《SQL查询基础课件.ppt》由会员分享,可在线阅读,更多相关《SQL查询基础课件.ppt(80页珍藏版)》请在三一办公上搜索。
1、SQL查询基础,1,SQL查询基础1,本章要点,SQL的基本概念和作用SQL与SQL*Plus、PL/SQL之间的关系SelectWhereOrder ByGroup ByHaving,2,本章要点SQL的基本概念和作用2,概述,本节包括两部分内容。首先,介绍SQL的作用和特点,SQL技术是本章的中心内容;其次,介绍SQL与SQL*Plus、PL/SQL之间的区别和联系,以便更好地学习和理解SQL。,3,概述本节包括两部分内容。3,SQL的作用和特点,SQL是结构化查询语言(structure query language)的简称,是关系型数据库管理系统中最流行的数据查询和更新语言。用户可以使
2、用SQL语言在数据库中执行各种操作。1986年,SQL-86,也被称为SQL-1。1992年,SQL-92,也被称为SQL-2。1999年,SQL-99,也被称为SQL-3。还存在不同的数据库管理系统厂商开发的不同类型的SQL。 SQL查询语言包括了所有对数据库的操作,这些操作可以分为4个部分,即数据定义语言DDL:定义数据库的逻辑结构数据操纵语言DML:数据检索和数据更新数据控制语言DCL:授权、完整性规则事务管理语言TML :事务的定义、保存、提交commit、取消rollback,4,SQL的作用和特点 SQL是结构化查询语言(structur,SQL与SQL*Plus、PL/SQL之间
3、的关系,SQL*Plus是一个用于连接Oracle数据库的强大工具。使用该工具,用户可以连接服务器上的数据库,还可以执行许多操作。总结一下SQL*Plus的主要功能特点:在数据库中执行SQL语言和PL/SQL语言;更新数据库中的数据;执行数据查询;将查询结果集格式化为报表;建立、编辑、检索和执行SQL脚本;管理数据库;描述数据库中的表和PL/SQL对象;将数据从一个数据库复制到另一个数据库;向用户发送消息,并接受用户的输入。,5,SQL与SQL*Plus、PL/SQL之间的关系 SQL*P,PL/SQL,PL/SQL是Oracle系统的过程化编程语言。用户可以使用PL/SQL语言编写在数据库中
4、执行的定制程序和过程代码。如同拥有执行SQL语言的SQL引擎一样,Oracle系统也拥有执行PL/SQL语言的PL./SQL引擎。PL/SQL程序能够存储在数据库中,以便用于用户应用程序和日常操作。这样可以使用户在Oracle数据库设计和规划的编程语言中,实现与用户数据密切相关的业务逻辑。,6,PL/SQLPL/SQL是Oracle系统的过程化编程语言。,SQL语句的书写规则,一般情况下,在使用SQL语句(包括使用select语句)时,用户应该遵循下面的规则或约定:除非明确指定,否则SQL语句不区分大小写;SQL语句可以一行或多行的形式输入;关键字不能跨行;为了增强可读性,关键字左对齐;可以在
5、SQL语句中使用各种制表符和伸缩符号。,7,SQL语句的书写规则一般情况下,在使用SQL语句(包括使用s,select语句,数据操纵语言就是那些检索、更新表中数据的语句。这些语句包括select、insert、update、delete等4个语句。本节首先介绍select语句,后面将陆续讲述其他的数据操纵语言。在SQL语言中,最简单的语句是select语句。使用select语句可以检索数据库中的信息。具体地说,使用select语句可以完成选择、投影、连接等运算。,8,select语句数据操纵语言就是那些检索、更新表中数据的语句,select基本语法,在Oracle系统中,select语句的基本
6、语法格式如下:select distinct *, column_name alias, from tablenamewheregroup byhavingorder by,9,select基本语法在Oracle系统中,select语句的,基本的SELECT 命令,SELECT *, column alias,.FROMtable;,SELECT 识别什么列FROM 识别哪个表,基本的SELECT 命令SELECT *, column,选择所有列,DEPTNO DNAME LOC- - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES C
7、HICAGO 40 OPERATIONS BOSTON,SQL SELECT * 2 FROM dept;,选择所有列 DEPTNO DNAME,选择指定的列,DEPTNO LOC- - 10 NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTON,SQL SELECT deptno, loc 2 FROM dept;,选择指定的列 DEPTNO LOCSQL SELEC,算数表达式,对NUMBER和DATE型数据可用算数运算创建表达式,运算+-* /,描述加法减法乘法除法,算数表达式对NUMBER和DATE型数据可用算数运算创建表达,使用算数运算,SQL SELECT
8、 ename, sal, sal+300 2 FROMemp;,ENAME SAL SAL+300- - -KING 5000 5300BLAKE 2850 3150CLARK 2450 2750JONES 2975 3275MARTIN 1250 1550ALLEN 1600 1900.14 rows selected.,使用算数运算 SQL SELECT ename, sal,运算的优先级,乘法和除法的优先级高于加法和减法同级运算的顺序是从左到右表达式中使用括号可强行改变优先级的运算顺序,运算的优先级乘法和除法的优先级高于加法和减法*/+_,运算的优先级,SQL SELECT ename,
9、 sal, 12*sal+100 2 FROM emp;,ENAME SAL 12*SAL+100- - -KING 5000 60100BLAKE 2850 34300CLARK 2450 29500JONES 2975 35800MARTIN 1250 15100ALLEN 1600 19300.14 rows selected.,运算的优先级SQL SELECT ename, sal,使用括号,SQL SELECT ename, sal, 12*(sal+100) 2 FROM emp;,ENAME SAL 12*(SAL+100)- - -KING 5000 61200BLAKE 28
10、50 35400CLARK 2450 30600JONES 2975 36900MARTIN 1250 16200.14 rows selected.,使用括号SQL SELECT ename, sal,定义空值,空值是指不可用,不知道,不适用的值空值不等于零或空格,SQL SELECT ename, job, comm 2 FROMemp;,ENAME JOB COMM- - -KING PRESIDENTBLAKE MANAGER.TURNER SALESMAN 0.14 rows selected.,定义空值SQL SELECT ename, job,空值的运算表达式,包括空值的算法表达
11、式等于空,SQL select ename NAME, 12*sal+comm 2 from emp 3 WHERE ename=KING;,NAME 12*SAL+COMM - -KING,空值的运算表达式包括空值的算法表达式等于空SQL se,处理NULL,当算术表达式包含NULL,其结果也是NULLSelect ename,sal,comm,sal+comm from emp;使用NVL函数处理NULLNVL(expr1,expr2):如果expr1是null,则返回expr2;否则返回expr1Select ename,sal,comm,sal+nvl(comm,0) as “月收入”
12、 from emp;使用NVL2函数处理NULLNVL2(expr1,expr2,expr3):如果expr1不是null,则返回expr2;否则返回expr3Select ename,nvl2(comm,sal+comm,sal) from emp;,20,处理NULL当算术表达式包含NULL,其结果也是NULL20,定义列的别名,改变列的标题头使用计算结果列的别名如果使用特殊自符,或大小写敏感,或有空格时,需加双引号,定义列的别名改变列的标题头,使用列的别名,SQL SELECT ename AS name, sal salary 2 FROM emp;,NAME SALARY- -.,S
13、QL SELECT ename Name, 2 sal*12 Annual Salary 3 FROM emp;,使用列的别名SQL SELECT ename AS n,连结操作,将列或字符与其它列连结 用双竖条表示 (|)产生的结果列是一个字符表达式,连结操作将列或字符与其它列连结,使用连结操作,SQL SELECTename|job AS Employees 2 FROM emp;,Employees-KINGPRESIDENTBLAKEMANAGERCLARKMANAGERJONESMANAGERMARTINSALESMANALLENSALESMAN.14 rows selected.,
14、使用连结操作SQL SELECTename|job A,文字字符串,文字字符串是一个包括在SELECT列表中的字符,表达式,或数字 日期和字符型文字字符必须用单引号扩起来每返回一条记录字符被输出一次,文字字符串文字字符串是一个包括在SELECT列表中的字符,表,使用文字字符串,Employee Details-KING is a PRESIDENTBLAKE is a MANAGERCLARK is a MANAGERJONES is a MANAGERMARTIN is a SALESMAN.14 rows selected.,SQL SELECT ename| |is a| |job 2
15、AS Employee Details 3 FROM emp;,使用文字字符串Employee DetailsSQL SE,检索日期列,默认日期显示格式:Select ename,hiredate from emp;使用YYYY-MM-DD显示格式显示日期Select ename,to_char(hiredate,YYYY-MM-DD) from emp;,27,检索日期列默认日期显示格式:27,重复记录,缺省情况下查询显示所有行,包括重行,SQL SELECT deptno 2 FROM emp;,DEPTNO- 10 30 10 20.14 rows selected.,重复记录缺省情况下
16、查询显示所有行,包括重行SQL SEL,删除重复行,使用DISTINCT关键字可删除重行,SQL SELECT DISTINCT deptno 2 FROM emp;,DEPTNO- 10 20 30,删除重复行使用DISTINCT关键字可删除重行 SQL,使用where子句,使用select语句中的where子句可以限制数据量,实际上,select语句中的where子句可以用来指定检索数据的条件。where子句的语法格式如下:select distinct *, column_name alias, from tablenamewhere condition_expression以上的whe
17、re子句用来指定检索到的数据应该满足指定的条件,参数condition_ expression就是用于指定条件。在where子句的条件中,可以比较各种列值、文字串、算术表达式、函数等内容。,30,使用where子句 使用select语句中的where子句可,使用WHERE子句,SQL SELECT ename, job, deptno 2 FROM emp 3 WHERE job=CLERK;,ENAME JOB DEPTNO- - -JAMES CLERK 30SMITH CLERK 20ADAMS CLERK 20MILLER CLERK 10,使用WHERE子句SQL SELECT en
18、ame, jo,字符串和日期,字符串和日期要用单引号扩起来字符串是大小写敏感的,日期值是格式敏感的缺省的日期格式是 DD-MON-YY,SQL SELECTename, job, deptno 2 FROM emp 3 WHEREename = JAMES;,SQL SELECT* FROM emp WHEREhiredate 01-1月-82SQL SELECT* FROM emp WHEREhiredateto_date(1982-01-01,YYYY-MM-DD),字符串和日期字符串和日期要用单引号扩起来SQL SELEC,比较运算符,运算符= =,含义等于大于 大于等于 小于 小于等于
19、不等于,比较运算符运算符含义,使用比较运算符,SQL SELECT ename, sal, comm 2 FROM emp 3 WHERE sal=comm;,ENAME SAL COMM- - -MARTIN 1250 1400,使用比较运算符SQL SELECT ename, sal,其它的比较运算符,运算符BETWEEN.AND.IN(list)LIKEIS NULL,含义在两值之间 (包含)匹配列出的值匹配一个字符模式是空值,其它的比较运算符运算符含义,使用BETWEEN运算符,ENAME SAL- -MARTIN 1250TURNER 1500WARD 1250ADAMS 1100M
20、ILLER 1300,SQL SELECTename, sal 2 FROM emp 3 WHEREsal BETWEEN 1000 AND 1500;,使用BETWEEN运算符显示某一 值域范围的记录,使用BETWEEN运算符ENAME S,使用IN运算符,使用IN运算符获得匹配列表值的记录,SQL SELECTempno, ename, sal, mgr 2 FROM emp 3 WHEREmgr IN (7902, 7566, 7788);,EMPNO ENAME SAL MGR- - - - 7902 FORD 3000 7566 7369 SMITH 800 7902 7788 SC
21、OTT 3000 7566 7876 ADAMS 1100 7788,使用IN运算符使用IN运算符获得匹配列表值的记录 SQL,使用LIKE运算符,使用LIKE运算符执行通配查询 查询条件可包含文字字符或数字(%) 可表示零或多个字符( _ ) 可表示一个字符,SQL SELECTename 2 FROM emp 3 WHEREename LIKE S%;,使用LIKE运算符使用LIKE运算符执行通配查询 SQL,使用LIKE运算符,使用组合方式匹配字符You can combine pattern matching characters.使用ESCAPE 标识符来查找带特殊符号的字符号,SQ
22、L SELECTename 2 FROMemp 3 WHEREename LIKE _A%;,ENAME- JAMES WARD,SQL SELECTename 2 FROMemp 3 WHEREename LIKE %a_% escape a,使用LIKE运算符使用组合方式匹配字符You can com,使用IS NULL运算符,查询包含空值的记录,SQL SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL;,ENAME MGR- -KING,使用IS NULL运算符查询包含空值的记录SQL SELE,逻辑运算符,逻辑运算符运算符含 义AND如果
23、组合的条件都是TRUE,返,使用AND运算符,AND需要条件都是TRUE.,SQL SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal=1100 4 AND job=CLERK;,EMPNO ENAME JOB SAL- - - - 7876 ADAMS CLERK 1100 7934 MILLER CLERK 1300,使用AND运算符AND需要条件都是TRUE.SQL SEL,使用OR运算符,OR需要条件之一是TRUE,SQL SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal=11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 查询 基础 课件

链接地址:https://www.31ppt.com/p-1288867.html