sql2005增删改查语句

上传人:宝路 文档编号:48203434 上传时间:2018-07-11 格式:PPT 页数:64 大小:3.60MB
返回 下载 相关 举报
sql2005增删改查语句_第1页
第1页 / 共64页
sql2005增删改查语句_第2页
第2页 / 共64页
sql2005增删改查语句_第3页
第3页 / 共64页
sql2005增删改查语句_第4页
第4页 / 共64页
sql2005增删改查语句_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《sql2005增删改查语句》由会员分享,可在线阅读,更多相关《sql2005增删改查语句(64页珍藏版)》请在金锄头文库上搜索。

1、第三章 SQL Server数据管理SQL WHAT(SQL是什么?) Structured Query Language:结构化查询语言 WHY(为何要使用SQL?) 难道仅仅使用SQL Server Management Studio操作数据库? 应用程序如何与数据库打交道? WHEN(何时使用?) 对SQL Server执行所有的操作都可以 程序中的增删改查 HOW(怎么使用?) SQL和T-SQL T-SQL = Transact-SQL T-SQL是SQL的加强版 对功能进行了扩充:如变量说明、流程控制、功能函数T-SQL的组成 DML(数据操作语言) 查询、插入、删除和修改数据库中

2、的数据; SELECT、INSERT、 UPDATE 、DELETE等; DCL(数据控制语言) 用来控制存取许可、存取权限等; GRANT、REVOKE 等; DDL(数据定义语言) 用来建立数据库、数据库对象和定义其列 CREATE TABLE 、DROP TABLE 等 变量说明、流程控制、功能函数 定义变量、判断、分支、循环结构等 日期函数、数学函数、字符函数、系统函数等T-SQL中的运算符运算符含义 =等于 大于 =大于或等于 不等于 !非(Java语言中为not)大多与Java语言中的一样,很难写错通配符通配符解释示例_一个字符A Like C_%任意长度的字符串B Like CO

