您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页SQL语句应用

SQL语句应用

来源:尚车旅游网


ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

前 言

预备知识:

为了您能从本资料中获得最大的收益,建议具有以下基础的技能: • 熟悉关系数据库的概念 • 基本的操作系统知识

• 在Oracle环境中工作过的经验 预备学习资料:

• ZLCE601 ORACLE基础知识

资料内容提要:

本资料以ZLHIS系统产品对SQL语句的应用层度为主导,从实用的角度讲述SQL语句的作用和用法,以及所涉及到的常用函数的作用和用法。

资料学习目标:

本资料旨在使技术服务人员掌握常用SQL语句和函数的作用及用法,并能根据实际情况的需要灵活使用,为后续ORACLE数据库、自定义报表等内容的学习打下牢固的基础。

ZLCE专用,未经许可不得扩散 第1页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

目 录

第1章 1.1

SQL语句基础 ......................................................................................................... 5 SQL语句概述 ............................................................................................................. 5

SQL语句的作用 .................................................................................................. 5 SQL语句的适用范围 ........................................................................................... 5 DML语句 ............................................................................................................ 5 DDL语句 ............................................................................................................. 6 DCL语句 ............................................................................................................. 6 SQL语句基础 ......................................................................................................... 7 字符函数 ..................................................................................................................... 7

CHR .................................................................................................................... 7 CONCAT ............................................................................................................. 7 INITCAP .............................................................................................................. 8 LOWER和UPPER ............................................................................................. 8 LPAD与RPAD .................................................................................................... 9 LTRIM与RTRIM ................................................................................................. 9 REPLACE ......................................................................................................... 10 SUBSTR ........................................................................................................... 10 TRANSLATE ...................................................................................................... 11 INSTR ................................................................................................................ 11 LENGTH ........................................................................................................... 12 ABS ................................................................................................................... 12 CEIL和FLOOR ................................................................................................ 13 MOD .................................................................................................................. 13 SIGN ................................................................................................................. 14 ROUND ............................................................................................................. 14 TRUNC ............................................................................................................. 14 SYSDATE ......................................................................................................... 15 MONTHS_BETWEEN ...................................................................................... 15 ADD_MONTHS ................................................................................................. 15 NEXT_DAY ....................................................................................................... 15 LAST_DAY ........................................................................................................ 16 ROUND ............................................................................................................. 16 TRUNC ............................................................................................................. 16 TO_NUMBER ................................................................................................... 16 TO_CHAR ......................................................................................................... 17

第2页,共35页

1.1.1 1.1.2 1.2 1.2.1 1.2.2 1.2.3 第2章 2.1

SQL语句的分类 ......................................................................................................... 5

2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.4 2.4.1 2.4.2

数字函数 ................................................................................................................... 12

日期函数 ................................................................................................................... 15

转换函数 ................................................................................................................... 16

ZLCE专用,未经许可不得扩散

2.4.3 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6 2.6.1 2.6.2 2.6.3 第3章 3.1

TO_DATE .......................................................................................................... 17 COUNT ............................................................................................................. 17 SUM .................................................................................................................. 17 AVG ................................................................................................................... 17 MAX .................................................................................................................. 18 MIN ................................................................................................................... 18 USER ................................................................................................................ 18 NVL ................................................................................................................... 18 DECODE ........................................................................................................... 18 SELECT语句应用 ................................................................................................ 20 分组查询 ................................................................................................................... 20

GROUP BY 子句的使用 ................................................................................... 20 HAVING 子句的使用......................................................................................... 20

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

聚合函数 ................................................................................................................... 17

其他函数 ................................................................................................................... 18

3.1.1 3.1.2 3.2 3.3 3.4 3.5 第4章 4.1 4.2 4.3 第5章 5.1

多表查询 ................................................................................................................... 20 子查询 ....................................................................................................................... 21 嵌套查询 ................................................................................................................... 21 集合操作 ................................................................................................................... 21 DML语句应用 ....................................................................................................... 23 INSERT语句 ............................................................................................................... 23 UPDATE语句 .............................................................................................................. 23 DELETE语句 .............................................................................................................. 24 DML语句应用 ....................................................................................................... 25 CREATE语句 .............................................................................................................. 25

表 ...................................................................................................................... 25 索引 ................................................................................................................... 25 视图 ................................................................................................................... 25 用户 ................................................................................................................... 25 表 ...................................................................................................................... 25 索引 ................................................................................................................... 26 约束 ................................................................................................................... 26 用户 ................................................................................................................... 26

5.1.1 5.1.2 5.1.3 5.1.4 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.3 第6章 6.1 6.2

ALTER语句 ................................................................................................................ 25

DROP语句 ................................................................................................................. 26 DML语句应用 ....................................................................................................... 27 GRANT语句 ............................................................................................................... 27 REVOKE语句 ............................................................................................................. 27

第7章 用SQL创建SQL ..................................................................................................... 28 编写参考文献 ........................................................................................................................... 30

ZLCE专用,未经许可不得扩散

第3页,共35页

培训测验题 ............................................................................................................................... 30 一、 判断题 ....................................................................................................................... 31 二、 单项择选 ................................................................................................................... 31 三、 多项择选 ................................................................................................................... 33 四、 综合应用 ................................................................................................................... 34 附 录 ...................................................................................................................................... 35 一、 培训测验题答案 ........................................................................................................ 35 二、 数据用例 ................................................................................................................... 35

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

ZLCE专用,未经许可不得扩散 第4页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第1章 SQL语句基础

1.1 SQL语句概述

1.1.1 SQL语句的作用

SQL的诞生于IBM公司在加利福尼亚San Jose的试验室中。在七十年代SQL由这里开发出来。最初它们被称为结构化查询语言(Structured Query Language)并常常简称为sequel。开始时它们是为IBM公司的DB2系列数据管理系(RDBMS——关系型数据库管理系统)而开发的您在今天仍可以买到在不同平台下运行的该系统。事实上是SQL造就了RDBMS。它是一种非过程语言与第三代过程语言如C和COBOL产生于同一时代。

