8第3章 关系数据库标准语言SQL(上)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

佛山科学技术学院第3章关系数据库标准语言SQLSQL是StructuredQueryLanguage(结构化查询语言)的缩写。SQL包含数据定义、数据操纵和数据控制功能等部分。SQL已经成为关系数据库的标准数据语言,现在所有的关系数据库管理系统都支持SQL。佛山科学技术学院学习目标了解SQL的发展过程和主要功能;熟练掌握SQL的CREATETABLE语句和数据完整性约束的定义方法;熟练掌握SQL的数据操作语句,深刻理解数据完整性约束的作用;熟练掌握SQLSELECT语句,能够运用该语句完成关系数据库上的各种查询;理解关系数据库的视图概念,掌握视图的定义和使用方法。佛山科学技术学院重点难点重点:熟练掌握SQLCREATETABLE语句、SQLINSERT语句、SQLDELETE语句、SQLUPDATE语句和SQLSELECT语句。难点:CREATETABLE语句中有关数据完整性约束的定义,以及SQLSELECT中复杂的连接和嵌套查询。佛山科学技术学院3.1SQL语言概述SQL标准源于1986年10月的ANSI标准1987年6月正式成为ISO标准SQL89提出了完整性特征SQL92标准逐步完善(基本、标准和完全级)SQL99增加了面向对象等最新的标准是2003年发布的SQL2003,几千页SQL标准只是一个建议标准,主流产品一般也只达到了基本级的要求佛山科学技术学院SQL语言主要特点SQL是一种一体化的语言SQL语言是一种高度非过程化的语言SQL语言非常简洁SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用佛山科学技术学院样本数据库教师(Student)教师编号院系姓名性别职称专业课程(Student)课程编号课程名称责任教师学时课程性质选课(Student)学号课程编号考试成绩学生(Student)学号院系姓名性别生源状态院系(Student)编号名称负责人办公地点图3-1样本数据库数据定义功能与数据完整性约束的实现佛山科学技术学院SQL中的模式(Schema)组织数据库对象的一种逻辑结构把一个数据库中的所有对象按用途划分为若干集合默认模式是DBO佛山科学技术学院模式组织举例产品模式订购模式销售模式佛山科学技术学院定义模式模式通常由DBA创建也可以由得到CREATESCHEMA授权的用户创建使用短语AUTHORIZATIONowner_name可以指定模式的管理者(默认是创建者)CREATESCHEMAschema_name[AUTHORIZATIONowner_name]佛山科学技术学院删除模式只有在模式为空,即模式中不包含任何对象时才可以删除模式。DROPSCHEMAschema_name佛山科学技术学院表的定义一个表由若干列构成,SQLServer2005不仅可以定义实列(简称列,column_definition),而且还可以定义虚列(即计算列,computed_column_definition)理解:column_definitioncomputed_column_definitiontable_constraintCREATETABLE[schema_name].table_name({column_definition|computed_column_definition}[table_constraint][,...n])佛山科学技术学院定义列(column_definition)CREATETABLE[schema_name].table_name({column_definition|computed_column_definition}[table_constraint][,...n])column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院定义列(column_definition)列名(column_name)和数据类型(data_type)必须指定,在SQLServer2005中可以使用的数据类型如表3-1所示其他项目是各种约束column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院是否允许空值约束空值的概念?column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院关于约束名称列级约束名,名称可以省略用于命名主关键字、唯一性或参照完整性约束省略名称不便于管理相应的完整性约束column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院主关键字和唯一性约束PRIMARYKEY:主关键字约束,说明该列是主关键字UNIQUE:惟一性约束,说明该列取值必须惟一PRIMARYKEY和UNIQUE约束的区别?column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院参照完整性约束说明外部关键字,FOREIGNKEY可以省略什么是外部关键字?外部关键字的作用?[schema_name.]referenced_table_name[(ref_column)]指出参照的表和列,默认模式时schema_name可以省略,列名相同时(ref_column)可以省略column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院参照完整性规则ONDELETE和ONUPDATE说明在执行删除和更新操作时如何处理参照完整性删除操作检查的完整性?更新操作检查的完整性?column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院CHECK约束用来说明列的取值范围本约束用逻辑表达式(logical_expression)进行说明如果列值使表达式为真则是合法值,否则就是非法值column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院字段默认值用常量表达式(constant_expression)来说明列的默认取值column_namedata_type[NULL|NOTNULL][[CONSTRAINTconstraint_name]PRIMARYKEY|UNIQUE|[FOREIGNKEY]REFERENCES[schema_name.]referenced_table_name[(ref_column)][ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}][ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]|CHECK(logical_expression)][DEFAULTconstant_expression]佛山科学技术学院定义计算列c

1 / 72
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功