数据库SQL2005基础知识.ppt_第1页
数据库SQL2005基础知识.ppt_第2页
数据库SQL2005基础知识.ppt_第3页
数据库SQL2005基础知识.ppt_第4页
数据库SQL2005基础知识.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专题二 简单操作,1使用SQL向表中插入数据 2使用SQL更新表中数据 3使用SQL删除表中数据 4使用简单查询 使用SELECT语句进行条件查询 在查询中返回限制行、进行查询排序 在查询中使用表达式、运算符和函数,本章目标,SQL,WHAT(SQL是什么?) Structured Query Language:结构化查询语言 WHY(为何要使用SQL?) 难道仅仅使用SQL Server Management Studio操作数据库? 应用程序如何与数据库打交道? WHEN(何时使用?) 对SQL Server执行所有的操作都可以 程序中的增删改查 HOW(怎么使用?) ,讲述SQL之前,语

2、法检查,数据库对象,执行,选择数据库,SQL,执行结果,插入数据行 7-1,InSert INTO 列名 Values ,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQCS,0),插入数据行 7-2,注意事项1:每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁),代码错误,插入数据行 7-3,注

3、意事项2:每个数据值的数据类型、精度和小数位数必须与相应的列匹配;,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,ZQC,ZQCS, ZG),代码错误,插入数据行 7-4,注意事项3:不能为标识列指定值,因为它的数字是自动增长的;,INSERT INTO Students (SCode,SName,SAddress,SGrade,SEmail,SSEX) VALUES (32,张青裁,上海松江,6,ZQCS,0),代码错误,插入数据行 7-5,注意事项4:如果在设计表的时候就指定了某列不允许为

4、空,则必须插入数据;,INSERT INTO Students (SAddress,SGrade,SEmail,SSEX) VALUES (上海松江,6,ZQCS,0),代码错误,插入数据行 7-6,注意事项5:插入的数据项,要求符合检查约束的要求,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (张青裁,上海松江,6,ZQC,0),代码错误,插入数据行 7-7,注意事项6:具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值,INSERT INTO Students (SName,SAddress

5、,SGrade,SEmail,SSEX) VALUES (张青裁,DEFAULT,6,ZQCS,0),小结1,编写SQL语句,把你自己的信息插入到学员信息表中,插入多行数据 4-1,INSERT INTO TongXunLu (姓名,地址,电子邮件) SELECT SName,SAddress,SEmail FROM Students,InSert Into (列名) Select From ,插入多行数据 4-2,SELECT Students.SName,Students.SAddress,Students.SEmail INTO TongXunLu FROM Students,Selec

6、t (列名) Into From ,该语句可以执行两次吗?,插入多行数据 4-3,SELECT Students.SName,Students.SAddress,Students.SEmail, IDENTITY(int,1,1) As StudentID INTO TongXunLuEX FROM Students,Select Into插入多行数据的时候,如何插入新的标识列?,SELECT IDENTITY(数据类型,标识种子,标识增长量) AS 列名 INTO 新表 FROM 原始表,插入多行数据 4-4,INSERT STUDENTS (SName,SGrade,SSex) SELEC

7、T 张可,7,1 UNION SELECT 李扬,4,0 UNION SELECT 杨晓,2,0 UNION SELECT 汤美,3,0 UNION SELECT 苏三东,7,1 UNION SELECT 王立岩,3,1 UNION SELECT 张伟,7,1 UNION SELECT 陈刚,4,1 UNION SELECT 王娟娟,7,0,InSert Into (列名) Select Union Select Union ,SQL中的运算符,逻辑表达式,NOT (付款方式 = 信用卡) OR (信用卡 阳光卡) 这个表达式的含义是什么?,更新数据行,Update Set Where ,UP

8、DATE Students SET SSEX = 0,UPDATE Students SET SAddress =北京女子职业技术学校家政班 WHERE SAddress = 北京女子职业技术学校刺绣班,UPDATE Score SET Score = Score + 5 WHERE Score = 95,小结2,编写SQL语句,更新学员信息表中全部女同学的地址为“北京奥运村”,删除数据行 3-1,Delete From Where ,DELETE FROM Students WHERE SName =张青裁,删除数据行 3-2,以下的删除语句可以执行吗?,DELETE SCode FROM

9、Students,删除数据行 3-3,Truncate Table ,TRUNCATE TABLE Students,DELETE FROM Students,=,小结3,为学员成绩表中增加一行数据,学员张伟Java的考试成绩为80分,SQL语句怎么写? 更新成绩表,所有低于60分成绩都加5分的SQL语句怎么写? 复制学员表Students为StudentsInfo,包含表结构和全部的数据,SQL语句怎么写?,什么是查询?,客户程序,SQL SERVER,SELECT * FROM SALES,查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数