注:非过程性语言的意思就是指与具体过程无关。举例来说SQL描述了如何对数据进行检索、插入、删除,但它并不说明如何进行这样的操作。

SQL是操作和检索关系型数据库的事实上的标准语言,它允许程序员和数据库管理员做如下的工作:

1、 更改数据库的结构 2、 更改系统的安全设置

3、 增加用户对数据库或表的许可权限 4、 在数据库中检索需要的信息 5、 对数据库的信息进行更新

注:对于SQL大家可能还不明白,S即Structured(结构),L即Language(语言),

这是显而易见的但是Q的意思容易让人误解,Q的意思当然是Query(查询)——如果你直译的话,可是这只限于你对数据库提问。但是SQL能干的不只是查询,通过它你可以建立一个库,添加和删除数据,对数据作联合。当数据库改变时触发动作,并把你的查询存储在程序或数据库中。

1.1.2 SQL语句的适用范围

SQL可以运用在Microsoft Access,Microsoft Sqlserver,Oracle,Sybase,开放型

数据连接(ODBC),和多种开发语言中。

1.2 SQL语句的分类

1.2.1 DML语句

数据操纵语言(DML)语句,用来在数据库中操纵各种对象,检索和修改数据,这些语句包括SELECT、INSERT、UPDATE、DELETE等。

ZLCE专用,未经许可不得扩散 第5页,共35页

SQL Insert Delete Update Select Commit work Rollback

命令功能 增加数据行到表 从表中删除数据行 更改表中数据

从表或视图中检索数据行

把当前事务所做的更改永久化(写入磁盘)

作废上次提交以来的所有更改

例如:select * from 病人费用记录;

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

1.2.2 DDL语句

数据定义语言(DDL)语句,用来执行数据库的任务,创建数据库以及数据库中的各种对象,这些语句包括CREATE、ALTER、DROP等语句。

SQL Alter procedure Alter table Analyze Alter table add constraint Create table Create index Drop index Drop table Grant Truncate Revoke 命令功能 重编译存储过程 增加表列、重定义表列、更改存储分配 收集数据库对象的性能统计值并送入基于代价的优化器 在已有的表上增加约束 创建表 创建索引 删除索引 删除表 将权限或角色授予用户或其他角色 删除表中所有行 从用户或数据库角色回收权限 例如: CREATE TABLE 人员表 (

编码 VARCHAR2(2) NOT NULL, 姓名 VARCHAR2(20) , 简码 varchar2(20) );

1.2.3 DCL语句

数据控制语言(DCL)语句,用来进行安全性管理,可以确定哪些用户可以查看或者修改数据,这些语句包括GRANT、DENY、REVOKE等语句。(见上图)

例如:

GRANT DBA TO ZLHIS;

ZLCE专用,未经许可不得扩散 第6页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第2章 SQL语句基础

2.1 字符函数

许多SQL解释器都提供了字符和字符串的处理功能。本部分覆盖了大部分字符串处理 函数,这一部分的例子使用字符函数示范表。 输入\\输出:

SQL> select * from 字符函数示范;

姓 名 M CODE ---------- ---------- ---------- ---------- PURVIS KELLY A 32 TAYLOR CHUCK J 67 CHRISTINE LAURA C 65 ADAMS FESTER M 87 COSTALES ARMANDO A 77 KONG MAJOR G 52 2.1.1 CHR

该函数返回与所给数值参数等当的字符,返回的字符取决于数据库所依赖的字符集。 例如,示例的数据库采用了ASCLL字符集。示例数据库的代码列的内容为数字。

输入: SQL> SELECT CODE,CHR(CODE)FROM 字符函数示范;

CODE CHR (CODE) ---------- --------- 32 67 C 65 A 87 W 77 M 52 4

 在数值32处显示为空白,因为32在ASCLL码表中是空格。

2.1.2 CONCAT

我们在以前学到过一个与这个函数所执行的功能相当的操作,|| 符号表示将两个字符串连接起来,CONCAT也是完成这个功能的。使用方法如下:

输入:

SQL> SELECT CONCAT(姓,名)\"姓 名\" FROM 字符函数示范;

姓 名

--------------------

ZLCE专用,未经许可不得扩散

第7页,共35页

PURVISKELLY TAYLORCHUCK CHRISTINELAURA ADAMSFESTER

COSTALESARMANDO KONGMAJOR

 当用多个词来做为别名时可以它们使用引号。

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.1.3 INITCAP

该函数将参数的第一个字母变为大写,此外其它的字母则转换成小写。 输入:

SQL> SELECT 姓 前,INITCAP(姓) 后 FROM 字符函数示范;

前 后

---------- ---------- PURVIS Purvis TAYLOR Taylor CHRISTINE Christine ADAMS Adams COSTALES Costales KONG Kong

2.1.4 LOWER和UPPER

LOWER将参数转换为全部小写字母,而UPPER则把参数全部转换成大写字母。 下例是用LOWER函数和UPDATE函数来把数据库的内容转变为小写字母。

输入: SQL> UPDATE 字符函数示范 SET 名='kelly' WHERE 名='KELLY';

输出: 1 row updated 输入:

SQL> SELECT 名 FROM 字符函数示范; 输出: 名

---------- kelly CHUCK LAURA FESTER ARMANDO MAJOR

输入\\输出:

SQL> select 名,upper(名),lower(名) from 字符函数示范;

ZLCE专用,未经许可不得扩散

第8页,共35页

名 UPPER(名) LOWER(名) ---------- ---------- ---------- kelly KELLY kelly CHUCK CHUCK chuck LAURA LAURA laura FESTER FESTER fester ARMANDO ARMANDO armando MAJOR MAJOR major

现在你明白这两个函数的作用了吧!

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.1.5 LPAD与RPAD