3、_% 括号中所指定范围内的一个字符C Like 9W01-2不在括号中所指定范围内的一个字符D Like %A-D1-2通配符使用说明 通常与LIKE关键字一起来使用 可以用在检查约束中使用LIKE 在后面的查询语句中还会经常使用到身份证号码的约束表达式怎么写?逻辑表达式逻辑表达式说明示例AND逻辑与1 AND 1 = ; 1 AND 0 = 0; 0 AND 0 = 0; OR逻辑或1 OR 1 = 1; 1OR 0 = 1; 0 OR 0 = 0;NOT逻辑非NOT 1 = 0; NOT 0 = 1;NOT (付款方式 = 信用卡) OR (信用卡 河南新乡数据查询-列名使用AS来命名列S

4、ELECT SCode AS 学员编号,SName AS学员姓名,SAddress AS 学 员地址 FROM Students WHERE SAddress 60 ORDER BY Score降序排列SELECT Au_Lname +. +Au_fName AS EMP From Authors Union SELECT fName +.+ LName AS EMP From Employee ORDER BY EMP DESC数据查询-排序 2-2按多列排序SELECT StudentID As 学员编号, Score As 成绩 FROM Score WHERE Score60 ORDE

5、R BY Score,CourseID排序中的字段,可以使用表达式吗? 如果不可以,请说明原因; 如果可以,请举例说明;SQL Server中的函数相当于Java语言中的内置包字符串函数 日期函数 数学函数 系统函数字符串函数SELECT STUFF(ABCDEFG, 2, 3, 我的音乐我的世界) 返回:A我的音乐我的世界EFG在一个字符串中,删除指定长度的 字符,并在该位置插入一个新的字 符串STUFFSELECT CHARINDEX(ACCP,My Accp Course,1 ) 返回:4用来寻找一个指定的字符串在另一 个字符串中的起始位置CHARINDE X举例描述函数名SELECT

6、LEN(SQL Server课程) 返回:12返回传递给它的字符串长度LENSELECT LOWER(SQL Server课程) 返回:sql server课程把传递给它的字符串转换为小写LOWERSELECT UPPER(sql server课程) 返回:SQL SERVER课程把传递给它的字符串转换为大写UPPERSELECT LTRIM ( 周智宇 ) 返回:周智宇 (后面的空格保留)清除字符左边的空格LTRIMSELECT RTRIM ( 周智宇 ) 返回: 周智宇(前面的空格保留)清除字符右边的空格RTRIMSELECT RIGHT(买卖提.吐尔松,3) 返回:吐尔松从字符串右边返回

7、指定数目的字符RIGHTSELECT REPLACE(莫乐可切.杨可,可,兰) 返回:莫乐兰切.杨兰替换一个字符串中的字符REPLACE日期函数SELECT DATEPART(day, 01/15/2000) 返回:15日期中指定日期部分的整数形 式DATEPARTSELECT GETDATE() 返回:今天的日期取得当前的系统日期GETDATE举例描述函数名SELECT DATEADD(mm,4,01/01/99) 返回:以当前的日期格式返回05/01/99将指定的数值添加到指定的日 期部分后的日期DATEADDSELECT DATEDIFF(mm,01/01/99,05/01/99) 返回

8、:4两个日期之间的指定日期部分 的区别DATEDIFFSELECT DATENAME(dw,01/01/2000) 返回:Saturday日期中指定日期部分的字符串 形式DATENAME数学函数SELECT SQRT(9) 返回:3取浮点表达式的平方根SqrtSELECT ABS(-43) 返回:43取数值表达式的绝对值ABS举例描述函数名SELECT CEILING(43.5) 返回:44返回大于或等于所给数字表达 式的最小整数CEILINGSELECT POWER(5,2) 返回:25取数值表达式的幂值POWERSELECT ROUND(43.543,1) 返回:43.5将数值表达式四舍五

9、入为指定 精度ROUNDSELECT SIGN(-43) 返回:-1对于正数返回+1,对于负数返 回-1,对于0 则返回0SignSELECT FLOOR(43.5) 返回:43取小于或等于指定表达式的最 大整数FLOOR系统函数SELECT USER_NAME(1) 返回:从任意数据库中返回“dbo”从给定的用户I D返回用户名USER_NAMESELECT CONVERT (VARCHAR (5) ,12345) 返回:字符串12345用来转变数据类型CONVERT 举例描述函数名SELECT CURRENT_USER 返回:你登录的用户名返回当前用户的名字CURRENT_USER SEL

10、ECT DATALENGTH (中国A盟) 返回:7返回用于指定表达式的字节 数DATALENGTHSELECT HOST_NAME() 返回:你所登录的计算机的名字返回当前用户所登录的计算 机名字HOST_NAME SELECT SYSTEM_USER 返回:你当前所登录的用户名返回当前所登录的用户名称SYSTEM_USER 模糊查询LIKE 查询时,字段中的内容并不一定与查询内容完全匹配,只 要字段中含有这些内容SELECT SName AS 姓名 FROM Students WHERE SName LIKE 张%姓名姓名 张果老 张飞 张扬出去思考:以下的SQL语句:SELECT * F

11、ROM 数据表 WHERE 编号 LIKE 008%A,C%可能会查询出的编号值为( )。A、9890ACD B、007_AFF C、008&DCG D、KK8C模糊查询IS NULL 把某一字段中内容为空的记录查询出来SELECT SName As 姓名 SAddress AS 地址 FROM Students WHERE SAddress IS NULL姓名地址 张果老NULL 李寻欢NULL 令狐冲NULL 程灵素NULL 猜一猜:把Students表中某些行的SAddress字段值删掉后: 使用IS NULL能查询出来这些数据行吗? 怎么查询出这些行来?模糊查询BETWEEN 把某一字

12、段中内容在特定范围内的记录查询出来SELECT StudentID, Score FROM SCore WHERE Score BETWEEN 60 AND 80StudentIDScore 777 861 1176 1764 模糊查询IN 把某一字段中内容与所列出的查询内容列表匹配的记录查 询出来SELECT SName AS 学员姓名,SAddress As 地址 FROM Students WHERE SAddress IN (北京,广州,上海)学员姓名地址 李 扬广州 于紫电上海 李青霜北京 司马弓上海 问题成绩表中存储了所有学员的成绩,我想知道:学员的总成绩、平均成绩、有成绩的学员总

13、共有多少名?怎么办?聚合函数-1SUMSELECT SUM(ytd_sales) FROM titles WHERE type = businessSELECT SUM(ytd_sales) ,Price FROM titles WHERE type = businessAVGSELECT AVG(SCore) AS 平均成绩 From Score WHERE Score =60代码错误聚合函数-2MAX、MINSELECT AVG(SCore) AS 平均成绩, MAX (Score) AS 最高分, MIN (Score) AS 最低分 From Score WHERE Score =60

14、COUNTSELECT COUNT (*) AS 及格人数 From Score WHERE Score=60问题如果不是统计所有人所有课程的总成绩 而是想求每一门课的平均绩或者某个人的所有课的总成绩 怎么办?分组汇总第一门课6个成绩取平均值第二门课6个成绩取平均值第三门课5个成绩取平均值分组查询GROUP BYSELECT CourseID, AVG(Score) AS 课程平均成绩 FROM Score GROUP BY CourseID分组查询思考SELECT StudentID, CourseID, AVG(Score) AS 课程平均成绩 FROM Score GROUP BY Co

15、urseID思考:执行以下的T-SQL: 结果如何?分组查询多列分组怎么样来统计每次的内部测试不同学员的成绩?第一次内部测试不及格第二次内部测试不及格第三次内部测试不及格补考成绩分组查询再看看内部测试成绩还要把这个加上取平均StudentID和CourseID的组合存在重复需要按照这两个来进行分组,避免StudentID和CourseID 同时一样分组查询多列分组SELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 内部测试平均成绩 FROM Score GROUP BY StudentID,CourseID分组查询问题在以上统计内部测试成绩的基础上, 如果只想看补考的学员的成绩,怎么办分组查询再看看增加条件:要求该学员的CourseID在分组内出现过一次以上SELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 内部测试平均成绩 FROM Score GROUP BY StudentID,CourseID分组查询HAVINGSELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 内部测试平均成绩 FROM Score GROUP BY StudentID,CourseID HAVIN

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

当前位置:首页 > 中学教育 > 教学课件

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