[数学]《数据库原理及应用》第3章 结构化查询语言

上传人:tia****nde 文档编号:70234725 上传时间:2019-01-16 格式:PPT 页数:169 大小:4.93MB
返回 下载 相关 举报
[数学]《数据库原理及应用》第3章 结构化查询语言_第1页
第1页 / 共169页
[数学]《数据库原理及应用》第3章 结构化查询语言_第2页
第2页 / 共169页
[数学]《数据库原理及应用》第3章 结构化查询语言_第3页
第3页 / 共169页
[数学]《数据库原理及应用》第3章 结构化查询语言_第4页
第4页 / 共169页
[数学]《数据库原理及应用》第3章 结构化查询语言_第5页
第5页 / 共169页
点击查看更多>>
资源描述

《[数学]《数据库原理及应用》第3章 结构化查询语言》由会员分享,可在线阅读,更多相关《[数学]《数据库原理及应用》第3章 结构化查询语言(169页珍藏版)》请在金锄头文库上搜索。

1、第三章 结构化查询语言,学习创建数据库结构的基本SQL语句 学习将数据添加到数据库的基本SQL语句 学习单表的基本SQL查询语句 学习多表关联的SQL查询语句 使用SQL语句修改与删除数据库表中数据 使用SQL语句修改与删除数据库表和约束 学习使用基本SQL语句创建和使用视图,【学习目标】,一、基本概念,3.1 SQL简介,SQL( Structured Query Language,结构化查询语言 )它是一种对数据库进行访问与操作的数据子语言。它嵌入到编程语言(如JAVA、C#等)中执行或在DBMS工具中执行。,二、SQL发展,20世纪70年代由IBM公司开发 1986 ANSI的数据库委员

2、会批准了SQL作为关系型数据库语言的美国标准。 1987年国际标准化组织(ISO)将其采纳为国际标准SQL86。 1989年更新成为国际标准SQL-89 1992年更新成为国际标准SQL-92(或称SQL2) 1999年更新成为国际标准SQL-99(或称SQL3) 2008年更新成为国际标准SQL:2008,三、SQL应用情况,绝大多数主流的关系型数据库管理系统采用了SQL语言标准 Oracle Sybase DB2 Microsoft SQL Server Access MySql 。,其中一些数据库管理系统对SQL语句进行了再开发和扩展,如Sybase、 Microsoft SQL Ser

3、ver将操作语言扩展为Transaction-SQL;Oracle将操作语言扩展为PL/SQL。,四、SQL能做什么?,SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限,五、SQL语言语句类别,1. 数据操纵作语言,数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于查询和增删修改表数据的语句,主要语句如下:,SELECT -

4、 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT - 向数据库表中插入数据,2. 数据定义语言,数据定义语言(Data Definition Language,DDL)是SQL语言中用于创建或删除表。也可以定义索引(键),规定表之间的链接,以及施加表间的约束。主要语句如下:,CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索

5、引(搜索键) DROP INDEX - 删除索引,六、SQL语言程序,创建数据库表 CUSTOMER COURSE ENROLLMENT,DDL,插入数据库表 CUSTOMER,DML,七、示例数据库,部门(DEPARTMENT) 雇员(EMPLOYEE) 项目(PROJECT) 任务(ASSIGNMENT),工程项目管理,部门(DEPARTMENT)表结构,1. 数据库表结构,雇员(EMPLOYEE)表结构,项目(PROJECT)表结构,任务(ASSIGNMENT)表结构,参照完整性约束,DEPARTMENT表,EMPLOYEE表,2. 数据库表联系,参照完整性约束,DEPARTMENT表结

6、构,PROJECT表结构,参照完整性约束,参照完整性约束,PROJECT表结构,ASSIGNMENT表结构,参照完整性约束,PROJECT表数据,ASSIGNMENT表数据,3. 业务规则,如果要删除EMPLOYEE中的某个行,而该行连接到ASSIGNMENT,则禁止对EMPLOYEE行执行删除操作 如果删除了PROJECT中的某个行,则ASSIGNMENT中连接到这个已删除的PROJECT行的所有行也将随之被删除,如果删除了EMPLOYEE表中的某个行(例如一个雇员已调离),就必须有人接替这个雇员工作。应用程序需要在删除原雇员前,把该雇员的任务重新分配给另一个雇员。 如果删除了PROJECT

7、表中的某个行,就取消这个项目,因此不必维护这个项目的相关记录。,业务规则含义,一、SQL语言 DDL语句组成,数据定义语言(Data Definition Language,DDL)是SQL语言中用于创建或删除表。也可以定义索引(键),规定表之间的链接,以及施加表间的约束。主要语句如下:,CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引,3.

8、2 用于数据定义的SQL语句,二、CREATE TABLE语句,1. 语句基本格式,CREATE TABLE NewTableName( ColumnName DataType OptionalConstraint, ColumnName DataType OptionalConstraint, ColumnName DataType OptionalConstraint, );,列名,表名,列类型,列约束,例: 雇员数据库表EMPLOYEE创建,CREATE TABLE EMPLOYEE( EmployeeNumber Int, FirstName Char(30), LastName Ch

9、ar(30), Department Char(35), Phone Char(12), Email VarChar(100) );,2. 列约束条件,CREATE TABLE NewTableName( ColumnName DataType OptionalConstraint, ColumnName DataType OptionalConstraint, ColumnName DataType OptionalConstraint, );,列约束子句 PRIMARY KEY主键 NOT NULL非空值 NULL空值 UNIQUE值唯一 CHECK有效性检查 DEFAULT缺省值,CRE

10、ATE TABLE DEPARTMENT( DepartmentName Char(35) PRIMARY KEY, BudgetCode Char(30) NOT NULL, OfficeNumber Char(15) NOT NULL, Phone Char(12) NOT NULL );,例1: 部门数据库表DEPARTMENT创建,DBMS执行SQL语句,SQL Server执行sql语句,CREATE TABLE EMPLOYEE( EmployeeNumber Int PRIMARY KEY IDENTITY(1,1), FirstName Char(30) NOT NULL, L

11、astName Char(30) NOT NULL, Department Char(35) NOT NULL DEFAULT 人力资源, Phone Char(12) NULL, Email VarChar(100) NOT NULL UNIQUE );,例2: 雇员数据库表EMPLOYEE创建,CREATE TABLE PROJECT( ProjectID Int PRIMARY KEY, Name Char(30) NOT NULL, Department Char(35) CHECK (DepartmentIN(财务,销售,人事), MaxHours Numeric(6,2) NOT

12、NULL DEFAULT 100, StartDate DateTime NULL, EndDate DateTime NULL );,练习: 项目数据库表PROJECT创建,三、SQL语言的数据类型,1. 基本数据类型,字符:CHAR、VARCHAR、TEXT 整数:SMALLINT、INTEGER 浮点数:NUMBER(n,d)、FLOAT(n,d) 日期:DATE、DATATIME 货币:MONEY,2. 不同数据库所支持数据类型,见P98页,图3-5(a)所示SQL Server2008的数据类型 见P99页,图3-5(b)所示ORACLE Database11g的数据类型 见P99页

13、,图3-5(c)所示MySQL的数据类型,四、使用表约束定义主键,CREATE TABLE DEPARTMENT( DepartmentName Char(35) NOT NULL, BudgetCode Char(30) NOT NULL, OfficeNumber Char(15) NOT NULL, Phone Char(12) NOT NULL, CONSTRAINT DEPARTMENT_PK PRIMARY KEY(DepartmentName ) );,使用表约束定义主键的优点: 便于定义复合主键 可命名主键约束 便于定义代理键,例1: 项目数据库表PROJECT创建,CREAT

14、E TABLE PROJECT( ProjectID Int NOT NULL AUTO_INCREMENT, Name Char(30) NOT NULL, Department Char(35) NOT NULL, MaxHours Numeric(6,2) NOT NULL DEFAULT 100, StartDate DateTime NULL, EndDate DateTime NULL, CONSTRAINT PROJECT_PK PRIMARY KEY(ProjectID) );,MySQL 执行sql语句,例2: 任务分配数据库表ASSIGNMENT创建,CREATE TABL

15、E ASSIGNMENT( ProjectID Int NOT NULL, EmployeeNumber Int NOT NULL, HoursWorked Numeric(6,2) NULL, CONSTRAINT ASSIGNMENT_PK PRIMARY KEY(ProjectID,EmployeeNumber) );,五、使用表约束定义外键,参照完整性约束,DEPARTMENT表,EMPLOYEE表,CREATE TABLE EMPLOYEE( EmployeeNumber Int NOT NULL AUTO_INCREMENT, FirstName Char(30) NOT NULL

16、, LastName Char(30) NOT NULL, Department Char(35) NOT NULL DEFAULT 人力资源, Phone Char(12) NULL, Email VarChar(100) NOT NULL UNIQUE, CONSTRAINT EMPLOYEE_PK PRIMARY KEY(EmployeeNumber ), CONSTRAINT EMP_DEPART_FK FOREIGN KEY(Department) REFERENCES DEPARTMENT(DepartmentName) ON UPDATE CASCADE );,DEPARTMENT表结构,PROJECT表结构,参照完整性约束,编写实现下表关联的参照完整性约束SQL语句,CREATE TABLE PROJECT( ProjectID Int NOT NULL AUT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号