这两个函数最少需要两个参数最多需要三个参数,每一个参数是需要处理的字符串。 第二个参数是需要将字符串扩充的宽度,第三个参数表示加宽部分用什么字符来做填补。 第三个参数的默认值为空格,但也可以是单个的字符或字符串。 输入\\输出:

SQL> SELECT 名,LPAD(名,20,'*') FROM 字符函数示范; 名 LPAD(名,20,'*') --------------- ----------------------------------------- KELLY ***************KELLY CHUCK ***************CHUCK LAURA ***************LAURA FESTER **************FESTER ARMANDO *************ARMANDO MAJOR ***************MAJOR 输入\\输出:

SQL> SELECT 名,RPAD(名,20,'*') FROM 字符函数示范; 名 RPAD(名,20,'*') --------------- ----------------------------------------- KELLY KELLY*************** CHUCK CHUCK*************** LAURA LAURA*************** FESTER FESTER************** ARMANDO ARMANDO************* MAJOR MAJOR*************** 2.1.6 LTRIM与RTRIM

LTRIM和RTRIM至少需要一个参数,最多允许两个参数。第一个参数与LPAD和RPAD 类似,是一个字符串;第二个参数也是一个字符或字符串,默认则是空格。如果第二个参 数不是空格的话,那么该函数将会像剪除空格那样剪除所指定的字符。如下例: 输入\\输出:

SQL> SELECT 姓,RTRIM(姓) FROM 字符函数示范;

ZLCE专用,未经许可不得扩散

第9页,共35页

姓 RTRIM(姓)

--------------- --------------- PURVIS PURVIS TAYLOR TAYLOR CHRISTINE CHRISTINE ADAMS ADAMS COSTALES COSTALES

KONG KONG你可以用下边的语句来确认字符中的空格已经被剪除了; 输出证明的确已经进行了剪除工作现在请再试一个LTRIM;

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

输入\\输出: SQL> SELECT 姓,LTRIM(姓,'C') FROM 字符函数示范;

姓 LTRIM(姓,'C') --------------- --------------- PURVIS PURVIS TAYLOR TAYLOR CHRISTINE HRISTINE ADAMS ADAMS COSTALES OSTALES KONG KONG

 注意第三行和第五行的C已经没有了。

2.1.7 REPLACE

该函数需要三个参数,第一个参数是需要搜索的字符串,第二个参数是搜索的内容,第三个参数则是需要替换成的字符串。如果第三个参数省略或者是NULL,那么将只执行搜索操作而不会替换任何内容。 输入\\输出:

SQL> SELECT 名,REPLACE(名,'ST','**') 替换后 FROM 字符函数示范;

名 替换后

--------------- ------------------------------ KELLY KELLY CHUCK CHUCK LAURA LAURA FESTER FE**ER ARMANDO ARMANDO MAJOR MAJOR

2.1.8 SUBSTR

这个函数有三个参数,允许你将目标字符串的一部份输出。第一个参数为目标字符串, 第二个字符串是将要输出的子串的起点,第三个参数是将要输出的子串的长度。 输入\\输出:

SQL> SELECT 名,SUBSTR(名,2,3) FROM 字符函数示范;

ZLCE专用,未经许可不得扩散

第10页,共35页

名 SUBSTR(名,2,3) --------------- -------------- KELLY ELL CHUCK HUC LAURA AUR FESTER EST ARMANDO RMA MAJOR AJO

 如果第二个参数为负数,那么将会从源串的尾部开始向前定位至负数的绝对值的位置。

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.1.9 TRANSLATE

这一函数有三个参数,目标字符串、源字符串和目的字符串。在目标字符串与源字符 串中均出现的字符,将会被替换成对应的目的字符串的字符。 输入\\输出:

SQL>SELECT 名,TRANSLATE(名,'01234567ABCDEFGHIJKLMNOPQRSTUVWXYZ','NNNNNNNNNN AAAAAAAAAAAAAAAAAAAAAAAAA') FROM 字符函数示范;

