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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

SQL简略教程.docx

1、SQL简略教程1.创建数据库create database bvtc_db -数据库名on primary -在主文件组中指定文件.默认为第一个文件(name=bvtc_db_data, -指定主数据文件名称(逻辑名)filename=F:bvtc_db_data.mdf, -指定主文件的操作系统文件名称和路径.必须为安装SQL服务器的计算机上的文件夹.(物理文件名)size=5MB, -初始容量大小maxsize=20MB, -最大容量filegrowth=20% -文件增长量(默认时为10%,不能超过maxsize)log on -指定建立数据库的事务日志文件,文件扩展名为:ldf(nam

2、e=bvtc_db_log, - 指定事务日志文件逻辑名称filename=F:bvtc_db_log.ldf,-指定物理文件名size=10MB, -初始容量大小filegrowth=2MB -文件增长量)collate Chinese_PRC_CI_AS -指定默认排序方法GO2.查看数据库信息除了直接查看数据库属性外,我们以用系统存储过程式sp_helpdb:exec sp_helpdb bvtc_db -exec为执行语句,bvtc_db为数据库名3.管理数据库 (1)打开或切换数据库: use bvtc_db (2)修改数据库容量:可以直接在数据库属性里改,也可以用如下语句: use

3、 bvtc_db go alter database bvtc_db modify file ( name=bvtc_db_data,-同样也可以是事务日志文件(bvtc_db_log) size=20MB ) (3)缩减数据库容量: 方法1:右击数据库名-所有任务-收缩数据库 方法2: dbcc shrinkdatabase(database_name,new_size,masteroverride) 实例: use bvtc_db go exec sp_dboption bvtc_db,single user,TRUE -在缩减数据库前要将其设为单用户模式. go dbcc shrinkd

4、atabase(bvtc_db) -此处将数据库缩减到最小容量. go exec sp_dboption bvtc_db,single user,FALSE go (4).设定修改数据库选项: 方法1:数据库属性,选项 方法2: (1)查看数据库选项:exec sp_dboption database_name (2)修改数据库选项:exec sp_dboption database_name,option_name,true|false 实例:更改数据库bvtc_db为只读状态: exec sp_dboption bvtc_db,read only,true go (5)更改数据库名称: e

5、xec sp_renamedb oldname,newname -权限仅限于sa 实例:将数据库bvtc_db改名为bvtc1_db exec sp_dboption bvtc_db,read only,false go exec sp_renamedb bvtc_db,bvtc_db1, go (6)删除数据库: drop database database_name1,database_name2. 或:exec sp_dbremove database_name -这是利用系统存储过程. 实例:将bvtc_db数据库删除: Use master drop database bvtc_db

6、 go4.数据库表的操作(1)创建表: 在数据库student创建学生表 use student go create table 学生 (学号 char(12) constraint pk_xh primary key, -设定学号为该表的主键. 姓名 char(8) not null,-不充许为空. 性别 char(2), 出生日期 datetime, 入学时间 datetime, 班级代码 char(9) constraint fk_bjdm references 班级(班级代码), -将班级代码设为此表的外键. 专业代码 char(2), 系部代码 char(2) ) on stugro

7、up1 -将学生表创建在stugroup1文件组上. go(2)修改表:使用alter table语句可以对表的结构和约束进行修改. 实例:在学生表中增加家庭住址一列,数据类型为varchar(30),不允许为空. use student go alter table 学生 add 家庭住址 varchar(30) not NULL -add为增加列或约束的子句. go 在学生表中修改家庭住址一列为varchar(50),允许为空. use student go alter table 学生 alter column 家庭住址 varchar(50) NULL -alter column为修改

8、表列属性的子句. go 删除字段 use student go alter table 学生 drop column 家庭住址 go(3)删除表: use student go drop table 学生 go(4)数据的添加与表的查看. 向表中添加数据: insert into tablename(字段1,字段2,.) values(value1,value2,.) use student go insert 学生 - 表名 (学号,姓名,家庭住址) -所要插入的列名 values(001,种子张,我家) -所插入的值 如果是按顺序逐个列插入数据,则可以省略列名. 还可以将select查询结

9、果插入到表中: insert into tablename1 (字段1,字段2,.) select 字段1,字段2. from tablename2 例:insert into 系部1 (系部代码,系部名称,系部主任) select 系部代码,系部名称,系部主任 from 系部 go(5)数据的修改:updateupdate table_name set Column_Name=* where ID=* 实例:根据教学计划表中的课程号,专业代码和专业学级修改教师任课表中的起始周,结束周列的值. use student go update 教师任课 set 教师任课.起始周=教学计划.起始周,教

10、师任课.结束周=教学计划.结束周 from 教学计划 where 教学计划.课程号=教师任课.课程号 and 教学计划.专业代码=教师任课.专业代码 and 教学计划.专业学级=教师任课.专业学级(6)数据的删除: delete语句,Delete table_name 删除表格记录会把操作记录在日志中,可以通过事务回滚来恢复删除的数据delete from table_name where 条件 实例:删除课程注册表中姓名为种子张的课程号为001的选课信息. use student go delete 课程注册 from 学生 where 学生.姓名=王丽 and 课程注册.专业代码=001

11、go truncate table tablename清空表格,删除表格记录不可恢复.5.简单查询. (1)select语句的主要格式. select select_list into new_table_name -指定使用结果集来创建一个新的数据表,表名为:new_table_name from table_list where search_conditions Group by group_by_list -将结果集按照group_by_list列分组. having search_conditions order by order_listasc|desc - asc为升序(默认),

12、desc为倒序. (2)实例: 查询学生表中全体学生的记录 * use student go select * from 学生 go 为结果集指定别名 as use student go select 姓名,year(getdate()-year(出生日期) as 年龄 from 学生 -注意是用as ,年龄即为别名. go 选择表中不重复的记录 distinct use student go select distinct 姓名 from 学生表 go 限制返回行数 top 限制返回行数 选取第一条记录:select top 1* from table_name 选取前N条记录: selec

13、t top N* from table_name 选取最后一条记录:select top 1* from table_name order by column_name desc 选取最后N条记录:select top N* from table_name order by column_name desc 选取任意一条记录(随机):select top 1* from table_name order by newid() (3)查询满足条件的元组(常与where联用) 查询条件: 比 较: =,=,!=,!,!;not+上述运算符 确定范围: between and,not between

14、 and 判断是否在范围内 确定集合: in,not in判断是否为列表中的值 字符匹配: like,not like 判断是否与指定的字符通配格式相符 空 值: is null,not is null 判断是否为空 多重条件: and,or,not 用于多重判断 实例:1.查询学生表中出生日期在1980-01-01和1982-01-01之间的学生姓名 select 姓名 from 学生 where 出生日期 between 1980-01-01 and 1982-01-01 .字符匹配. not like escape 其中,匹配串可以是一个完整的字符串,也可以是与通配符组成的字符串.通配符

15、有:%,_, ,四种.%表示任意个字符如a%b表示以a开头,b结尾的任意个字符.,_表示任意一个字符, 表示方括号里的任意一个字符如abcde表示以a头,bcde中任一个结尾的字符串.表示不取方括号里的值. 实例:查询学生表中姓王的同学的所有信息. select * from 学生 where 姓名 like 王% 如果要查询的字符本身就含有%,_等就要使用escape短语对通配答进行转义了. 例:要查询delphi_2.9 where 课程名 like delphi/_2.9 escape/表示匹配字符串中紧跟在/之后的字符_不再是通配符. 涉及空值的查询. not is null 实例:查

16、询班级表中备注为空的班级信息. select * from 班级 where 备注 is null -is不能用=代替. 对查询结果进行排序 asc升序(默认),desc降序. 实例:查询选修了课程号为001的课程的学生学号.按成绩降序排列. select 学号,成绩 from 课程注册 where 课程号=001 order by 学号 asc,成绩 desc -有多个排序,先排前面的,相同则排后面的.4)对数据进行统计. 集合函数:count(distinct|all*)统计记录个数. count(distinct|all)统计一列中值的个数. sum(distinct|all 计算一列值

17、的总和(必须为数据类型). avg,max,min分别求一列值中的平均数,最大值,最小值. 实例:返回学生表中学生总人数. select count(*) as 学生人数 from 学生 返回一列的平均数 select avg(成绩) as 平均分 from 课程注册 对结果进行分组. group by 列名 having 筛选条件表达式 使用compute子句 格式如下:compute 集合函数 by 列名 -分类汇总.它显示详细记录,group by不显示。 其中,集合函数:sum(),avg(),count()等. select * from 课程注册 order by 学号 compu

18、te sum(成绩)by 学号 (5)用查询结果生成新表 select into select * into 课程注册副表 from 课程注册 创建空副表: select * into 学生副表 from 学生表 where 1=2 (6)合并结果集 union 将多个查询结果集合并为一个结果集select 语句 union select 语句,.n 各个结果集列数必须相同,对应数据类型也要相同.最后结果集返回第一个select语句. 实例:查看“课程注册”表中选修了001课程或者选修了002课程的学生,也就是选择两者的并并集. select * from 课程注册where 课程号=001

19、union select * form 课程注册 where 课程号=002 (7)连接查询cross join(并集) select 列名列表from table_name1 cross join table_name2 实例:select * from 产品 cross join产品销售 (8)等值与非等值连接查询连接条件:表名1.表名.其中比较运算符有=,=,. 格式:select列名列表 from table_name1 inner table_name2 on table_name1.列名=table_name2.列名 -inner指定为内连接,可以省. (on 主键=外键)实例:s

20、elect * from 产品 inner join 产品销售 on 产品.产品编号=产品销售.产品编号 -inner join为交集,不同于cross join自然连接:在等值连接中,把目标列中重复的属性列去掉则为自然连接. (9)自身连接查询 实例:查询选修了两门或两门以上课程的学生学号和课程号 select a.学号,a.课程号 from 课程注册 as a join 课程注册as b on a.学号=b.学号 and a.课程号=b.课程号(10)外连接查询(分为左外连接,右外连接和全外连接) .左外连接(table_name1在左边) Select * from table_name

21、1 left outer join table_name2 on table_name1.column_name=table_name2.column_name .右外连接(把left 改为right就行了) .全外连接(触类旁通,left 改为 full)将左表所有记录分别与右表的每一条记录进行连接组合,结果集中不满足连接条件的以null显示出来. (11)复合连接条件查询. 实例:查询成绩在75分以上的学生的学号,姓名,选修课的课程号,课程名,专业代码,成绩,任课老师的教师编号,姓名.select b.课程号,c.教师编号,c.姓名,a.学号,b.专业代码,b.专业学级,b.学期,b.成绩

22、from 学生 as a join 课程注册 as b on a.学号=b.学号 and b.成绩75 join 教师 as c (12)子查询 (查询块的嵌套)select *from 产品 where 产品编号 in (select 产品编号from 产品销售)-()内为子查询,其中in可以改为比较运算符. (13)带有any或all运算符的子查询. 实例:查询比1班中所有学生年龄都要小的其它班上的学生学号与姓名select 学号,姓名 from 学生 where 出生日期all (select 出生日期 from 学生 where 班级代码=1) and 班级代码1 (14)带有exists,not exists运算符的子查询.不返回任何数据,只产生逻辑true,false. 实例:查询所有选修了1课程的学生姓名select 学号,姓名from 学生 whereexists (select * from 课程注册 where 学号=学生.学号 and 课程号=1 )触发器入门创建一个简单的触发器触发器是一种特殊的存储过程,类似于事件函数,SQL Server 允许为 INSERT、UPDATE、DELETE 创建触发器,即当在表中插入、更新、删除记录时,触发一个或一系列 T-SQL语句。触发器可以在查询分析器里创建,也可

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

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