《2022年数据库基本SQL语句大全.pdf》由会员分享,可在线阅读,更多相关《2022年数据库基本SQL语句大全.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库基本SQL语句大全数据库基本 SQL语句大全数据库基本 -SQL 语句大全一、基础1、说明 : 创建数据库Create DATABASE database-name 2、说明 : 删除数据库drop database dbname 3、说明 : 备份 sql server - 创建备份数据的device USE master EXEC sp_addumpdevice disk, testBack, c:mssql7backupMyNwind_1、 dat - 开始备份BACKUP DATABASE pubs TO testBack 4、说明 : 创建新表create table tabn
2、ame(col1 type1 not null primary key,col2 type2 not null , 、 ) 根据已有的表创建新表: A:create table tab_new like tab_old ( 使用旧表创建新表) B:create table tab_new asselect col1,col2from tab_old definition only 5、说明 : 删除新表drop table tabname 6、说明 : 增加一个列Alter table tabname add column col type 注: 列增加后将不能删除。DB2中列加上后数据类型也
3、不能改变, 唯一能改变的就是增加 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 viewname asselect statemen
4、t 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全删除视图 :drop view viewname 10、说明 : 几个简单的基本的sql 语句选择 :select * from table1 where 范围插入 :insert into table1(field1,field2) values(value1,value2) 删除 :delete from table1 where 范围更新 :update table
5、1 setfield1=value1 where 范围查找 :select * from table1 where field1 like %value1%-like的语法很精妙, 查资料 ! 排序 :select * from table1 order by field1,field2 desc 总数 :select count astotalcount from table1 求与 :select sum(field1) assumvalue from table1 平均 :select avg(field1) asavgvalue from table1 最大 :select max(f
6、ield1) asmaxvalue from table1 最小 :select min(field1) asminvalue from table1 11、说明 : 几个高级查询运算词A: UNION 运算符UNION 运算符通过组合其她两个结果表( 例如TABLE1 与TABLE2)并消去表中任何重复行而派生出一个结果表。当ALL 随UNION 一起使用时 ( 即UNION ALL), 不消除重复行。两种情况下, 派生表的每一行不就是来自TABLE1 就就是来自TABLE2 。B: EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重
7、复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL), 不消除重复行。C: INTERSECT 运算符INTERSECT 运算符通过只包括TABLE1 与TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时(INTERSECT ALL), 不消除重复行。注 : 使用运算词的几个查询结果行必须就是一致的。12、说明 : 使用外连接A、left outer join: 左外连接 (左连接 ): 结果集几包括连接表的匹配行, 也包括左连接表的所有行。SQL: select a、a, a、b, a、c, b、c, b、d
8、, b、f from a LEFT OUT JOIN b ON a、a = b、c B:right outer join: 右外连接 (右连接 ): 结果集既包括连接表的匹配连接行, 也包括右连接表的所有行。C:full outer join: 全外连接 : 不仅包括符号连接表的匹配行, 还包括两个连接表中的所有记录。二、提升精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全1、说明 : 复制表 ( 只复制结构 , 源表名
9、:a 新表名 :b) (Access可用 ) 法一 :select * into b from a where 11 法二 :select top 0 * into b from a 2、说明 : 拷贝表 ( 拷贝数据 , 源表名 :a 目标表名 :b) (Access可用 ) insert into b(a, b, c) select d,e,f from b; 3、说明 : 跨数据库之间表的拷贝(具体数据使用绝对路径) (Access 可用 ) insert into b(a, b, c) select d,e,f from b in具体数据库where 条件例子 : 、 from b i
10、n&Server、MapPath( 、&data、mdb & 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 a、title,a、username,b 、adddate from table a,(select max(adddate) adddate from table where table 、title=a、title) b
11、6、说明 : 外连接查询 ( 表名 1:a 表名 2:b) select a、 a, a、 b, a、 c, b、 c, b、 d, b、 f from a LEFT OUT JOIN b ON a、a = b、c 7、说明 : 在线视图查询( 表名 1:a select * from (Select a,b,c FROM a) T where t 、a 1; 8、说明 :between的用法 ,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2 select
12、a,b,c, from table1 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 table1 、field1=table2、field1 11、说明 : 四表联查问题: select * from a left inner join b
13、on a、a=b、b right inner join c on a、a=c、c inner join d on a、a=d、d where 、精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全12、说明 : 日程安排提前五分钟提醒select * from 日程安排where datediff(minute,f开始时间 ,getdate()5 13、说明 : 一条 sql 语句搞定数据库分页select top 10 b、
14、 * from (select top 20 主键字段 , 排序字段from 表名order by 排序字段desc) a, 表名b where b、主键字段= a、主键字段order by a、排序字段14、说明 : 前 10 条记录select top 10 * form table1 where 范围15、 说明 : 选择在每一组b 值相同的数据中对应的a 最大的记录的所有信息( 类似这样的用法可以用于论坛每月排行榜, 每月热销产品分析, 按科目成绩排名, 等等、 ) select a,b,c from tablename ta where a=(select max(a) from t
15、ablename tb where tb 、b=ta 、b) 16、 说明 : 包括所有在TableA 中但不在TableB 与 TableC 中的行并消除所有重复行而派生出一个结果表(select a from tableA except (select a from tableB) except (select a from tableC) 17、说明 : 随机取出10 条数据select top 10 * from tablename order by newid() 18、说明 : 随机选择记录select newid() 19、说明 : 删除重复记录Delete from table
16、name where id not in(select max(id) from tablename group by col1,col2,) 20、说明 : 列出数据库里所有的表名select name from sysobjects where type=U 21、说明 : 列出表里的所有的select name from syscolumns where id=object_id(TableName) 22、说明 : 列示 type 、vender 、 pcs 字段 , 以 type 字段排列 ,case可以方便地实现多重选择 , 类似 select 中的 case 。select ty
17、pe,sum(casevender when A then pcs else0 end),sum( casevender when C then pcs else0 end),sum( casevender when B the精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全n pcs else0 end) FROM tablename group by type 显示结果 : type vender pcs 电脑A 1
18、电脑A 1 光盘B 2 光盘A 2 手机B 3 手机C 3 23、说明 : 初始化表table1 TRUNCATE TABLE table1 24、说明 : 选择从 10 到 15 的记录select top 5 * from (select top 15 * from table order by id asc) table_ 别名order by id desc 三、技巧1、1=1,1=2 的使用 , 在 SQL语句组合时用的较多“where 1=1”就是表示选择全部“where 1=2”全部不选 , 如: ifstrWhere != begin setstrSQL = select co
19、unt(*) as Total from + tblName + where + strWhere end elsebegin setstrSQL = select count(*) as Total from + tblName + end 我们可以直接写成setstrSQL = select count(*) as Total from + tblName + where 1=1 安定+ strWhere 2、收缩数据库- 重建索引DBCC REINDEX 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -
20、第 5 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全DBCC INDEXDEFRAG - 收缩数据与日志DBCC SHRINKDB DBCC SHRINKFILE 3、压缩数据库dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在用户权限exec sp_change_users_login update_one,newname,oldname go 5、检查备份集RESTORE VERIFYONLY from disk=E:dvbbs、bak 6、修复数据库Alter DATABASE dvbbs SET SINGLE_US
21、ER GO DBCC CHECKDB(dvbbs,repair_allow_data_loss) WITH TABLOCK GO Alter DATABASE dvbbs SET MULTI_USER GO 7、日志清除SET NOCOUNT ON DECLARE Logical sysname, MaxMinutes INT, NewSize INT USE tablename - 要操作的数据库名Select Logical = tablename_log, - 日志文件名MaxMinutes = 10, - Limit on time allowed to wrap log 、NewSi
22、ze = 1 - 您想设定的日志文件的大小(M) - Setup / initialize DECLARE OriginalSize intSelect OriginalSize = size FROM sysfiles Where name = Logical Select Original Size of + db_name() + LOG is + CONVERT(VARCHAR(30),OriginalSize) + 8K pages o精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共
23、9 页 - - - - - - - - - - 数据库基本SQL语句大全r + CONVERT(VARCHAR(30),(OriginalSize*8/1024) + MB FROM sysfiles Where name = Logical Create TABLE DummyTrans (DummyColumn char(8000) not null ) DECLARE Counter INT, StartTime DATETIME, TruncLog VARCHAR(255) Select StartTime = GETDATE(), TruncLog = BACKUP LOG + db
24、_name() + WITH TRUNCATE_ONLY DBCC SHRINKFILE (Logical, NewSize) EXEC (TruncLog) - Wrap the log ifnecessary 、WHILE MaxMinutes DATEDIFF (mi, StartTime, GETDATE() - time has not expired AND OriginalSize = (Select size FROM sysfiles Where name = Logical) AND (OriginalSize * 8 /1024) NewSize BEGIN - Oute
25、r loop 、Select Counter = 0 WHILE (Counter OriginalSize / 16) AND (Counter 50000) BEGIN - update Insert DummyTrans VALUES (Fill Log) Delete DummyTrans Select Counter = Counter + 1 END EXEC (TruncLog) END Select Final Size of + db_name() + LOG is + CONVERT(VARCHAR(30),size) + 8K pages or + CONVERT(VAR
26、CHAR(30),(size*8/1024) + MB FROM sysfiles Where name = Logical Drop TABLE DummyTrans SET NOCOUNT OFF 8、说明 : 更改某个表exec sp_changeobjectowner tablename,dbo 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全9、存储更改全部表Create PROCEDURE dbo、User_C
27、hangeObjectOwnerBatch OldOwner asNVARCHAR(128), NewOwner asNVARCHAR(128) AS DECLARE Name asNVARCHAR(128) DECLARE Owner asNVARCHAR(128) DECLARE OwnerName asNVARCHAR(128) DECLARE curObject CURSOR FOR select Name = name, Owner = user_name(uid) from sysobjects where user_name(uid)=OldOwner order by name
28、 OPEN curObject FETCH NEXT FROM curObject INTO Name, Owner WHILE(FETCH_STATUS=0) BEGIN ifOwner=OldOwner begin setOwnerName = OldOwner + 、 + rtrim(Name) exec sp_changeobjectowner OwnerName, NewOwner end - select name,NewOwner,OldOwner FETCH NEXT FROM curObject INTO Name, Owner END close curObject dea
29、llocate curObject GO 10、SQL SERVER 中直接循环写入数据declare i intseti=1 whilei30 begin insert into test (userid) values(i) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 9 页 - - - - - - - - - - 数据库基本SQL语句大全seti=i+1 end 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 9 页 - - - - - - - - - -