名 TRANSLATE(名,'01234567ABCDEF --------------- ------------------------------ kelly kelly CHUCK AAAAA LAURA AAAAA FESTER AAAAAA ARMANDO AAAAAAA MAJOR AAAAA

6 rows selected

 这个函数对大小写是敏感的。

2.1.10 INSTR

如果需要知道在一个字符串中满足特定的内容的位置可以使用INSTR,它的第一个参数是目标字符串,第二个参数是匹配的内容,第三和第四个参数是数字,用以指定开始搜索的起点以及指出第几个满足条件的将会被返回。下例将从字符串的第二个字符开始搜索,并返回第一个以O开头的字符的位置。 输入\\输出:

SQL> SELECT 姓,INSTR(姓,'O',2,1) FROM 字符函数示范;

姓 INSTR(姓,'O',2,1) --------------- ----------------- PURVIS 0 TAYLOR 5 CHRISTINE 0

ZLCE专用,未经许可不得扩散

第11页,共35页

ADAMS 0 COSTALES 2 KONG 2

默认第三个与第四个参数的数值均为1,如果第三个数值为负数,那么将会从后向前搜索。

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.1.11 LENGTH

LENGTH将返回指定字符串的长度。例如: 输入\\输出:

SQL> SELECT 名,LENGTH(RTRIM(名)) FROM 字符函数示范;

名 LENGTH(RTRIM(名)) --------------- ----------------- kelly 5 CHUCK 5 LAURA 5 FESTER 6 ARMANDO 7 MAJOR 5

 这里使用了函数RTRIM,否则LENGTH将全部返回15。

2.2 数字函数

大多数情况下,你所检索到的数据在使用时,需要用到数学函数,大多数SQL的解释器都 提供了与这里相类似的一些数学函数。这里的例子使用的表名字叫数学函数示范内容如下: 输入\\输出:

SQL> SELECT * FROM 数学函数示范;

A B ---------- ---------- 3.1415 4 -45 0.707 5 9 -57.667 42 15 55 -7.2 5.3

2.2.1 ABS

ABS函数返回给定数字的绝对值。例如: 输入\\输出:

SQL> SELECT ABS(A) FROM 数学函数示范;

ABS(A) ---------- 3.1415

ZLCE专用,未经许可不得扩散 第12页,共35页

45 5 57.667 15 7.2

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.2.2 CEIL和FLOOR

CEIL返回与给定参数相等或比给定参数在的最小整数。FLOOR则正好相反,它返回 与给定参数相等或比给定参数小的最大整数。例如:

输入\\输出: SQL> SELECT CEIL(B) FROM 数学函数示范;

CEIL(B) ---------- 4 1 9 42 55

输入\\输出: SQL> SELECT FLOOR(A) FROM 数学函数示范;

FLOOR(A) ---------- 3 -45 5 -58 15 -8

2.2.3 MOD

MOD返回数A与数B相除后的余数。例如:

输入\\输出: SQL> SELECT A,B,MOD(A,B) FROM 数学函数示范; A B MOD(A,B) ---------- ---------- ---------- 3.1415 4 3.1415 -45 0.707 -0.459 5 9 5 -57.667 42 -15.667 15 55 15 -7.2 5.3 -1.9

ZLCE专用,未经许可不得扩散

第13页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.2.4 SIGN

如果参数的值为负数,那么SIGN返回-1。如果参数的值为正数,那么SIGN返回1。 如果参数为零,那么SIGN也返回零。请看下例:

输入\\输出: SQL> SELECT A,SIGN(A) FROM 数学函数示范;

A SIGN(A) ---------- ---------- 3.1415 1 -45 -1 5 1 -57.667 -1 15 1 -7.2 -1

2.2.5 ROUND

ROUND的作用是四舍五入至指定小数位数。例如: 输入\\输出: SQL> SELECT A,ROUND(A) FROM 数学函数示范;

A ROUND(A) ---------- ---------- 3.1415 3 -45 -45 5 5 -57.667 -58 15 15 -7.2 -7

2.2.6 TRUNC

TRUNC的作用是截断指定小数位数。例如:

输入\\输出: SQL> SELECT A,TRUNC(A,1) FROM 数学函数示范;

A TRUNC(A,1) ---------- ---------- 3.1415 3.1 -45 -45 5 5 -57.667 -57.6 15 15 -7.2 -7.2

ZLCE专用,未经许可不得扩散 第14页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.3 日期函数

在学习日期函数之前,我们先要了解一下基本内容:

ORACLE数据库对日期数据在内部存贮格式:世纪,年,月,日,时,分,秒 默认日期显示格式为:DD-MON-RR. 允许你以两位数字表示年份。

SYSDATE函数返回当前系统日期时间。

2.3.1 SYSDATE

SYSDATE函数返回当前系统日期时间。例如:

输入\\输出: SQL> select sysdate from dual;

SYSDATE ----------- 2005-08-02

2.3.2 MONTHS_BETWEEN

如果你想知道在给定的两个日期中有多少个月可以像这样来使用 MONTHS_BETWEEN。例如:

输入\\输出: SQL> select months_between(to_date('2005-8-2','yyyy-mm-dd'), to_date('2004-8-2','yyyy-mm-dd')) 月数 from dual;

月数 ---------- 12

2.3.3 ADD_MONTHS

该函数的功能是将给定的日期增加一个月。举例:

输入\\输出: SQL> select to_date('2005-8-2','yyyy-mm-dd') 原计划,add_months (to_date('2005-8-2','yyyy-mm-dd'),2) 修改后计划 from dual;

原计划 修改后计划 ----------- ----------- 2005-08-02 2005-10-02

2.3.4 NEXT_DAY

NEXT_DAY将返回与指定日期在同一个星期或之后一个星期内的,你所要求的星期天 数的确切日期。如果你想知道你所指定的日期的星期五是几号可以这样做:

输入\\输出: SQL> select SYSDATE 原日期,next_day(SYSDATE,'星期五') from dual;

ZLCE专用,未经许可不得扩散

第15页,共35页

原日期 NEXT_DAY(SYSDATE,'星期五') ----------- -------------------------- 2005-08-02 2005-08-05 18:25:52

 本例中的星期五,同样可以用数字5来代替。

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.3.5 LAST_DAY

LAST_DAY可以返回指定月份的最后一天。例如,如果你想知道在本月的最后一天是几号时你可以输入:

输入\\输出: SQL> select last_day(SYSDATE) 月末 from dual; 月末

----------- 2005-08-31

2.3.6 ROUND

ROUND可以四舍五入日期。 输入\\输出:

select sysdate 当前时间,round(sysdate,'year') 格式化后时间 from dual;

当前时间 格式化后时间 ----------- ------------ 2005-08-03 2006-01-01

2.3.7 TRUNC

TRUNC可以截断制定日期。

输入\\输出: select sysdate 当前时间,trunc(sysdate,'year') 格式化后时间 from dual;

当前时间 格式化后时间 ----------- ------------ 2005-08-03 2005-01-01

 请比较ROUND和TRUNC的输出结果的差异。

2.4 转换函数

2.4.1 TO_NUMBER

该函数的作用是将一个字符串转换成数值。TO_NUMBER(X,Y[,Z]),例如:

输入\\输出: SQL> select to_number('2005') year from dual; YEAR --------- 2005

ZLCE专用,未经许可不得扩散

第16页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.4.2 TO_CHAR

该函数作用是将一个日期或数字转换成一个字符串。TO_CHAR(date,’format_model’)。例如:

输入\\输出: SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY ------------------- 2005/08/03 09:14:41

2.4.3 TO_DATE

该函数作用是将字符串转化为ORACLE中的一个日期。TO_DATE(string,'format')。例如:

输入\\输出: SQL> select to_date('2005-08-03 09:21:00','yyyy-mm-dd hh24:mi:ss') from dual;

TO_DATE('2005-08-0309:21:00',' ------------------------------ 2005-08-03 9:21:00

2.5 聚合函数

2.5.1 COUNT

该函数将返回满足WHERE条件子句中记录的个数。例如: SQL> select count(*) from dual;

COUNT(*) ---------- 1

2.5.2 SUM

该函数将返回某一列的所有数值的和。例如: SQL> select sum(病人id) from 病人信息;

SUM(病人ID) ----------- 25

2.5.3 AVG

AVG可以返回某一列的平均值。例如:

SQL> select avg(实收金额) from 病人费用记录 where 门诊标志=1;

AVG(实收金额) ------------- 98.67

ZLCE专用,未经许可不得扩散 第17页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

2.5.4 MAX

MAX(DISTINCT|ALL)

求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次。例如:

SQL> select max(年龄) from 病人信息;

MAX(年龄) ---------- 79

2.5.5 MIN

MIN(DISTINCT|ALL)

求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次。例如:

SQL> select min(年龄) from 病人信息;

MIN(年龄) ---------- 4

2.6 其他函数

2.6.1 USER

该函数返回当前使用数据库的用户的名字。例如: SQL> select user from dual; USER

------------------- ZLHIS

2.6.2 NVL

该函数转换NVL值, 数据类型必须匹配:例如:

NVL(实收金额,0)

NVL(填制日期,‘2005-08-03') NVL(开单人,‘无名氏') SQL> select distinct(nvl(开单人,'无名氏')) 开单人姓名 from 病人费用记录 where 门诊标志=1 and 开单人 is null;

开单人姓名 ---------- 无名氏

2.6.3 DECODE

DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数

ZLCE专用,未经许可不得扩散

第18页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

解释:

IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2 ..„ ELSE

RETURN NULL

例如:

decode(收费细目,'西药费','药费','成药费','药费','草药费','药费',收费细目)

ZLCE专用,未经许可不得扩散

第19页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第3章 SELECT语句应用

3.1 分组查询

3.1.1 GROUP BY 子句的使用

SQL无法把正常的列和汇总函数结合在一起,这时就需要GROUP BY子句。它可以对SELECT的结果进行分组后在应用汇总函数。例如:

SQL> select 姓名,sum(实收金额) from 病人费用记录 where rownum<7 group by 姓名;

姓名 SUM(实收金额) -------------------- ------------- 秉仁 3.11 杜子滕 3.5 李卫国 70 毛鸭鸭 3.5 王复玉 2 赵卫生 1

6 rows selected

3.1.2 HAVING 子句的使用 HAVING子句允许你将汇总函数作为条件,使用在查询语句中。例如:

select 姓名,sum(实收金额) from 病人费用记录 where rownum<20 group by 姓名 having sum(实收金额)>2;

姓名 SUM(实收金额) -------------------- ------------- 秉仁 3.11 杜子滕 3.5 李卫国 70 毛鸭鸭 3.5

4 rows selected

3.2 多表查询

1、多表之间的连接的应用

多表查询允许你在查询的FROM条件后面跟多个表,然后把表之间的关系在WHERE条件后进行连接,如果没有进行连接,所查询的记录将是所有表记录的笛卡儿乘积记录数。 例如:select A.* from 收费项目别名 A收费项目目录 B where A.收费细id=B.ID 2、外连接

上面的多边查询我们是定的等值连接,而在实际应用过程中,我们可能需要列出一个表的全

ZLCE专用,未经许可不得扩散

第20页,共35页

部记录,如我们做报表的时候需要把所有的部门都显示出来,于是我们引入外连接技术,通过在等式连接的一边加上(+)来表示外连接,(+)放在取全部记录的表的另一边。 例子:

select A.名称,SUM(B.结帐金额) as 结帐金额 from 部门表 A,病人费用记录 B where A.ID=B.病人科室ID(+) AND 登记时间>sysdate-2 group by a.名称

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

3.3 子查询

可以将子查询(as subquery)或in或exists当成where的一个条件的一部分,这样的查询称为子查询

.where中可以包含一个select语句的子查询 .where中可以包含in,exists语句 .最多可以嵌套16层 .层次过多会影响性能

例如:select * from 收费项目别名 where 收费细id in (select id from 收费项目目录)

3.4 嵌套查询

select查询语句里可以嵌入select查询语句,称为嵌套查询。嵌套查询实际上也是子查询。 例子: select rownum as 序号,药品名称,实际数量 from (select A.名称 as 药品名称,SUM(nvl(b.实际数量,0)) AS 实际数量 from 收费项目目录 A,药品库存 B WHERE A.ID=B.药品ID group by a.名称 order by 实际数量)

3.5 集合操作 集合查询有UNION , INTERSECT及 MINUS。

UNION 表示求两个查询的合集,会去掉重复的记录,如果重复的记录也需要这用UNION ALL连接符,注意连接的两个查询必须要有相同类型查询字段。 INTERSECT表示返回查询结果中相同的部。

MINUS表示返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。。 例子:

SELECT 库房ID,药品ID,可用数量 FROM 药品库存 where 库房ID=52 AND 可用数量<>0 and 药品ID=1 UNION

SELECT 库房ID,药品ID,可用数量 FROM 药品库存 where 库房ID=53 AND 可用数量<>0 and 药品ID=1; 查询结果为:

库房ID 药品ID 可用数量 ---------- ---------- ----------

52 1 -24 53 1 -3094

ZLCE专用,未经许可不得扩散 第21页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

把UNION 换成INTERSECT后的结果为没有记录。 把UNION 换成MINUS后的结果为第一个查询的记录: 库房ID 药品ID 可用数量 ---------- ---------- ----------

52 1 -24

ZLCE专用,未经许可不得扩散 第22页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第4章 DML语句应用

4.1 Insert语句

从字面意思久可以看出来insert是往数据表里插入记录的语句。 语法:

INSERT INTO 表名(字段名1, 字段名2, „„) VALUES ( 值1, 值2, „„); INSERT INTO 表名(字段名1, 字段名2, „„) SELECT 字段名1, 字段名2, „„ FROM 另外的表名; 注意:

1、字符串类型的字段值必须用单引号括起来, 例如: ‘GOOD DAY’

2、如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''. 3、字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.

4、INSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。

5、INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号 CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999

INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 例如:

1、 插入人员表一条记录

insert into 人员表(编号,姓名,性别,年龄) values ('001','张三','男','是'); 2、 往病案的部门表中插入标准版中的部门表信息:

insert into 部门表(id,上级id,编号,名称,简码,位置,建档时间,撤档时间)

(select id,上级id,编码 编号,名称,简码,位置,建档时间,撤档时间 from zlhis.部门表)

4.2 Update语句

UPDATE 的作用是修改数据表里记录的语句。 语法:

UPDATE表名 SET 字段名1=值1, 字段名2=值2, „„ WHERE 条件; 注意:

1、 如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验;

2、 值N超过定义的长度会出错, 最好在插入前进行长度校验。 3、 以上SQL语句对表都加上了行级锁,

确认完成后, 必须加上事物处理结束的命令 COMMIT 才能正式生效, 否则改变不一定写入数据库。如果想撤回这些操作, 可以用命令 ROLLBACK 复原.

ZLCE专用,未经许可不得扩散

第23页,共35页

4、 在运行INSERT, DELETE 和 UPDATE 语句前最好估算一下可能操作的记录范围, 应该把它限定在较小 (一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段。 5、 程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL语句分段分次完成,其间加上COMMIT 确认事物处理。 例如:

Update 人员表 set 年龄=28 where 姓名=’张三’;

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

4.3 Delete语句

DELETE的作用是删除数据表里记录的语句。 语法:

DELETE FROM表名 WHERE 条件; 注意: 1、删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused。

2、如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间

TRUNCATE TABLE 表名; 此操作不可回退。

例如:delete from 人员表 where 姓名=’张三’;

ZLCE专用,未经许可不得扩散 第24页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第5章 DML语句应用

5.1 Create语句

CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等) 约定说明:

ORACLE常用的字段类型有 CHAR 固定长度的字符串 VARCHAR2 可变长度的字符串

NUMBER(M,N) 数字型M是位数总长度, N是小数的长度 DATE 日期类型

1、创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面 2、创建表时可以用中文的字段名, 但最好还是用英文的字段名 3、创建表时可以给字段加上默认值, 例如 DEFAULT SYSDATE,这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间

4、创建表时可以给字段加上约束条件;例如 不允许重复 UNIQUE, 关键字 PRIMARY KEY

5.1.1 表

语法:create table table_name(column1 datatype [not null] [not null primary key], column2 datatype [not null],..) datatype - 资料的格式

not null - 不可以允许资料有空的 primary key - 是本表的主键 例如:create table人员表 (姓名 varchar2(10),年龄 integer);

5.1.2 索引

语法:create [unique] index index_name on table_name (column_name); 例如:CREATE INDEX 人员表_IX_姓名 on 人员表(姓名) ;

5.1.3 视图

语法:Create Or Replace View view_name As (column)

Create Or Replace View 病人信息 As (select 姓名,年龄 from 人员表)

5.1.4 用户

语法:CREATE USER user_name INDENTIFIED BY password; 例如:create user zlhis indentified by his;

5.2 Alter语句

5.2.1 表

语法:改变表的名称

ALTER TABLE 表名1 TO 表名2;

ZLCE专用,未经许可不得扩散

第25页,共35页

在表的后面增加一个字段.(没有删除一个字段的用法) ALTER TABLE表名 ADD 字段名 字段名描述; 修改表里字段的定义描述

ALTER TABLE表名 MODIFY字段名 字段名描述; 把表放在或取出数据库的内存区 ALTER TABLE 表名 CACHE; ALTER TABLE 表名 NOCACHE;

例如:alter table人员表 add 地址 varchar(100);--在实际应用中不能有column关键字

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

5.2.2 索引

语法:alter index index_name [storage-clause][initrans 整数][maxtrans 整数]; alter index index_name rebuild;

例如:ALTER INDEX 人员表_IX_姓名 STORAGE (NEXT 512K MAXEXTENTS UNLIMITED) ; ALTER INDEX人员表_IX_姓名 REBUILD;

5.2.3 约束

语法:增加约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名); ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名); 失效约束

