SQL语言与编程

上传人:cn****1 文档编号:496529566 上传时间:2023-02-17 格式:DOC 页数:57 大小:291.50KB
返回 下载 相关 举报
SQL语言与编程_第1页
第1页 / 共57页
SQL语言与编程_第2页
第2页 / 共57页
SQL语言与编程_第3页
第3页 / 共57页
SQL语言与编程_第4页
第4页 / 共57页
SQL语言与编程_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《SQL语言与编程》由会员分享,可在线阅读,更多相关《SQL语言与编程(57页珍藏版)》请在金锄头文库上搜索。

1、2 SQL语言与编程SQL是Structured Query Language(结构化查询语言)的缩写,SQL是关系数据库的标准语言,其功能不是仅限于查询,而是非常全面强大,易学易用,所以几乎现在市面上的所有数据库管理系统都支持SQL语言,使之成为数据库领域中的主流语言。21 SQL语言概述211 SQL语言的基本概念1SQL语言的产生及发展SQL是由Boyce和Chamberlin于1974提出的,并在IBM公司研制的关系型数据库管理系统上得以实现,它功能丰富,语言简洁、易学易用,赢得了众多的用户,被许多数据库厂商所采用,以后又由各厂商进行了不断的修改、完善。1986年10月,美国国家标准局

2、(American National Standard Institute,简称ANSI)的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准,且公布了SQL标准文本(SQL-86),1987年,国际标准化组织(International Standard Organization,简称ISO)也采纳了这个标准。此后SQL标准不断得到修改和完善,ANSI又于1989年公布了SQL-89标准,1992年公布了SQL-92标准,1999年公布了SQL-99标准。2SQL语言的特点SQL之所以能成为国际化的关系数据库标准语言,源于它的易用易学和功能强大,概况起来SQL的特点主要包括:(1)

3、 语言简单易学SQL语言的语法结构中的关键字接近英语的自然语言,且只使用了几个关键字(如:CREATE、DROP、ALTER、UPDATE、INSERT、DELETE、SELECT)就可实现主要功能的操作,易学、易记、易操作。(2) 是一种非过程化的语言使用SQL语言在执行数据操作时,无需了解怎么做,只需告诉系统要做什么,至于怎样完成操作,都由系统自动安排。(3) 是一种面向集合的语言SQL语言操作的对象可以是元组的集合,操作的结果也可是元组的集合。(4) 一种结构,多种使用方式SQL语言即可作为一种独立的数据库语言来使用,又可嵌入其它高级语言(宿主语言)中作为嵌入式语言来使用。(5) 综合功

4、能强SQL语言集数据定义、数据操纵和数据控制于一体,可以独立完成数据库的定义、查询、更新、维护、完整性控制、安全性控制等一系列操作。212 SQL的语言分类是目前使用最广泛的数据库语言。主要用于进行数据库的查询、定义、操纵和控制,是一种功能齐全的关系数据库标准语言。SQL语言包括四大类:l 数据定义语言(Date Definition Language):简称DDL,用于定义、修改、删除数据库表结构、视图、索引等。l 数据操纵语言(Date Manegement Language):简称DML,用于对数据库中的数据进行查询和更新操作。l 数据控制语言(Date Control Language

5、):简称DCL,用于设置数据库用户的各种操作权限。l 事务处理语言:用于保证数据库中数据的完整性。1. 数据定义语言(DDL)常用的DDL语句有:l Create Schema:创建模式 l Create Table :创建基本表。l Create Index :创建索引。l Create View :创建视图。l Drop Schema:删除模式。l Drop Table :删除基本表。l Drop Index :删除索引。l Drop View :删除视图。l Alter Table :修改表结构。2. 数据操作语言(DML)常用的DML语句有:l Insert :插入记录到数据库表或视图

6、。l Delete:删除数据库表或视图的记录。l Update:更改数据库表或视图的数据。l Select:查询数据库表或视图的数据。3. 数据控制语言(DCL)常用的DCL语句有:l GRANT:将权限或角色授予用户或其他角色。l REVOKE:撤消用户或数据库角色权限。4. 数据库事务处理常用的事务处理语句有:l BEGIN TRANSACTION l COMMIT l ROLLBACK其中,BEGIN TRANSACTION用于控制事务的开始,COMMIT用于正常提交事务。ROLLBACK用于控制事务的非正常结束,将事务回滚。213 SQL支持的数据库模式SQL支持数据库的三级模式结构,

7、其中,基本表与模式相对应;视图与外模式相对应;存储文件与内模式相对应。如图2-1。如图所示,一个存储文件对应一个基本表,一个基本表可对应多个视图,一个视图可由多个基本表导出,一个视图可由多个用户访问,一个用户也可访问多个视图,用户也可直接访问多个基本表。SQL用户SQL用户视图1基本表3基本表2基本表1存储文件3存储文件2存储文件1视图2视图3图2-1 SQL支持的数据库模式外模式模式内模式SQL用户214 标准SQL语言与数据库产品中的SQL语言标准SQL语言与实际数据库产品中的SQL语言并不完全一致,即标准SQL语言的某些功能在实际数据库产品中有可能实现不了,而在实际数据库产品中,也可能对

