SQL中的数据处理语言.ppt
《SQL中的数据处理语言.ppt》由会员分享,可在线阅读,更多相关《SQL中的数据处理语言.ppt(116页珍藏版)》请在三一办公上搜索。
1、实用数据库技术,第4章 SQL中的数据处理语言,学习内容,创建、更改及删除数据 事务 检索数据Where子句聚集查询结果子查询表连接,概述,本章我们将学习了SQL中的数据处理语句,语句,也叫数据处理语言(DML)。包括:创建数据的INSERT语句、更改数据的UPDATE语句、删除数据的DELETE语句及检索数据的SELECT。,INSERT语句,语法 INSERT INTO table_dame(column_list)VALUES(value_list)table_name是表名称,记录将要添加到该表中。,INSERT语句 示例1,Studios表的INSERT语句,INSERT INTO
2、StudiosVALUES(1,Giant,LosAngeles,CA),INSERT语句 示例2,Studios表中的列分别是:studio_id、name、city和state。因为这些值都按照上述顺序包括在VALUES子句中,所以INSERT语句可以正常工作。,INSERT INTO Studios(city,state,name,studio_id)VALUES(Burbank,CA,MPM,2),INSERT语句 小结,在多数数据库中,表中的列都按照它们创建的顺序出现。当使用CREATE TABLE创建新的表时,列的顺序将保持为它们在原始语句中指定的顺序。,UPDATE语句,UPDA
3、TE语句用来对表中现有的行作改动。UPDATE语句的结构如下:UPDATE table SET column=value,.WHERE condition,UPDATE语句,UPDATE语句用来对表中现有的行作改动。UPDATE语句的结构如下:UPDATE table SET column=value,.WHERE condition,UPDATE语句,UPDATE语句有3个部分。第一,必须指定要更新哪一个表。该语句的第二部分是SET子句,应当指定其中要更新的列和要插入的值。最后,WHERE子句可以用来指定表中哪些行将要更新。,UPDATE语句 示例1,更改某工作室的城市和州的UPDATE语句
4、,UPDATE Studios SET city=New York,state=NY WHERE studio_id=1 1 row updated.,UPDATE语句 示例1,可以看到,在SET子句中,将city和state字段都进行了更改。WHERE子句表明只有studioID为1的行才能被更新。在编写只对表中某一行产生影响的UPDATE语句时,在WHERE子句中使用主关键字来确保只有一行受到改变的影响往往是一个好办法。如果忽略UPDATE语句中的WHERE子句,那么在更新表中的所有行都将受到该语句的影响。,UPDATE语句 示例2,用UPDATE来更改表中所有行的语句,UPDATE St
5、udiosSET state=AK2 rows updated.,SELECT*FROM StudiosSTUDIO_ID NAME CITY STATE1 Giant New York AK2 MPM Burbank AK,DELETE语句,DELETE语句也可以用来将记录从表中删除。DEILETE语句的结构非常简单:DELETE FROM tableWHERE condition,DELETE语句,可选的WHERE子句可用来限制DELETE语句删除的行数。如果忽略WHERE子句,表中所有的行都会被删除。通过使用WHERE子句,可以指定要想删除每行所必须满足的条件。,DELETE语句 示例,
6、删除Studios 表中所有的行,DELETE FROM StudiosWHERE state=AK2 rows deleted.,检索数据SELECT语句,SELECT语句由大量子句组成,其中的一些是可选项。本节我们讨论SELECT语句的基本子句。下面是简单的SELECT语句的句法:SELECT select_listFROM tableWHERE condition,指定要检索的列,SELECT语句包括了一个WHERE子句,这是一个可选元素,它限制了查询返回的那些行。检索DEPT表中所有行的SELECT语句。,指定要检索的列 示例1,检索DEPT表中所有行的SELECT语句,SELECT
7、deptno,dname FROM DEPT DEPTNO DNAME-10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS,指定要检索的列 示例2,检索DEPT表中所有行的SELECT语句,SELECT dname,deptno FROM DEPTDNAME DEPTNO-ACCOUNTING 10RESEARCH 20SALES 30OPERATIONS 40,使用*来选定所有的列,因此不必像下面这样输入:SELECT deptno,dname,loc FROM DEPT只需要这样输入:SELECT*FROM DEPT,使用*来选定所有的列 总结
8、,使用SELECT*的查询结果按照列最初输入CREATE TABLE语句中的顺序来列出所有的列。,在选定的数据上完成计算,利用SQL可以轻松地在数据库中的数据上完成计算并将计算结果包括在查询输出中。要实现上述操作,只需要用包含数字、列名称或二者的数学表达式来代替希望选定的列的清单中的标准输入即可。,将表达式包括在SELECT语句中,数字、数学表达式和字符串全都可以包括在SELECT语句中。,SELECT Hello World!,2+5,ename FROM EMPHELLOWORLD!2+5 ENAME-Hello World!7 SMITHHello World!7 ALLENHello
9、World!7 WARDHello World!7 JONES,包含了数学表达式的查询,在表达式中使用列名称,可以将列名称作为所使用的表达式的组成部分包括在SELECT语句中。,SELECT ename,sal,sal*1.5 FROM EMP ENAME SAL SAL*1.5-SMITH 800 1200ALLEN 1600 2400WARD 1250 1875JONES 2975 4462.5,包括用某列中的数据所进行的计算的查询,SQL支持的算术运算符,SQL中可用的各种算术运算符号。,SQL支持的算术运算符 小结,在SQL中,括号的优先权最高,其次是乘除,再其次是加减。乘除具有相同的
10、优先权,加减具有相同的优先权。因此,乘除或加减都可以用在同一表达式中,具有相同优先权的运算符按从左到右的顺序来计算。,对Name列和表达式使用AS,可以使用AS关键字来为查询中的列和表达式分配名称。这些名称既可以用来改善查询输出的外观,也可以用来为一般情况下名称所不能引用的表达式分配名称。,列和表达式使用AS 分配别名,SELECT expr AS alias,expr2 AS alias,FROM table WHERE condition,AS对表达式重新命名 示例,使用AS对表达式重新命名,SELECT ename,sal AS SALARY,sal*2 AS DOUBLE SALARY
11、 FROM EMP ENAME SALARY DOUBLE SALARY-SMITH 800 1600ALLEN 1600 3200WARD 1250 2500JONES 2975 5950,AS对表达式重新命名 小结,别名如果是单个单词(字母中间没有空格)命名,可以加双引号也可以不加,例如:SALARY和SALARY是相同的。但是,如果是由多个单词组成的(单词之间有空格)必须加双引号,例如:DOUBLE SALARY。,对查询结果排序,关系数据库的一个特性是:表中列与行的顺序不重要。行与列都不需要访问,数据库也不按顺序来处理它们。这是一个使它们区别于平面文件和电子表的特性。这就意味着随便按照
12、哪种顺序从数据库中检索记录都很简单。,对查询结果排序,使用ORDERBY子句的SELECT语句的句法遵循下面这种格式:SELECT select_list FROM table WHERE conditmon ORDER BY column|alias|position ASC|DESC),对查询结果排序 示例1,使用ORDER BY子句按照sal列升序排列,SELECT ename,sal AS SALARY FROM EMP WHERE sal 3000 ORDER BY sal ASCENAME SALARY-SMITH 800JAMES 950ADAMS 1100,对查询结果排序 示例
13、2,使用ORDER BY子句按照sal列升序排列,SELECT ename,sal AS SALARY FROM EMP WHERE sal 3000 ORDER BY sal DESCENAME SALARY-JONES 2975BLAKE 2850CLARK 2450,Where子句 概述,WHERE子句用来决定哪些行应当包括在查询结果中。WHERE子句可以作为筛选程序,将那些不合标准的行删除,保留那些合乎标准的行。当然,重要的一点是要记住:WHERE子句不仅仅和SELECT语句一起使用,它还可以用来选择UPDATE和DELETE语句影响的行。不管使用上述3条语句中的哪一条,WHERE子句
14、的用法都是相同的。,比较的运算符,SQl标准支持的比较运算符:,比较的运算符 总结,需要注意的一件事,不仅对于“=”,而且对于所有运算符来说都应注意的是:在检验数字数据时,不必使用单引号标记来包围被比较的数据。,比较的运算符 示例1,不加单引号标记检索,SELECT ename,sal FROM EMP where sal=950ENAME SAL-JAMES 950,比较的运算符 示例2,加单引号标记检索,SELECT ename,sal FROM EMP where sal=950ENAME SAL-JAMES 950,逻辑运算符,SQL提供3种逻辑运算符,允许将多个表达式包括在WHERE
15、子句中。实际上,其中的两个专门用来将多个表达式包括在WHERE子句中,另外一个用来对表达式(或表达式的集合)的结果求反。这3个运算符是:ANDORNOT,逻辑运算符,逻辑运算符 示例1,AND运算符:,SELECT empno,ename,sal,job FROM emp WHERE job=SALESMAN AND sal 3000 EMPNO ENAME SAL JOB-7499 ALLEN 1600 SALESMAN 7521 WARD 1250 SALESMAN 7654 MARTIN 1250 SALESMAN 7844 TURNER 1500 SALESMAN,逻辑运算符 示例2,
16、OR运算符:,SELECT empno,ename,sal,job FROM emp WHERE job=SALESMAN OR sal 3000 EMPNO ENAME SAL JOB-7369 SMITH 800 CLERK 7499 ALLEN 1600 SALESMAN 7521 WARD 1250 SALESMAN 7566 JONES 2975 MANAGER 7934 MILLER 1300 CLERK,逻辑运算符 示例1,NOT运算符:,SELECT empno,ename,sal,job FROM emp WHERE NOT job=SALESMAN AND sal 3000
17、 EMPNO ENAME SAL JOB-7369 SMITH 800 CLERK 7566 JONES 2975 MANAGER 7698 BLAKE 2850 MANAGER 7782 CLARK 2450 MANAGER 7876 ADAMS 1100 CLERK,运算符先后顺序,SQL支持的布尔运算符和数学运算符,按照从高到低的运算顺序排列:,IN子句,SQL语言中还有另外一些子句可以用来简化查询(否则查询将使用多个布尔运算符)。这些子句的一个例子是IN子句,它取代了多个OR运算符,用来检查一组值中是否有一个出现在具体的某列中,IN运算符可以决定被检验的值是否等于某组值中的一个。,IN
18、子句,IN子句的结构:SELECT select_list FROM tableWHERE column NOT IN(value_list),IN子句 总结,经过检验可以看出,有的值与所提供的清单中的某个值相匹配,IN可以选定这些值所在的所有行。有的值与清单中任何一个值都不匹配,而NOT IN则可以选定这些值所在的所有行。,IN子句 示例1,使用IN 子句的查询,SELECT empno,ename,sal,job FROM emp WHERE job IN(CLERK,MANAGER,SALESMAN)EMPNO ENAME SAL JOB-7369 SMITH 800 CLERK 749
19、9 ALLEN 1600 SALESMAN 7521 WARD 1250 SALESMAN 7566 JONES 2975 MANAGER,IN子句 示例2,使用NOT IN 子句的查询,SELECT empno,ename,sal,job FROM emp WHERE job NOT IN(CLERK,MANAGER,SALESMAN)EMPNO ENAME SAL JOB-7788 SCOTT 3000 ANALYST 7839 KING 5000 PRESIDENT 7902 FORD 3000 ANALYST,BETWEEN子句,BETWEEN子句和它的对立面(NOTBETWEEN)可
20、以用来查看一个值是否在某个具体的值域中。下面是一个范例,表明怎样来编写BETWEEN子句:SELECT select_list FROM table WHERE column NOT BETWEEN lower_value AND upper_value,BETWEEN子句 小结,BETWEEN子句被包括在内了,用来指定检验范围的上下限也包括在值域中。NOT BETWEEN用来决定一个值是否超出指定的值域之外。NOT BETWEEN与BETWEEN正相反。它把值域上下限看做包括在值域之内,如果被检验的值等于置于上下线值中的一个的话,表达式就不能判定为“真”。,BETWEEN子句 示例1,使用B
21、ETWEEN子句的查询,SELECT empno,ename,sal,job FROM emp WHERE sal BETWEEN 2000 AND 3000 EMPNO ENAME SAL JOB-7566 JONES 2975 MANAGER 7698 BLAKE 2850 MANAGER 7782 CLARK 2450 MANAGER 7788 SCOTT 3000 ANALYST,BETWEEN子句 示例2,使用BETWEEN子句的查询,SELECT empno,ename,sal,job FROM emp WHERE sal NOT BETWEEN 2000 AND 3000 EMP
22、NO ENAME SAL JOB-7369 SMITH 800 CLERK 7499 ALLEN 1600 SALESMAN 7521 WARD 1250 SALESMAN 7654 MARTIN 1250 SALESMAN,使用LIKE来匹配字符串各部分,LIKE子句可用来创建与字符串模式相匹配的简单表达式。在需要查找具有某些相同内容的字符串或者已知字符串的某一部分、但不知道整个字符串时,可以用它来解决问题。LIKE子句也可以用NOT运算符来求反。,使用LIKE来匹配字符串各部分,LIKE运算符可以这样使用:FROM tableWHERE column NOT LIKE pattern,使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 中的 数据处理 语言
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6520871.html