ALTER TABLE 表名 DISABLE 约束名 [CASCADE] 启用约束

ALTER TABLE 表名 ENABLE CONSTARAINT约束名 修改约束:

ALTER TABLE 表名 MODIFY CONSTARAINT ENABLE 约束名 [CASCADE] 例如:alter table 人员表 add constraint 人员表_uq_姓名 unique(姓名);

5.2.4 用户

语法:ALTER USER user_name INDENTIFIED BY password; 例如:alter user zlhis indentified by his;

5.3 Drop语句

删除表 drop table 表名 删除索引 drop index 索引名 删除用户 drop user 用户名 例如:drop table 人员表;

drop index 人员表; --删除时需要指明table 或 index 关键字 Drop user zlhis;

ZLCE专用,未经许可不得扩散 第26页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第6章 DML语句应用

6.1 Grant语句

GRANT的作用是赋于权限: 常用的系统权限集合有以下三个:

CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理);

常用的数据对象权限有以下六个:

ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名, DELETE ON 数据对象名, INSERT ON 数据对象名, ALTER ON 数据对象名 例如:

GRANT CONNECT, RESOURCE TO 用户名; GRANT SELECT ON 表名 TO 用户名;

GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2; GRNAT DBA TO ZLHIS;

6.2 Revoke语句

