第4章2 结构化查询语言SQL.doc

上传人:pu****.1 文档编号:543098935 上传时间:2023-05-12 格式:DOC 页数:12 大小:154KB
返回 下载 相关 举报
第4章2 结构化查询语言SQL.doc_第1页
第1页 / 共12页
第4章2 结构化查询语言SQL.doc_第2页
第2页 / 共12页
第4章2 结构化查询语言SQL.doc_第3页
第3页 / 共12页
第4章2 结构化查询语言SQL.doc_第4页
第4页 / 共12页
第4章2 结构化查询语言SQL.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《第4章2 结构化查询语言SQL.doc》由会员分享,可在线阅读,更多相关《第4章2 结构化查询语言SQL.doc(12页珍藏版)》请在金锄头文库上搜索。

1、4 结构化查询语言SQL4.5 常用函数4.5.1 数学函数 RAND()返回0到1之间的随机值。例如:Print rand()declare i Floatset i=rand()print iPRINT CONVERT(INT,RAND()*26) - 0 to 25PRINT CONVERT(INT,RAND()*26)+1 - 1 to 26规则:PRINT CONVERT(INT,RAND()*(N-M+1)+M - M to N (MN)ROUND(78.518, 2)按照指定精度四舍五入。78.520 FLOOR(-123.45)返回=参数的最小整数。-123PI()3.1415

2、9其他函数:弧度、角度DEGREES、RADIANS指数函数EXP、POWER对数函数LOG10、LOG三角函数COS、SIN、TAN、ATAN4.5.2 字符串函数LEN(abcd)计算串长SPACE(10) 返回由重复的空格组成的字符串。REPLICATE(abc,3)返回由重复的字符串组成的字符串。REVERSE(abcdef,3)字符串逆序declare s char(100)set s=REVERSE(abcdef)print sdeclare s char(100)set s=REVERSE(abcdef)print sRTRIM( abc )缩减右空格类型转换ASCII(abc)

3、首字符转换为ASCII值。CHAR(97)ASCII值转换为字符STR(123.45, 8, 3)STR ( float_expression , length , decimal )数值转换为字符串float_expression 带小数点的近似数字 (float) 数据类型的表达式。length 总长度。它包括小数点、符号、数字以及空格。默认值为 10。decimal 小数点后的位数。decimal 必须小于或等于 16。如果 decimal 大于 16,则会截断结果,使其保持为小数点后具有十六位。CONVERT(real,12.34)CONVERT(decimal(9,4),12.34)

4、字符串转换为实数(也可用于其他类型转换)子串操作LEFT(abcdefg,2) 取左子串RIGHT(abcdefg,2)取右子串SUBSTRING(abcdefg,2,4)取子串REPLACE(old is old!,old,new)子串替换STUFF(abcdef, 2, 3, 12345)位置替换子串/模式匹配CHARINDEX(Data,What is DataBase)子串匹配PATINDEX(%Data%,What is DataBase)模式匹配 字符串相似度SOUNDEX返回由四个字符的代码DIFFERENCE返回0,4,表示两串的相似性SOUNDEX(hello)H120SOU

5、NDEX(what)0000SOUNDEX(water)0000DIFFERENCE(hello,what)0DIFFERENCE(what,water)4 4.5.3 日期函数GETDATE() 返回当前时间YEAR(GETDATE()取时间中的年 MONTH(GETDATE()取时间中的月DAY(GETDATE() 取时间中的日DATENAME(year,GETDATE()DATENAME(month,GETDATE()DATENAME(day,GETDATE()取部分日期(字符串)DATEPART(hour,GETDATE()DATEPART(minute,GETDATE()DATEPA

6、RT(second,GETDATE()取部分日期(整数)DATEADD(day,2,2008-9-1)DATEADD(month,2,2008-9-1)DATEADD(year,2,2008-9-1)日期加法DATEDIFF(hour,1990-1-1,GETDATE() DATEDIFF(minute,1990-1-1,GETDATE()DATEDIFF(second,1990-1-1,GETDATE()日期减法4.6 数据查询 SELECT语句有太多的命令选项(子句):SELECT子句指定要显示的属性列 (相当于投影运算)FROM子句指定查询表WHERE子句指定查询条件(相当于选择运算)G

7、ROUP BY子句对查询结果按指定列的值分组。一般会在每组的若干记录上使用“集函数”。HAVING短语筛选出满足指定条件的组ORDER BY子句对查询结果按指定列值的排序4.6.1 单表查询1、选择表中的若干列(投影)SELECT Sname,Sno,Sdept FROM S;SELECT * FROM S;SELECT Sname as 姓名,year(GETDATE()-year(Sbirthday) as 年龄 FROM S;2、选择满足条件的元组(选择)查询1989-9-1以前出生的学生记录SELECT * FROM S WHERE Sbirthday90或SELECT S.*,Cno

8、,SCscore FROM S INNER JOIN SCON S.Sno = SC.SnoWHERE Cno=1 AND SCscore90Cf:查询每个学生每门课的姓名、课程名、成绩Select s.sname,ame,scscore from scInner join s on sc.sno=s.snoInner join c on o=o2 一个表的连接查询自身连接:一个表与其自己进行连接。由于所有属性名都是同名属性,因此必须使用别名。(/*例如一行查阅一位同学的几门课成绩*/)自身连接SELECT a.*, b.* FROM SC as a, SC as bWHERE a.sno = b.sno 查询选修了1号课程和3号课程的学生信息SELECT a.*, b.* FROM SC as a, SC as bWHERE a.sno = b.sno AND o = 1 AND o = 33 外连接查询外连接:以一个表为主体,将另一个表中“满足”和“不满足”连接条件的元组一起输出。左外连接:查询所有学生的选修情况(含未选修情况)SELECT S.*, SCscore FROM S LEFT OUTER JOIN SC ON S.SNO=SC.SNO

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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