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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机三级数据库SQL语句大全.docx

1、计算机三级数据库SQL语句大全 2017计算机三级数据库SQL语句大全 引导语:sql 语句是对数据库进行操作的一种语言。以下是分享给大家的2017计算机三级数据库SQL语句大全,欢迎阅读! 基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server - 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:mssql7backupMyNwind_ - 开始 备份 BACKUP DATABA

2、SE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 not null primary key,col2 type2 not null,.) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2 from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add

3、 column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create unique index idxname on tabname(col.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view vie

4、wname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like %value1% -like的语法很精妙,

5、查资料! 排序:select * from table1 order by field1,field2 desc 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A

6、: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表2017计算机三级数据库SQL语句大全。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是 TABLE1 就是 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表2017计算机三级数据库SQL语句大全。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:

7、 INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行2017计算机三级数据库SQL语句大全。 SQL: select , , , , , from a LEFT OUT JOIN b ON = B:right (outer) jo

8、in: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full/cross (outer) join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 12、分组:Group by: 一张表,一旦分组 完成后,查询后只能得到组相关的信息。 组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准) 在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_d

9、b; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改数据库的名称: sp_renamedb old_name, new_name 提升 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 11(仅用于SQlServer) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b; 3、说明:跨数据库之

10、间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in 具体数据库 where 条件 例子:.from b in “&(“.”)&” &” where. 4、说明:子查询(表名1:a 表名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间 select , from table a,(select max(adddat

11、e) adddate from table where =) b 6、说明:外连接查询(表名1:a 表名2:b) select , , , , , from a LEFT OUT JOIN b ON = 7、说明:在线视图查询(表名1:a ) select * from (SELECT a,b,c FROM a) T where 1; 8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from ta

12、ble1 where a not between 数值1 and 数值2 9、说明:in 的使用方法 select * from table1 where a not in (值1,值2,值4,值6) 10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * from table2 where = ) 11、说明:四表联查问题: select * from a left inner join b on = right inner join c on = inner join d on = where