REVOKE的作用是回收权限: 例如:

REVOKE CONNECT, RESOURCE FROM 用户名; REVOKE SELECT ON 表名 FROM 用户名;

REVOKE SELECT, INSERT, DELETE ON表名 FROM 用户名1, 用户名2; REVOKE DBA FROM ZLHIS; ZLCE专用,未经许可不得扩散 第27页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

第7章 用SQL创建SQL

从SQL中生成SQL语句的意思简而言之就是写一个SQL语句。它可以其它形式的SQL语句或命令。

为什么我们需要从查询中生成SQL语句呢?最初这样做的目的是为了简单和有效。你并不一定需要生成SQL语句,但是如果你不这样做,你可能会忽视SQL的最为强大的特性。有许多人甚至根本就不知道有这样的功能存在。

几个SQL*PLUS命令

在今天的例子中我们要使用几个新的命令:

SET ECHO ON/OFF

当你set echo on时,你会在执行的时候看到你的SQL语句。set echo off的意思就是你 不想在执行的时候看到SQL语句——你只想看到输出的结果。 SET ECHO [ ON | OFF ]

SET FEEDBACK ON/OFF

FEEDBACK就是你的查询所输入的行数。例如如果你运行的SELECT语句返回30行数据,那么你的FEEDBACK将会是: 30 rows selected