10、据,并按照表的形式显示出来,怎么查的?,SELECT * FROM StudentsH WHERE 所在班级 = S202,引例,查询所有学员的信息? 查询所有s202班级的学员编号,姓名和地址? 将上一步的查询结果以中文表头 学员编号,姓名和地址,显示出来? 显示查询结果的前3行,或者显示查询结果的前20%行数据。 讲上面的查询结果按照学员编号的降序排列?,查询,SELECT FROM WHERE ORDER BY ASC或DESC,SELECT SCode,SName,SAddress FROM Students WHERE SSEX = 0 ORDER BY SCode,数据查询-基础,

11、查询全部的行和列,SELECT * FROM Students,查询部分行,SELECT SCode,SName,SAddress FROM Students WHERE SAddress = 河南新乡,SELECT SCode,SName,SAddress FROM Students WHERE SAddress 河南新乡,数据查询-列名,使用AS来命名列,SELECT SCode AS 学员编号,SName AS学员姓名,SAddress AS 学员地址 FROM Students WHERE SAddress 河南新乡,SELECT FirstName + . + LastName AS

12、 姓名 FROM Employees,使用=来命名列,SELECT 姓名 = FirstName+.+LastName FROM Employees,数据查询-常量列,使用常量列,SELECT 姓名=SName,地址= SAddress,翰子昂 AS 学校名称 FROM Students,数据查询-限制行数,限制固定行数,SELECT TOP 5 SName, SAddress FROM Students WHERE SSex = 0,返回百分之多少行,SELECT TOP 20 PERCENT SName, SAddress FROM Students WHERE SSex = 0,数据查询

13、-排序 2-1,升序排列,SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩 FROM Score WHERE (Score*0.9+5)60 ORDER BY Score,降序排列,SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩 FROM Score WHERE (Score*0.9+5)60 ORDER BY Score DESC,数据查询-排序 2-2,按多列排序,SELECT StudentID As 学员编号, Score As 成绩 FROM Score WHERE Score60 ORDER

14、BY Score,CourseID,排序中的字段,可以使用表达式吗? 如果不可以,请说明原因; 如果可以,请举例说明;,小结4,编写SQL语句: 1、查询考试成绩前五名的分数;,SQL Server中的函数,字符串函数 日期函数 数学函数 系统函数,字符串操作,查询字符串My Accp Course中Accp的位置 查询字符串SQL Server课程的长度。 将字符串aBCDefg全部变为大写,或者全部变为小写。 去除字符串 we go home 的空格。 将字符串we are friends中的e全部替换为m,并分别截取左侧或者右侧3个字符 在字符串ABCDEFG第二个位置,删除3个字符串并

15、添加我的音乐我的世界,字符串函数,日期函数,数学函数,系统函数,案例分析1要求,某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题: 卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”; 请编写SQL语句实现以上要求; 数据库表名:Card;密码字段名:PassWord;,案例分析1分析,这是更新语句,需要使用UPDATE语句; 因为牵涉到字符串的替换,需要使用到SQL Server中的函数Replace;,案例分析1SQL,两行SQL语句,Update Card Set Pas

16、sWord = Replace(PassWord ,O,0) Update Card Set PassWord = Replace(PassWord ,i,1),一行SQL语句,Update Card Set PassWord = Replace(Replace(PassWord ,O,0),i,1),案例分析2要求,在数据库表中有以下字符数据,如: 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2 现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样:

17、 13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2 数据库表名:SellRecord;字段名:ListNumber;,案例分析2分析,这是查询语句,需要使用SELECT语句 需要使用到ORDER BY进行排序,并且在ORDER BY的排序列中,也需要重新计算出排序的数字来,案例分析2分析,前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字: Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1) 后半部

18、分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字: Convert(int, Stuff(ListNumber,1, Charindex(-, ListNumber), ),案例分析2SQL,SELECT ListNumber FROM SellRecord ORDER BY Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1), Convert(int, Stuff(ListNumber,1, Charindex(-, ListNumber), ),案例分析3要求,要求取本月的最后一天,案例分析3分析1,首先要知道如何取本月的第一天 首先要得到当前的日期和时间,使用的函数是getdate() 然后计算当前日期和“1900-01-01 00:00:00.000”这个日期之间的月数。记住:时期和时间变量和毫秒一样是从“1900-01-01 00:00:00.000”开始计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论