SQL语句培训教材

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL语句培训教材

一、SQL概述

1、SQL初识

SQL(Structured Query Language,结构化查询语言)是一种查询、插入、更新和删除数据,生成、修改和删除数据库对象,提供数据库安全控制,完整性及数据保护控制,是面向数据库的通用数据处理语言规范。

数据库对象包括表、视图、索引、同义词、族、触发器、函数、过程、包、数据库链和快照等。

2、SQL数据库的体系统结构

(1)S QL数据库是表的汇集;

(2)S QL表由行集构成,行是列的序列,每列对应一个数据项;

(3)表或者是基本表,或者是视图;

(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对

应。

(5)用户可以用SQL语句对表进行操作,包括视图和基本表。

(6)S QL的用户可以是应用程序,也可以是终端用户。

3、SQL的组成

SQL由4部份组成:

(1)数据定义:SQL DDL。定义SQL模式、基本表、视图和

索引。

(2)数据操纵:SQL DML。包括数据查询和数据更新(增、删、改)。

(3)数据操制:包括对基本表和视图的授权、完整性规则的描述和事务控制等。

(4)嵌入式SQL的使用规定

二、数据库查询

1、SQL语句符号:

2、简单查询

当我们可以用SQL*PLUS登录到SQL>下后,我们可以用DESC 显示某表的结构,也可以用select 语句简单查询表中的一些列的内容。

例:要查询T_person表中人员的姓名、出生日期及出生地,则:

SQL> select name,dob,natal_place from t_person;

3、伪列及伪表

Oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象(如建表)时由我们完成的,而是在我们建立对象时由自动Oracle完成的。Oracle目前有以下的伪列:

CURRVAL and NEXTVAL 使用序列号的保留字

LEVEL 查询数据所对应的级

ROWID 记录的唯一标识

ROWNUM 限制查询结果集的数量

有关伪列的详细解释和使用见相关章节。

Oracle 还提供了一个DUAL 的伪表,该表主要目的是保证在使用SELECT 语句中语句的完整性而提供的,如:我们要查询当前的系统日期及时间,而系统的日期和时间并是放在一个指定的表里。所以在from 语句后就没有表名给出。为了使用from 后有个表名,我们就用DUAL代替。如:

例1:查询Oracle系统日期及时间:

SQL> select to_char( sysdate,' hh24:mi:ss') from DUAL;

TO_CHAR(SYSDATE,'YY

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

07:28:09

例2:计算一下5000+5000* 的结果是多少,则:

SQL> select 5000+5000* from DUAL;

5000+5000*

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

5500

三、数据基本类型

Oracle数据库的数据类型与其它的数据库系统相比,它的数据类型不多,Oracle在表示数据方面比其他数据库系统来说要省去许多关键字。Oracle只用NUMBER(m,n)就可以表示任何复杂的数字数据。其它如日期类型等也简单得多,只DATE就表示日期和时间。下面以列表形式给出Oracle8i版本以上系统数据类型的表示方法。

例:SQL> create table nchar_tst(name varchar2(10),addr varchar2(16),sal number(9,2));

表已创建。

四、常用函数

1、单记录字符函数

ASCII()

是字符串。返回与指定的字符对应的十进制数。

SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

A a ZERO SPACE

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

65 97 48 32

SQL> select ascii('赵') zhao,length('赵') leng from dual;

ZHAO LENG

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

54740 1

CHR([NCHAR])

给出整数,返回对应字符。如:

SQL> select chr(54740) zhao,chr(65) chr65 from dual;

ZH C

-- -

赵A

||(,)

SQL> select (‘010-8801 8159’)||'转23' 王五电话from dual;

王五电话

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

010-8801 8159转23

INSTR(,[,[,] ] )

在一个字符串中搜索指定的字符,返回发现指定的字符的位置。C1: 被搜索的字符串

C2: 希望搜索的字符串

I: 搜索的开始位置,缺省是1

J: 出现的位置,缺省是1。

SQL> SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;

Instring

----------