SET FEEDBACK ON会显示对行的计数,SET FEEDBACK OFF则在你的结果输出时,不会对行进行计数。

SET FEEDBACK [ ON | OFF ] SPOOL FILENAME/OFF SPOOL可以将你的查询结果直接地输入到一个文件中。要想打开SPOOL文件你需要输入 spool filename

如果想关掉SPOOL文件你应该输入 spool off

START FILENAME

大多数的我们所学习的SQL命令都是在SQL>下运行的。另外的一种运行SQL语句的方法是创建SQL执行文件。在SQL*PLUS中,运行SQL文件的命令是START FILENAME。 START FILENAME

例如:我想生成一个统计所有表中,每个表的记录行数的语句,生成到一个统计.sql的文件中。可以如下操作:

输入\\输出: SQL> SET ECHO OFF SQL> SET FEEDBACK OFF SQL> SET HEADING OFF SQL> SPOOL 统计.SQL

SQL> select 'select count(*) from '||TNAME||' ;' from tab where rownum<10;

ZLCE专用,未经许可不得扩散

第28页,共35页

'SELECTCOUNT(*)FROM'||TNAME||'

----------------------------------------------------- select count(*) from H病历打印记录 ; select count(*) from H病人病历标记图 ; select count(*) from H病人病历标记图_OLD ; select count(*) from H病人病历记录 ; select count(*) from H病人病历记录_OLD ; select count(*) from H病人病历内容 ; select count(*) from H病人病历内容_OLD ; select count(*) from H病人病历所见单 ; select count(*) from H病人病历所见单_OLD ;

9 rows selected

 因为示例原因,行数为10行以内。

再例如,现在需要往B表中按照ID对应插入A表的时间

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

ID 1 2 3 4 5 表A 时间 2005-8-3 2005-8-4 2005-8-5 2005-8-6 2005-8-7 ID 5 2 4 1 3 表B 姓名 时间 AA BB CC DD EE 输入\\输出: SQL> select 'update B set b.时间=TO_DATE('||CHR(39)||TO_CHAR(A.时

间,'YYYY-MM-DD')||CHR(39)||','||CHR(39)||'YYYY-MM-DD'||CHR(39)||') where b.id='||b.id||';' from a,b where a.id=b.id;

'UPDATEBSETB.时间=TO_DATE('||C --------------------------------------------------------------------------------

update B set b.时间=TO_DATE('2005-08-03','YYYY-MM-DD') where b.id=1; update B set b.时间=TO_DATE('2005-08-04','YYYY-MM-DD') where b.id=2; update B set b.时间=TO_DATE('2005-08-05','YYYY-MM-DD') where b.id=3; update B set b.时间=TO_DATE('2005-08-06','YYYY-MM-DD') where b.id=4; update B set b.时间=TO_DATE('2005-08-07','YYYY-MM-DD') where b.id=5;

ZLCE专用,未经许可不得扩散 第29页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

编写参考文献

中联自编资料《ORACLE学习资料—SQL简介》 中联自编资料《ORACLE学习资料-高级SQL介绍》

中联自编资料《ORACLE学习资料-ORACLE数据对象介绍》

ZLCE专用,未经许可不得扩散 第30页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

培训测验题

一、 判断题

1. 2. 3. 4. 5. 6. 7. 8. 9.

DML是用来执行数据库的任务,创建数据库以及数据库中的各种对象。() CONCAT的作用是和||的一样的。()

LOWER函数的作用是把数据库的内容转变为按照降序排列() SUBSTR的作用是允许你将目标字符串的一部份输出() MOD(3.1415,4)的结果是0.1415() ROUND(3.1415)的结果是3。() TRUNC(3.1415,1)的结果是3。()

TO_DATE(SYSDATE,’YYYY-MM-DD’)可能是2005-08-06()

多表查询如果没有进行连接,所查询的记录将是所有表记录的笛卡儿乘积记录数。()

10. ALTER TABLE可以更改表中的列名。()

二、 单项择选

1. 以下对DDL描述正确的是()

A. 用来在数据库中操纵各种对象,检索和修改数据

B. 用来执行数据库的任务,创建数据库以及数据库中的各种对象 C. 用来进行安全性管理,可以确定哪些用户可以查看或者修改数据 D. 用来数据库控制管理,可以创建修改用户权限 2. 对一个数据库表的基本组成元素最准确的说法是() A.行和列 B.字段和记录 C.用户和表空间 D.以上都不是

3. 假设一数据库有“出生日期”字段,则查询其中某条记录得到的结果“1955-02-14”

是一个()

A.字段值 B.记录 C.字段名 D.数据

4. 下列哪种数据类型是数据库所不支持的?() A.日期型 B.字符型 C.数值型 D.索引型