13、. 12、说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff(minute,f开始时间,getdate()5 13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 具体实现: 关于数据库 8、说明:更改某个表 exec sp_changeobjectowner tablename,dbo 9、存储更改全部表 C

14、REATE PROCEDURE _ChangeObjectOwnerBatch OldOwner as NVARCHAR(128), NewOwner as NVARCHAR(128) AS DECLARE Name as NVARCHAR(128) DECLARE Owner as NVARCHAR(128) DECLARE OwnerName as NVARCHAR(128) DECLARE curObject CURSOR FOR select Name = name, Owner = user_name(uid) from sysobjects where user_name(uid)

15、emailprotected order by name OPEN curObject FETCH NEXT FROM curObject INTO Name, Owner WHILE(FETCH_STATUS=0) BEGIN if emailprotected begin set OwnerName = OldOwner + . + rtrim(Name) exec sp_changeobjectowner OwnerName, NewOwner end - select name,NewOwner,OldOwner FETCH NEXT FROM curObject INTO Name,

16、 Owner END close curObject deallocate curObject GO 10、SQL SERVER中直接循环写入数据 declare i int set i=1 while i begin insert into test (userid) values(i) set emailprotected+1 end 案例: 有如下表,要求就表中所有没有及格的成绩,在每次增长的基础上,使他们刚好及格: Name score Zhangshan 80 Lishi 59 Wangwu 50 Songquan 69 while(select min(score) from tb

17、_table) begin update tb_table set score =score* where score if (select min(score) from tb_table)60 break else continue end 数据开发-经典 1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as /从少到多 2.数据库加密: select encrypt(原始密码) select pwdencrypt(原始密码) select pwdcompare(原

18、始密码,加密后密码) = 1-相同;否则不相同 encrypt(原始密码) select pwdencrypt(原始密码) select pwdcompare(原始密码,加密后密码) = 1-相同;否则不相同 3.取回表中字段: declare list varchar(1000), sql nvarchar(1000) select emailprotected+,+ from sysobjects a,syscolumns b where = and =表A set sql=select +right(list,len(list)-1)+ from 表A exec (sql) 4.查看硬盘

19、分区: EXEC master.xp_fixeddrives 5.比较A,B表是否相等: if (select checksum_agg(binary_checksum(*) from A) = (select checksum_agg(binary_checksum(*) from B) print 相等 else print 不相等 6.杀掉所有的事件探察器进程: DECLARE hcforeach CURSOR GLOBAL FOR SELECT kill +RTRIM(spid) FROM WHERE program_name IN(SQL profiler,NSQL 事件探查器) E

20、XEC sp_msforeach_worker ? 7.记录搜索: 开头到N条记录 Select Top N * From 表 - N到M条记录(要有主索引ID) Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc - N到结尾记录 Select Top N * From 表 Order by ID Desc 案例 例如1:一张表有一万多条记录,表的第一个字段 RecID 是自增长字段, 写一个SQL语句, 找出表的第31到第40个记录。 select top 10 recid from A

21、 where recid not in(select top 30 recid from A) 分析:如果这样写会产生某些问题,如果recid在表中存在逻辑索引。 select top 10 recid from A where是从索引中查找,而后面的select top 30 recid from A则在数据表中查找,这样由于索引中的顺序有可能和数据表中的不一致,这样就导致查询到的不是本来的欲得到的数据。 解决方案 1, 用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题 2, 在那个子查询中也加条件:s

22、elect top 30 recid from A where recid-1 例2:查询表中的最后以条记录,并不知道这个表共有多少数据,以及表结构。 set s = select top 1 * from T where pid not in (select top + str(count-1) + pid from T) print s exec sp_executesql s 9:获取当前数据库中的所有用户表 select Name from sysobjects where xtype=u and status=0 10:获取某一个表的所有字段 select name from sys

23、columns where id=object_id(表名) select name from syscolumns where id in (select id from sysobjects where type = u and name = 表名) 两种方式的效果相同 11:查看与某一个表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where = and like %表名% 12:查看当前数据库中所有存储过程 select name as 存储过程名称 from sysobjects where xtype=P 13

24、:查询用户创建的所有数据库 select * from master.sysdatabases D where sid not in(select sid from master.syslogins where name=sa) 或者 select dbid, name AS DB_NAME from master.sysdatabases where sid 0x01 14:查询某一个表的字段和数据类型 select column_name,data_type from information_ where table_name = 表名 15:不同服务器数据库之间的数据操作 -创建链接服务

25、器 exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip地址 exec sp_addlinkedsrvlogin ITSV , false ,null, 用户名 , 密码 -查询示例 select * from ITSV.数据库名.dbo.表名 -导入示例 select * into 表 from ITSV.数据库名.dbo.表名 -以后不再使用时删除链接服务器 exec sp_dropserver ITSV , droplogins -连接远程/局域网数据(openrowset/openquery/opendatasource) -1、o

26、penrowset -查询示例 select * from openrowset( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名) -生成本地表 select * into 表 from openrowset( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名) -把本地表导入远程表 insert openrowset( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名) select *from 本地表 -更新本地表 update b set b.列A=a.列A from open

27、rowset( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名)as a inner join 本地表 b on = -openquery用法需要创建一个连接 -首先创建一个连接创建链接服务器 exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip地址 -查询 select * FROM openquery(ITSV, SELECT * FROM 数据库.dbo.表名 ) -把本地表导入远程表 insert openquery(ITSV, SELECT * FROM 数据库.dbo.表名 ) select

28、 * from 本地表 -更新本地表 update b set b.列B=a.列B FROM openquery(ITSV, SELECT * FROM 数据库.dbo.表名 ) as a inner join 本地表 b on a.列A=b.列A -3、opendatasource/openrowset SELECT * FROM opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID=登陆名;Password=密码 )._ta -把本地表导入远程表 insert opendatasource( SQLOLEDB , Data Source=ip/ServerName;User ID=登陆名;Password=密码 ).数据库.dbo.表名 select * from 本地表

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

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