ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:46.33KB ,
资源ID:12101174      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12101174.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL常用的增删改查语句视屏笔记精.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SQL常用的增删改查语句视屏笔记精.docx

1、SQL常用的增删改查语句视屏笔记精SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。TSQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。SQL的分类:(1):数据定义语言,DDL用来创建数据库和数据库中的各种对象数据库中的对象包括:表、视图、索引、存储过程、触发器DDL常用的命令包括:create、alter、drop(2):数据操纵语言,DML可以完成对数据库中数据的查询、更新、删除、插入的功能DML常用的命令包括

2、:select、update、delete、insert(3)数据控制语言,DCLDCL常用的命令包括:grant、revoke、deny(4)数据类型1、数字数据类型a、整型数据类型:bigint、int、smallint、tinyintb、浮点数据类型:float、realc、固定精度数据类型:decimal、numericd、货币数据类型:money、smallmoney将数据格式转换成字符串方法:STR(ID;-ID为数据类型,STR(ID为字符串2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext区别char和varchar数据类型:char

3、数据类型是存放固定长度的字符Varchar数据类型是存放动态长度的字符char(14,实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格1、insert 语句:insert语句是属于SQL语言中的DML作用:为表插入数据你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面的四种可能:1、如果该字段有一个缺省值(默认值),该值会被使用。2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。3、如果该字段不能接受空值,而且没有缺省值,就会出现错误。你会收到错误信息:The column in table my

4、table may not be null.4、如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。使用INSERT语句可向文本型字段中插入数据。但是,如果你需要输入很长的字符串,你应该使用WRITETEXT语句。语法:insert into 表名(列名1,列名2,. values(值1,值2,.注意:(列名1,列名2,.可以不写,这样的话,插入的values(值1,值2,.中的值必须包含表中的所有列,不然会报错。把INSERT 语句与SELECT 语句结合起来,可以添加多个记录。像这样:代码:INSERT m

5、ytable (first_column,second_columnSELECT another_first,another_secondFROM anothertable WHERE another_first=Copy Me!这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为Copy Me!的记录才被拷贝。2、update 语句它也是属于SQL语句中的DML, 可以修改表的数据,使用WHERE子句来选择更新特定的记录。需要更新很长的字符串,应使用UPDATETEXT语句。如果你不提供WHERE子句,表中的所有记录

6、都将被更新。语法:update 表名 set 列名1=值1,列名2=值2,.where 条件.update student set sage=20 where sno=s014-修改一列update student set sage=20,set ssex=女 where sno=s014-修改多列逗号隔开3、delete语句也是属于SQL语句中的DML作用:可删除表中的一行或多行,在SQL SELECT 语句中可以使用的任何条件都可以在DELECT 语句的WHERE子句 中使用。删除应该表中的所有记录,应使用TRUNCATE TABLE语句。语法:delete from 表名where 条件

7、.delete from student-删除表student中所有数据delete from student where sno = s014-删除表student中编号是014的一行delete from student where sno = s013 -删除表student中编号大于等于013的行4、建立索引Create INDEX index_name ON table_name (column_name说明:对某个表格建立索引后,数据库会对相应列进行自然排序,以增加查询时的速度。4、基本查询技术:数据库中提供一种可以将表中的数据查询出来的技术,称为select查询select查询技

8、术的基本语法格式select 列名1,列名2,. | from 表名1,表名2where 条件group by分组的列名having聚合函数比较操作order by 排序的列名(1) 查询语句中的“*”号代表将表中的列全部显示出来select * from student(2) 如果只想在查询中显示某一列用:select sno sname sage from student注意:“*”和列名只能够二选一,不能够同时出现(3) 在查询的时候可以为表或者列定义别名A:为列定义别名select sno as 学号 ,sname as 姓名 from student或:select 学号=sno,

9、姓名=sname from studentB:为表定义别名select sno sname sage ssex from student a好处:当出现多张表联系起来作查询的时候,如果多张表中含有相同的列名的时候,为表定义别名使得查询比较方便例如:想查询课程是由哪些老师就是讲授的。从课程course表和老师teacher表中查找车tno列相同的数据select cname, tname, from course a , teacher bwhere a.tno = b.tno(4)distinct 关键字此关键字是为了去掉列中重复的值, 对于所有重复的数据行在SELECT返回的结果集合中只保留

10、一行。select distinct sno from sc(5)order by 排序(默认升序语法:order by 列名desc | ascdesc:代表降序排列asc 代表升序排列select *from student order by sname如果不写排序关键字,默认的是升序select *from student order by sname desc(6)where关键字使用Where作为查询筛选结果的一个过程(非常重要语法:where 条件1or | and 条件2条件1可以包括以下内容:Where 列名1 列名2 | 数值 (7top n限制返回的行数使用TOP n PE

11、RCENT选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如:代码:SELECT TOP 2 * FROM testtable代码:SELECT TOP 20 PERCENT * FROM testtable条件表达式分类:1、 比较条件:(:大于 =:大于等于 =:小于等于 :不等于 =:登于)例如:找学生年龄大于23岁的同学信息select *from student where sage232、 逻辑条件(and:与运算 or:或运算 not:非)逻辑操作的用法:Where 条件1 条件2 例如:

12、查找课程编号大于c002的课程由哪些老师讲授sSelect *from teacher ,course where teacher.tno = course.tno and o c002例如:查找选修了课程c002,或者成绩大于70的学生有哪些select sname , sage , cno ,score from student a , sc b where a.sno = b.sno and (cno=c002 or score70例如:not关键字的使用:select *from sc where score not between 70 and 803、 in关键字它是要求查询的结果

13、在某几个值里面select *from sc where score not in(70,90,80select *from course where cno in (c001,c002,c005in还可以应用到子查询中select *from sc where sno in (select sno from student where sno = s0024、 like关键字like是作为SQL模糊查询比较常用的一个技术,在like关键字使用中提出两个比较特殊的符号%:0个或多个任意字符_:任意一个字符例如:a、查找学生表中姓“陈”的同学select * from student where

14、 sname like 陈%b、查询学生表中名字是三个字的学生信息select * from student where sname like _ -内三下杠思考题:如果一个列中的内容含有下划线,要去用like来查找含有下划线的信息,该怎么做?在SQL模糊查询中提供了一个escape(逃离、躲避、转移关键字,它作为转义符使用select *from student where sname like %$_% escape $“$”是定义的转移符号,那么在$符号后面的下划线不再是like中的特殊符号,而是一个普通字符5、 all关键字6、 any关键字7、 betweenand 关键字5、聚合函

15、数:只能对表中的数字类型进行计算,其他类型报错max、min、count、avg、summax函数使用:select max(sage from student-求学生表中最大的年龄min函数使用:select min(sage from student-求学生表中最小的年龄count函数使用:select count (*from studentselect count (snofrom studentcount(*:可以计算包含null列的记录数count(列名:记录总记录数的时候,不去计算null值avg函数的使用:select avg(sage from student-求学生表中的平

16、均年龄sum函数的使用:select sum(sage from student-求学生表中的年龄和6、group by子句,它是一个分组函数,可以对某一列相同的值进行分组并求出相应的结果。语法:Select 列名1 ,列名2. from 表名 group by 列名1,列名2例如:求学生表中男女生的总数Select ssex ,count(ssex from student group by ssex例如:求不同老师总共讲授的课程的总数A. 两张表的查询teacher,courseB. 对不同的老师进行一个分组C. 分组后求课程的总数Select t.tno , tname , count(

17、cno from teacher t , course cwhere t.tno = c.tno group by t.tno , tnamegroyp by 执行原理、注意事项:a. 先根据group by 后的列名进行分组b. 然后根据count(列名中的列名进行统计c. group by子句经常和聚合函数一起使用d. 在使用group by的时候,如果查询的列没有包含在聚合函数中,那么该列一定要出现在group by子句后面7、 having子句使用having子句的作用非常重要,它是对聚合函数的值可以进行比较的操作。Having必须放在group by 子句的后面。例如:查询讲两门课以

18、上的老师信息Select t.tno , tname , count(cno from teacher t , course cWhere t.tno = c.tno group by t.tno , t.name having count(cno =2创建表的语法creat table 表名(列名_1 数据类型 约束条件列名_2 数据类型 约束条件)注意:如果定义的表中有多个列,那么需要以英文逗号”,”隔开;表名和列名不能是SQL语言中的关键字Numeric(p,nP代表数字类型的精度,插入数据的的最大长度。整数位多了会报错n代表小数点后面的位数。小数后的位数长度超过n为会四舍五入creat

19、 table A_2(a_no numeric(5,2 /最大长度为5位,小数点后为两位,insert into A_2 (a_no values (789.298 /789.30insert into A_2 (a_no values (7890.28 /报错插入日期类型creat table A_3(a_date datatimeinsert into A_3 values (2011-04-02查询表:select *from 表名select *from A_21、 SQL链接查询含义:复杂的SQL查询是基于多张表以上的查询,就必须考虑多张表的连接查询是关系数据库模型的主要特点,也是它

20、区别于其它类型数据库管理系统的一个标志。SQL链接查询的分类:等值链接 外连接 交叉链接等值链接:两个SQL语句:第一个:select tname , cname from teacher t , course c where t.tno = c.tno第二个:select tname , cname from teacher t inner join course c on t.tno=c.tno查询学生所选的课程的分数,要求跟上学生的姓名:select a.sno , sname , o , cname , score from student asc b , course c where

21、 a.sno = b.sno and o = o注意:第二个SQL语句是SQL 92/SQL 99的写法,这种写法叫做连接查询中的内连接形式外连接:包括:左外链接、右外连接、完全链接外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时、右表(右外连接时或两个表(全外连接时中所有符合搜索条件的数据行。使用外连接需要一些关键字:left outer join on (左外连接right outer join on (右外连接full outer join on (完全连接的写法例子:select *from 表1 left outer join 表2 on 表1.列名=表2.列名creat

22、 table R(a varchar(5b varchar(5c varchar(5creat table S(c varchar(5d varchar(5left outer join的含义:除了满足查询条件的结果显示出来,还需将left outer join左侧表中没有匹配的数据显示出来外连接实战应用:1、 查询所有同学的学号、姓名、选课数、总成绩如果没有选课的学生信息,是否也要打印出来作为统计数据select a.sno , sname , count(cno , sum(scorefrom student a left outer join sc con a.sno = c.sno g

23、roup by a.sno , sname2、查询不同老师所教不同课程的平均分select t.tno , tname , o , avg(score from course cleft outer join sc on o = o group by o , t.tno , tnameright outer join的含义:除了满足查询条件的结果显示出来,还需将right outer join右侧表中没有匹配的数据显示出来1、 查询所有同学的学号、姓名、选课数、总成绩如果没有选课的学生信息,是否也要打印出来作为统计数据select a.sno , sname , count(cno , sum

24、(score from sc c right outer join student aon a.sno = c.sno group by a.sno , sname2、查询不同老师所教不同课程的平均分select t.tno , tname , o , avg(score from scright outer join course c on o = o group by o , t.tno , tnamefull outer join的含义:就是左外连接和有外链接结果的和select *from R full outer join on S on R.c = S.c连接操作中的ON (joi

25、n_condition 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:代码:SELECT p1.pub_id,p2.pub_id,p1.pr_infoFROM pub_info AS p1 INNER JOIN pub_info AS p2ON DATALENGTH(p1.pr_info=DATALENGTH(p2.pr_info(一内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。SQL的子查询1、 where子查询selec

26、t cno , score from sc where score (select avg (score from scwhere子查询后面的条件允许写select语句,那么这个限制条件(“”符号)后的查询称为子查询。2、 from子查询结构:select *from 表名1 , (select *from 表名2例如:查询每个学生的课程、成绩、总平均分select cno , score , b.cc from sc,(select avg(score as cc from sc bwhere sc.虚表命名为b,查询出来的平均分命名为cc在from关键字后面出现的查询句子,我们可以让他单独

27、的作为一张虚表。3、 in子查询它是要求查询的结果在某几个值里面select *from sc where score not in(70,90,80select *from course where cno in (c001,c002,c005in还可以应用到子查询中select *from sc where sno ABin (select sno from student where sno = s0024、 any子查询any:大于最小的=any:就是关键字in的作用select * | 列名1 , 列名 , 列名2.from 表名 where 列名 any 比较条件(子查询selec

28、t * | 列名1 , 列名 , 列名2.from 表名 where 列名 select * | 列名1 , 列名 , 列名2.from 表名 where 列名 =any 比较条件(子查询例如:查询学生成绩大于70,且出去里面最小的学号select distinct a.sno , sname from student a , sc bwhere a.sno = b.sno and b.sno 70and a.sno any (select sno from sc where score 705、 all子查询语法格式:select * | 列名1 , 列名 , 列名2.from 表名 whe

29、re 列名 all 比较条件(子查询select * | 列名1 , 列名 , 列名2.from 表名 where 列名 select * | 列名1 , 列名 , 列名2.from 表名 where 列名 =all 比较条件(子查询all:大于子查询结果中最大的数据子查询结果中 最小的 数据 =all:没有任何数据S elect * from student where sno all(select sno from sc where score 70 6、 嵌套子查询7、 exists子查询允许查找特定条件的行,exists后面总是跟一个子查询,只要只查询返回了行,exists的值就为tr

30、ue。例:查询返回在任何一次考试中分数低于40分得学生studentID和姓名select studentID , name from student s where exists(select studentID from studentExam e Where mark40 and e.studentID = s.studentID;这里的基础是一个相关子查询返回分数低于40分得学生的studentID:select studentID from studentExam e Where mark40对student表中的每一行只执行一次and e.studentID = s.studentID2.5 修改表:修改表的时候一般有如下操作:1、 修改表中的数据类型2、 为表添加列3、 ABC4、 为表添加约束5、 删除表的约束第一种:为表添加列alter table 表名 add 列

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1