精妙Sql语句

1.  判断a表中有而b表中没有的记录

select a.* from tbl1 a
left join tbl2 b on a.key = b.key
where b.key is null

虽然使用in也可以实现,但是这种方法的效率更高一些

2.  新建一个与某个表相同结构的表

select * into b

from a where 1<>1

3.between的用法,between限制查询数据范围时包括了边界值,not between不包括

select * from table1 where time between time1 and time2

select a,b,c, from table1 where a not between 数值1 and 数值2

4. 说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

(select a from tableA ) except (select a from tableB) except (select a from tableC)

5. 初始化表,可以将自增长表的字增长字段置为1

TRUNCATE TABLE table1

6.多语言设置数据库或者表或者order by的排序规则

--修改用户数据库的排序规则

ater database dbname collate SQL_Latin1_General_CP1_CI_AS

--修改字段的排序规则

alter table a alter column c2 varchar(50) collate SQL_Latin1_General_CP1_CI_AS

--按姓氏笔画排序

select * from 表名 order by 列名 Collate Chinese_PRC_Stroke_ci_as

--按拼音首字母排序

select * from 表名 order by 列名 Collate Chinese_PRC_CS_AS_KS_WS

7.列出所有的用户数据表:

SELECT TOP 100 PERCENT o.name AS 表名

FROM dbo.syscolumns c INNER JOIN

dbo.sysobjects o ON o.id = c.id AND objectproperty(o.id, N‘IsUserTable‘) = 1 AND

o.name <> ‘dtproperties‘ LEFT OUTER JOIN

dbo.sysproperties m ON m.id = o.id AND m.smallid = c.colorder

WHERE (c.colid = 1)

ORDER BY o.name, c.colid

8.列出所有的用户数据表及其字段信息:

SELECT TOP 100 PERCENT c.colid AS 序号, o.name AS 表名, c.name AS 列名,

t.name AS 类型, c.length AS 长度, c.isnullable AS 允许空,

CAST(m.[value] AS Varchar(100)) AS 说明

FROM dbo.syscolumns c INNER JOIN

dbo.sysobjects o ON o.id = c.id AND objectproperty(o.id, N‘IsUserTable‘) = 1 AND

o.name <> ‘dtproperties‘ INNER JOIN

dbo.systypes t ON t.xusertype = c.xusertype LEFT OUTER JOIN

dbo.sysproperties m ON m.id = o.id AND m.smallid = c.colorder

ORDER BY o.name, c.colid

9.Left,right Join的另外一种简洁的写法

select * from a,b where a.id *= b.id  --(*= 相当于 LEFT JOIN)

select * from a,b where a.id =* b.id  --(=* 相当于 Right JOIN)

10.Update from 和 delete from

11.得到表中最小的未使用的ID号

SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1)

THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID

FROM Handle

WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)

12.随机取得记录

SELECT TOP 10 * FROM T1 ORDER BY NEWID()

时间: 2024-10-25 22:15:36

精妙Sql语句的相关文章

精妙SQL语句 基础

精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句,整理一份<精妙SQL速查手册>,不吝赐教! 一.基础1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname 3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC s

精妙sql语句_学习

说明:复制表(只复制结构,源表名:a 新表名:b) SQL: select * into b from a where 1<>1 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) SQL: insert into b(a, b, c) select d,e,f from b; 说明:显示文章.提交人和最后回复时间 SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from ta

精妙SQL语句收集(转)

SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作. 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server — 创建 备份数据的 device USE master EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:/mssql7backup/MyNwind_1.dat’ — 开始 备份 B

精妙SQL语句大全

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建

Oracle SQL精妙SQL语句讲解(二)

- 如果存在就更新,不存在就插入用一个语句实现 DROP TABLE t_mg; CREATE TABLE t_mg(code VARCHAR2(10), NAME VARCHAR2(10)); SELECT * FROM t_mg; MERGE INTO t_mg a USING (SELECT 'the code' code, 'the name' NAME FROM dual) b ON (a.code = b.code) WHEN MATCHED THEN UPDATE SET a.NA

Oracle SQL精妙SQL语句讲解(一)

DROP TABLEt_change_lc; CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER); INSERT INTOt_change_lc SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dualCONNECT BY ROWNUM <= 4 UNION SELECT '002' card_code, R

精妙T-SQL语句收集

SQL语句收集 1.查看SQL Server版本 SELECT SERVERPROPERTY('productversion') SELECT SERVERPROPERTY('productlevel') SELECT SERVERPROPERTY('edition') SELECT @@VERSION 2.查询Proc或是View内容 proc: select name,textfrom  sys.procedures a,sys.syscomments b where a.object_id

sql语句集锦

-语 句--           --功 能-- --数据操作select             --从数据库表中检索数据行和列insert             --向数据库表添加新数据行delete             --从数据库表中删除数据行update             --更新数据库表中的数据 --数据定义create table       --创建一个数据库表drop table         --从数据库中删除表alter table        --修改数据

标准sql语句,学习

标准SQL语句总结标准SQL语句总结,标准SQL语言基本上适用于下面所列出的数据库软件 ----------------------------------------------------------------------------- 数据库软件清单 A商业数据库软件如下 1.微软的MS SQL Server和Access 2.IBM的DB2,informax 3.Sybase的大型数据库ASE,中小型数据库ASA 4.甲骨文公司的Oracle8.0,oracle9i系列 5.Borla