资源描述:
《数据库原理第三章》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第三章关系数据库标准语言SQL语言§3.1SQL概述一、SQL的由来SQL是StructuredQueryLanguage(结构化查询语言)的缩写。1972年SQUARE(SpecifyingQueriesAsRelationalExpression)语言;1974年改为SEQUEL(StructuredEnglishQUEryLanguage)语言,后简称SQL.1986年美国国家标准局ANSI的数据库委员会X3H2批准并公布了SQL标准文本(SQL-86)。1987年国际标准化组织ISO把SQL-86采纳为国际标准。1989年ISO颁步
2、了增强完整性特征的SQL-89标准。1992年ISO公布了修改扩充后的SQL-92(即SQL2)标准。目前最新标准为SQL-99(即SQL3)。二、SQL数据库的体系结构三、SQL的组成(分类)DATABASETABLECREATEVIEWINDEXSQLDDL:ALTERDROPSQLQUERY:SELECT…FROM…INSERT…SQLSQLDML:UPDATE…DELETE…GRANTSQLDCL:REVOKEAUDIT嵌入式SQL:四、SQL的特点SQL语言集数据查询、数据操纵、数据定义、数据控制的功能于一体,其主要特点包括:
3、综合统一高度非过程化面向集合的操作方式一种语法结构,两种使用方式语言简捷,易学易用§3.2SQL语言的基本概念一、数据类型1、字符型:CHAR(n)2、数字型:INT,NUMBER(n,m),REAL,…3、日期型:DATE,TIME,DATETIME4、其它类型:LONG二、函数数字函数:常见的有16个ABS(X),SQRT(X),EXP(X),LOG(X),…字符函数:常见的有9个LENGTH(X$),LOWER(X$),…分组函数:常见的有5个COUNT(*),MAX(X),MIN(X),AVG(X),…日期函数:转换函数:其他函数:
4、PI,POWER(X,Y),…三、运算符句法操作符:&,&&,数值操作符:+,-,*,/,‖,…逻辑操作符:=,>,<,≤,≥,≠,IN,ANY,ALL,…查询表达式操作符:UNION,EXCEPT,…其它操作符:*,(+),…四、查询表结构DESCRIBE[user.]表名;§3.3查询语句一、语句格式:SELECT[ALL
5、DISTINCT][表名.]{*
6、列名
7、表达式[AS新列名]}[INTO:主变量1[,:主变量2]…]FROM表名[表别名],…[WHERE条件表达式
8、子查询][GROUPBY列名1,…[HAVING分组表达式]][
9、{UNION
10、INTERSECT
11、EXCEPT}SELECT…FROM…][ORDERBY列名
12、列序号[ASC
13、DESC],…];SELECT…FROM常用语句执行过程SELECT…⑤投影FROM…①TABLE→内存WHERE…②选取元组GROUP…③分组HAVING…④选择分组[{UNION
14、…}⑥查徇结果的集合运算SELECT…]①~⑤ORDERBY……⑦排序输出二、单表查询选择表中的列例1.求学生所在系及姓名SELECTSD,SNFROMS;例2.求学生的全部信息SELECTS#,SN,SA,SD@FROMS;@(SELECT*)选择
15、表中的行1)消除重复行:DISTINCT(缺省为ALL)例:求选修了课程的学生号SELECTDISTINCTS#FROMS;2)选满足一定条件的行:用WHERE子句实现例:求计算机系年龄小于19的姓名及年龄SELECTSN,SAFROMSWHERESD=’CS’ANDSA<19;例:求年龄在18~22(含18,22)之间的学生名及年龄(或不在18~22之间)SELECTSN,SAFROMSWHERESABETWEEN18AND22;(WHERESA>=18ANDSA<=22);(WHERESANOTBETWEEW18AND22);(WHER
16、ESA<18ORSA>22);3)查询条件来自集合:用INorNOTIN例:求信息工程系、计算机系、数学系的系名、学生名(或不是这些系的学生)SELECTSDDEPT,SNNAMEFROMSWHERESDIN(‘IE’,‘CS’,‘MA’);(WHERESD=‘IE’ORSD=‘CS’ORSD=‘MA’)(WHERESDNOTIN(‘IE’,‘CS’,‘MA’);(WHERESD!=‘IE’ANDSD!=‘CS’ANDSD!=‘MA’)4)字符匹配:格式:[NOT]LIKE‘匹配串’[ESCAPE‘换码字符’]%:表示任意长度(≥0的任意字
17、符__:表示单个的任意字符ESCAPE‘换码字符’:匹配串中‘换码字符’之后的字(%,__),被定义为普通字符(不作通配符用)例1:求课程名中有’数据库’的课程记录SELECT*