5. 下列哪一个命令的操作对象不是数据库表中的记录?() A.UPDATE B.SELECT C.ALTER TABLE D.DELETE 6. 创建一个新的表应使用()语句

A.CREATE TABLE B.DROP TABLE C.ALTER TABLE D.CREATE INDEX

7. 能够使用ROLLBACK语句进行事务回滚的命令是() A.CREATE TABLE B.INSERT INTO C.ALTER TABLE D.DROP TABLE

ZLCE专用,未经许可不得扩散

第31页,共35页

8. ALTER TABLE„MODIFY语句可以修改字段的( ) A.宽度 B.数据类型 C.位置 D.A和B

9. 在一个查询语句中,必须具备的部分是( ) A.SELECT子句 B.WHERE子句 C.FROM子句 D.A和C

10. 删除表“人员表”内的全部记录的正确语法为( ) A.DELETE FROM人员表 B.DELETE * FROM人员表 C.DELETE * .* FROM人员表 D.DELETE FROM人员表 WHERE

11. 执行以上的这条命令之后,对结果的正确描述是( )

A.表“人员表”已不存在 B.表“人员表”已没有任何字段 C.表“人员表”的结构仍在,但已无任何记录 D.以上都不对

12. 在查询条件中,如果要求查询对象的值在一个指定的组值范围内,应使用( )关

键字。

A.IN B.BETWEEN C.AND D.LIKE

13. SELECT语句能否对查询结果进行排序?( ) A.不能,此语句无排序功能 B.能,但必须使用ORDER BY子句 C.能,但必须使用GROUP BY子句 D.能,且不须使用任何子句

14. INSERT INTO语句在什么情况下不需指定插入值的字段名?( ) A.插入任意部分字段的值时 B.插入所有字段的值时 C.插入指定部分字段的值时 D.插入第一个字段的值时

15. 在不知道一个表的字段数据类型时,使用( )命令查询即可得知 A.SELECT B.UPDATE

C.DESC D.ALTER TABLE 16. 执行COMMIT命令所提交的操作是()

A.上次使用该命令提交之后到目前为止执行的这部分操作 B.上次退出数据库之后到目前为止执行的这部分操作 C.本次进入数据库之后到目前为止执行的这部分操作 D.执行最近一条命令的操作

17. ORACLE数据库的内置用户/密码是( ) A.ZLHIS/HIS B.ZLHIS/AQA

C.SYSTEM/MANAGER D.ADMINISTRATOR/MANAGER 18. 假设“人员表”中有“姓名”(字符)、“年龄”(数值)和“职务”(字符)三个字

段且内容如下:

姓名 年龄 职务 赵亮 40 主任 李伟 38 副主任 张敏 科员 要查询其中姓赵的人员的年龄的语法为( ) A.SELECT * FROM人员表 WHERE 姓名=‘赵_’

B.SELECT 年龄 FROM人员表 WHERE ‘姓名’ LIKE ‘赵_’

ZLCE专用,未经许可不得扩散

第32页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

C.SELECT 姓名 FROM人员表 WHERE 年龄LIKE ‘赵_’ D.SELECT 年龄 FROM 人员表 WHERE 姓名 LIKE ‘赵_’

19. 同上例所假设的表,在执行“SELECT 职称 FROM 人员表 WHERE 年龄<20”语句时

( )

A. 不会出错并且能查询到符合条件的记录 B. 肯定出错,因为输入了错误的命令 C. 肯定出错,因为所查询的字段不存在 D. 肯定出错,因为所指定的条件不成立

20. 要在此表中加入一个新人员“刘莉”的记录和追加登记张敏的年龄,应该( )

A. 分别使用INSERT INTO和UPDATE命令 B. 只使用INTSERT INTO命令 C. 只使用UPDATE命令

D. 分别使用UPDATE和INSERT INTO命令

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

三、 多项择选

1. SQL语句主要分为()

A.DML B.DDL C.DTL D.DCL 2. 以下不属于DDL语句的是() A. Create table B. Grant C. Select D. Update

3. 需要清空人员表中的所有数据的操作,可以选择以下操作() A. delete from 人员表 B. drop 人员表

C. truncate table 人员表 D. delete * from 人员表 4. 以下操作正确的是:()

A. grant connect 人员表 to hhj; B. grant select to hhj;

C. grant delete 人员表 to hhj; D. grant resource to hhj; 5. 以下操作正确的是:()

A. revoke connect 人员表 from hhj; B. revoke select on 人员表 from hhj;

C. revoke insert,delete 人员表 from hhj; D. revoke dba from hhj; 6. 对子查询的描述正确的是:()

A. where中可以包含一个select语句的子查询; B. where中可以包含in,看不能使用exists语句; C. 最多可以嵌套16层; D. 层次过多会影响性能;

7. 需要返回查询结果中相同的部分,不能使用的命令是:()

ZLCE专用,未经许可不得扩散

第33页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

A. UNION ;INTERSECT及 MINUS; B. UNION ALL; C. INTERSECT; D. MINUS; 8. 9. 10.

四、 综合应用

1. 2.

ZLCE专用,未经许可不得扩散 第34页,共35页

ZLSOFT 中联信息产业有限公司技术服务工程师认证(ZL Certified Engineer)

附 录

一、 培训测验题答案

(一) 判断题:

1、F 2、T 3、F 4、T 5、T 6、T 7、F 8、F 9、T 10、F (二) 单项选择:

1、B 2、D 3、A 4、D 5、C 6、D 7、B 8、D 9、C 10、A

11、C 12、B 13、B 14、B 15、C 16、A 17、C 18、D 19、C 20、A (三) 多项选择:

1、ABD 2、CD 3、AC 4、CD 5、BD 6、ACD 7、ACD 8、BCD 9、ACD 10、ACD

(四) 综合应用:

二、 数据用例

ZLCE专用,未经许可不得扩散 第35页,共35页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务