第1章SQL语言基础与数据库的安装本章首先将介绍如何从数据库的表中提取、统计数据,这部分内容是我们在数据库应用开发和管理中使用到最多的内容也是我们学习下面内容的基础。数据维护语句(DML)部分介绍如何对表中的数据进行增、删、改。从而达到更改数据库表中值的目的,这些语句分别是INSERT,DELETE,UPDATE数据库为了保证业务的原子性,使用了事务的概念也将在这部分介绍。数据定义语句(DDL)主要用来建立及维护数据库对象,通过这部分的学习掌握如何建立数据库对象包括表、索引、视图等。数据控制语句(DCL)主要介绍如何建立及维护用户,并保证数据库的安全性,防止数据库中的数据被非法用户访问。包括数据库用户的建立,数据库对象的赋权,权限的回收等。本章中所有的语句都是基于ORACLE数据库自带的例子程序HR数据库来完成的,关于相关表的定义的详细说明可以参考附件Ⅳ中的内容。本章由以下内容组成:查询语句的使用数据操纵语句的使用(DML)数据定义语句的使用(DDL)数据控制语句的使用(DCL)1.1查询语句的使用本节主要包含了以下内容:单表数据的查询查询处理时用到的函数表查询分组查询1.1.1单表查询表是数据库中数据存储的逻辑单元,我们所需要得到的数据是从数据库中的表里得到的,因此对单一表的数据的查询是学习SQL语句更复杂功能的基础。在这一章里,首先介绍单表查询这个最基本SQL语句的语法,然后对这个语法的各种情况将举例描述。SELECT*|{[DISTINCT]column|expression[alias],………}FROMtable[WHEREcondition(s)][ORDERBY{column,expr,alias}[ASC|DESC]];语法3-1SELECT与FROM之间可以是表中的列,也可以是表达式,包括算术表达式、字符串、常数、函数等。(字符串用单引号定界)下面我们举例子说明这个语法每一项参数的具体意义。在本书的介绍语法的内容中使用的符号:[]代表该内容可选|竖线代表在几项内容中可以选择一项黑体的都是关键字,分别代表不同的功能。例1SELECT中的*指提取该表中的所有字段。SELECT*FROMemployees;说明:从员工信息表中提取所有数据(取所有字段)。例2SELECT中的column是指表的列。SELECTfirst_name,phone_numberFROMemployees;说明:从员工信息中提取员工姓名和联系电话(取字段COLUMN).例3SELECT中的expression是指一个表达式。SELECTsysdate"CURRENTDATE"FROMdual;说明:取一个表达式,该表达式可以是计算公式,该语句中的Dual是一个系统表,只有一条数据,用来满足只需一条数据的查询需求(例如上面例子中的计算一个值)。例4SELECT中的[alias]是为列或者表达式取的别名。SELECTsysdate"CURRENTDATE"FROMdual;说明:别名的目的是为了使提取的数据每一列有对应的名称,从而便于识别。本例提取当前的时间,为该字段的赋予的名称是“CURRENTDATE”从而使输出的数据更有实际意义,其中SYSDATE是一个函数,作用是得到系统当前时间。如果别名中间有空格或者别名中需要区分大小写则该别名需要使用两个双引号将其包含。例5SELECT中的[WHEREcondition(s)]为该数据提取语句设定条件。SELECTfirst_name,last_name,emailFROMemployeesWHEREemployee_id='123';说明:从用户信息中提取用户名称,邮件地址,提取条件为员工号是‘123’例6SELECT中的[ORDERBY]为提取的数据按照指定的列排序。SELECTfirst_name,emailFROMemployeesORDERBYlast_name;说明:从员工信息中提取员工名称、邮箱地址,按照姓排序,缺省的情况下是升序排列。例7SELECT中的[ASC|DESC]为该数据提取语句设定排序方式。SELECTfirst_name,emailFROMemployeesORDERBYlast_namedesc;说明:从员工信息中提取员工名称、邮箱地址、按照姓降序排列。也可以是对一个语句中的多个列进行排序,对每个列后面都可以增加升降序的选项。同时排序的列可以不用出现在选择列当中。例8SELECT中的DISTINCT是指对提取的数据进行压缩显示。SELECTDISTINCTsalaryFROMemployeesWHEREjob_id='IT_PROG';说明:提取工作职位是‘IT_PROG的所用员工的不同的工资数额。如果没有DISTINCT语句,则可能会提取出来大量的重复的数据。WHERE子句中的condition(s)是用来设定常用的查询条件这些条件主要有:条...