您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 第7章 结构化查询语言SQL.
1第7章结构化查询语言SQL2本章要点7.1SQL的数据定义功能7.2SQL的数据查询功能7.3SQL的数据更新功能7.4用查询设计器建立查询3本章重点和难点重点:掌握使用SQL语句创建表、修改表数据、删除表掌握使用SQL的数据查询功能掌握使用SQL的数据更新功能难点:掌握使用SQL的数据查询功能4SQL简介SQL是结构化查询语言(StructureQueryLanguage)的缩写,是关系型数据库管理系统的标准语言。包括数据定义、数据操纵、数据查询和数据控制四个方面,共9个命令。SQL语言使用使用数据定义语言(DataDefinitionLanguage,简称DDL)实现数据定义功能。7.1SQL的数据定义功能5SQL基本功能和命令SQL功能命令数据定义CREATE,ALTER,DROP数据查询SELECT数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOKE6DDL的命令及功能DDL命令功能CREATETABLE创建一个新的数据表(自由表)ALTERTABLE添加、修改和删除字段DROPTABLE删除一个数据表(自由表)7【命令格式】CREATETABLE表名[free](字段名1数据类型[(宽度[,小数位数]),字段名2…])【功能】定义(也称创建)一个表结构。7.1.1创建数据表8【命令格式】CREATETABLE表名[free](字段名1数据类型[(宽度[,小数位数]),[NULL|NOTNULL]字段名2…])【功能】定义(也称创建)一个表结构。7.1.1创建数据表表示是否允许字段值为空9【命令格式】CREATETABLE表名[free](字段名1数据类型[(宽度[,小数位数]),[NULL|NOTNULL][CHECK表达式[error提示信息]字段名2…])【功能】定义(也称创建)一个表结构。7.1.1创建数据表用于指定字段的有效性规则指定当输入的字段违反有效性规则是,显示提示信息10【命令格式】CREATETABLE表名[free](字段名1数据类型[(宽度[,小数位数]),[NULL|NOTNULL][CHECK表达式[error提示信息][DEFAULT表达式]字段名2…])【功能】定义(也称创建)一个表结构。7.1.1创建数据表用于设置字段的默认值11【命令格式】CREATETABLE表名[free](字段名1数据类型[(宽度[,小数位数]),[NULL|NOTNULL][CHECK表达式[error提示信息][DEFAULT表达式][PRIMARYKEY/UNIQUE]字段名2…])【功能】定义(也称创建)一个表结构。7.1.1创建数据表用于设置字段的主索引用于设置候选索引,不允许出现NULL值12【例7-1】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3);三好生(L);特长(M);照片(G)。CREATETABLESTUD(学号C(8),姓名C(8),性别C(2),出生年月D,入校总分N(3),;三好生L,特长M,照片G)13【例7-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。CREATETABLESTUD(学号C(8)PRIMARYKEYNOTNULL,;姓名C(8),;性别C(2),;出生年月D,;入校总分N(3))14【例7-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。CREATETABLESTUD(学号C(8)PRIMARYKEYNOTNULL,;姓名C(8),NOTNULL;性别C(2),;出生年月D,;入校总分N(3))15【例7-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。CREATETABLESTUD(学号C(8)PRIMARYKEYNOTNULL,;姓名C(8),NOTNULL;性别C(2),DEFAULT=“男”CHECK性别=“男”OR性别;=“女”ERROR“性别必须是男或女”;出生年月D,;入校总分N(3))16【例7-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。CREATETABLESTUD(学号C(8)PRIMARYKEYNOTNULL,;姓名C(8),NOTNULL;性别C(2),DEFAULT=“男”CHECK性别=“男”OR性别;=“女”ERROR“性别必须是男或女”;出生年月D,CHECK(出生年月)={^1990-01-01}and出生;年月={^1970-01-01},;入校总分N(3))17【例7-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。CREATETABLESTUD(学号C(8)PRIMARYKEYNOTNULL,;姓名C(8),NOTNULL;性别C(2),DEFAULT=“男”CHECK性别=“男”OR性别;=“女”ERROR“性别必须是男或女”;出生年月D,CHECK(出生年月)={^1990-01-01}and出生;年月={^1970-01-01},;入校总分N(3))18【命令格式1】ALTERTABLE表名[ADD/ALTER[COLUMN]新字段名数据类型[宽度[,小数位数]][NULL|NOTNULL]][CHECK表达式[error提示信息]][DEFAULT表达式][PRIMARYKEY/UNIQUE]]【功能】修改表结构。7.1.2修改数据表19例7-3在“学生”表中增加一个“电话(c,8)”字段,并设置为候选索引。ALTERTABLE学生;ADDCOLUNN电话c(8)UNIQUE20【命令格式2】ALTERTABLE表名[DROP[COLUMAN]字段名[SETDEFAULT表达式][DROPDEFAULT][SETCHECK表达式[ERROR提示信息]][DROPCHECK][ADDPRIMAYKEY字段名][DROPPRIMARYKEY][ADDUNIQUE字段名][DROPUNIQUETAG索引名][RENAMECOLUMN旧字段名TO新字段名]【功能】修改表结构。21例7-5将“学生”表中的“入校总分”字段改名为“高考成绩”。ALTERTABLE学生;DROPCOLUMN电话;DROPUNIQUETAG电话ALTERTABLE学生;RENAMECOLUMN入校总分TO高考成绩例7-4删除“学生”表中的一个字段名。22【命令格式】DROPTALBE表名【功能】删除指定表的结构和内容(包括在此表上建立的索引)。7.1.3删除数据表23数据操纵语言(DataManipulationLanguage)是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为DML。●数据检索(常称为查询):寻找所需的具体数据。●数据更新:添加、删除和改变数据。数据操纵语言一般由INSERT、DELETE、UPDATE、SELETE(检索,又称查询)等组成,由于SELETE比较特殊,所以一般又将它以查询(检索)语言单独出现。7.2SQL的数据更新功能24【格式1】INSERTINTO表名[字段名表]VALUES(表达式表)7.2.1插入记录【功能】在指定的表文件末尾追加一条记录。格式1用表达式表中的各表达式值赋值给字段名表中的相应的各字段。格式2用数组或内存变量的值赋值给表文件中各字段。【格式2】INSERTINTO表名FROMARRAY数组名|FROMMEMVAR【说明】如果某些字段名在INTO子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。但必须注意的是,在表定义说明了NOTNULL的字段名不能取空值。25INSERTINTOSTUD(学号,姓名,性别,班级名,系别代号);VALUES(011110,李建国,男,计0121,01)字段名表:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。表达式表:指定要追加的记录各个字段的值。【例7-6】在表文件STUD的末尾追加三条记录。***用表达式方式追加第一条记录***26DIMENSIONDATA[5]DATA(1)=011103DATA(2)=李宁DATA(3)=女DATA(4)=电0134DATA(5)=02INSERTINTOSTUDFROMARRAYDATA***用数组方式追加第二条记录***27学号=011202姓名=赵娜性别=女班级名=英0112系别代号=03INSERTINTOSTUDFROMMEMVARLIST***用内存变量方式追加第三条记录***28【格式】UPDATE表文件名SET字段名1=表达式[,字段名2=表达式…][WHERE条件]7.2.2更新记录命令【功能】更新指定表文件中满足WHERE条件子句的数据。其中SET子句用于指定列和修改的值,WHERE用于指定更新的行(记录),如果省略WHERE子句,则表示表中所有行(记录)。【说明】更新操作又称为修改操作。29【例7-7】将成绩表(SC)中,所有课程号为02的成绩各加5分。UPDATESCSET成绩=成绩+5;WHERE课程号=02307.2.3删除记录【格式】DELETEFROM表名WHERE表达式【例7-8】删除STUD表中所有性别为男的记录。DELETEFROMSTUDWHERE性别=“男”【功能】从指定的表中删除满足WHERE子句条件的所有记录。如果在DELETE语句中没有WHERE子句,则该表中的所有记录都将被删除。【说明】这里的删除是逻辑删除,即在删除的记录前加上一个删除标记“*”。317.3SQL中的数据查询功能数据库中的数据很多时侯是为了查询的,因此,数据查询是数据库的核心操作。而在SQL语言中,查询语言中有一条查询命令,即SELECT语句。327.3.1SELECT命令格式SELECT语句的一般格式为:【命令】SELECT[ALL/DISTINCT]FROM[数据库名!]表名[,[数据库名!]表名…][[INTO新表名]/[TOFILE文件名]/TOPRINT/TOSCREEN]]所有记录无重复记录数据源输出337.3.1SELECT命令格式SELECT语句的一般格式为:【命令】SELECT[ALL/DISTINCT][TOP表达式[PRECENT]][别名.]列表达式[AS栏名][,…]FROM[数据库名!]表名[,[数据库名!]表名…][[INTO新表名]/[TOFILE文件名]/
本文标题:第7章 结构化查询语言SQL.
链接地址:https://www.777doc.com/doc-3202867 .html