8、标准SQL语言的功能进行了扩充,即在标准SQL语言中不能实现的某些功能,在实际数据库产品中却有可能实现。应在具体使用某个数据库产品时对此问题加以关注,使用时要查看有关产品的技术资料。22 数据定义SQL的数据定义包括模式定义、基本表定义、视图定义和索引定义。221 模式的定义和删除1. 模式定义语法格式:CREATE SCHEMA AUTHORIZATION 创建了一个模式,即创建了一个数据库,许多的RDBMS中把创建模式称为创建数据库,如在SQL SERVER 2000中,就是用CREATE DATABASE语句代替CREATE SCHEMA语句。创建模式后,可进一步创建该模式所包含的数据库

9、对象。如:基本表、视图、索引等。例 2-1 创建一个Teacher模式。CREATE SCHEMA Teacher AUTHORIZATION ZYL;其中Teacher为模式名,ZYL为用户名。若省略模式名,则模式名默认为用户名。例2-2 在SQL SERVER 2000中创建数据库Teacher。CREATE DATABASE Teacher; 其中,Teacher为数据库名。2. 模式删除语法格式:DROP SCHEMA 其中,选择CASCADE选项,表示在删除模式的同时,将该模式中的所有数据库对象一起删除。选择RESTRICT选项,表示在删除模式的时候,该模式中已经包含了数据库对象(表

10、或视图等),则拒绝执行该删除语句;该模式中未包含任何数据库对象,则允许执行该删除语句。例2-3 删除例2-1创建的Teacher模式。DROP SCHEMA Teacher CASCADE;例2-4 在SQL SERVER 2000中删除例2-2创建的数据库Teacher。DROP DATABASE Teacher;222 创建基本表语法格式:CREATE TABLE (列定义,.N, 表级完整性约束,.N);说明:(1) :所要创建的基本表的名称。(2) 列定义:= ,.N(3) :所定义的列(属性)的名称,一个表中不能有同名的列。(4) :规定该列数据所属的数据类型,应视该列数据的具体内容

11、和SQL提供的数据类型来定义。数据类型说明符解释数值型长整型INT 或 INTEGER表示整数值,一般用4个字节存储短整型SMALLINT表示整数值,一般用2个字节存储定点数值型DECIMAL(p,s)表示定点数。p指定总的数值位数,包括小数点和小数点后的位数。s表示小数点后的位数。定点数值型NUMERIC(p,s)同DECIMAL。浮点数值型REAL取决于机器精度的浮点数。浮点数值型DOUBLE PRECISION取决于机器精度的双精度浮点数。浮点数值型FLOAT表示浮点数,一般精度至少为n位数字。字符串型定长字符串CHAR(n)按固定长度n存储字符串,若实际字符串长度小于n,则后面填充空格

12、,若实际字符串长度大于n,则报错。变长字符串VERCHAR(n)按实际字符串长度存储,若实际字符串长度小于n,后面不填充空格,若实际字符串长度大于n,则报错。位串型位串BIT(n)表示长度为n的二进制位串变长位串BIT VARYING(n)表示长度为n的变长二进制位串日期时间型日期型DATE表示日期值年、月、日。表示形式为YYYY-MM-DD。时间型TIME表示时间值时、分、秒。格式为HH:MM:SS。(1) 列完整性约束:定义该列上数据必须满足的条件。一般有:NULL允许为空值(默认值)NOT NULL不允许为空值PRIMARY KEY主键约束FOREIGN KEY外键约束UNIQUE唯一性

13、约束CHECK检查约束DEFAULT默认值(2) :定义在列或组合列上的完整性约束。例2-5 创建“教工登记表”CREATE TABLE 教工登记表(教师编号 CHAR(6) PRIMARY KEY,/*定义为列级主键约束*/ 姓名 CHAR(8) NOT NULL,/*姓名列不能取空值*/ 性别 CHAR(2) NOT NULL,/*性别列不能取空值*/ 年龄 SMALLINT, 婚否 BIT, 职称 CHAR(6), 基本工资 DECIMAL(7,2), 部门 CHAR(10);系统执行以上语句后,数据库中就建立了一个名为“教工登记表”的空表,只有表结构而无记录(元组)。系统将该表的定义及

14、有关约束条件存放在数据字典中。注意:(1)定义每列时,要用逗号隔开每列。(2)该例将“婚否”定义为BIT类型,则只能输入1或0,代表TRUE和FALSE。例2-6 创建“教工工资表”CREATE TABLE 教工工资表(工资编号 INT, 姓名 CHAR(8) NOT NULL, 基本工资 DECIMAL(7,2), 岗位补贴 DECIMAL(7,2), 奖金 DECIMAL(7,2), 扣除 DECIMAL(7,2), 实发工资DECIMAL(7,2);例2-7 创建“学生干部登记表”CREATE TABLE 学生干部登记表(学号CHAR(8), 姓名CHAR(8), 性别CHAR(2), 年龄SMALLINT, 班级CHAR(12), 任职CHAR(10), 教师编号 CHAR(6);223 修改表结构修改表结构,指的是对已定义的表增加新的列(属性)或删除多余的列(属性)。语法格式:ALTER TABLE ADD列完整性约束

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

当前位置:首页 > 建筑/环境 > 施工组织

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