澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

精妙SQL语句收集,数据库小结1

在SQLServer中分组时:不能够以text,ntext,image类型的字段作为分组依附

SQL 语句大全,sql语句大全

创制数据库

创造以前决断该数据库是或不是存在

if exists (select * from sysdatabases where name='databaseName') 

drop database databaseName

go

Create DATABASE databasename

删除数据库

drop database databasename

备份sql server

创设备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'

--- 开头备份

BACKUP DATABASE pubs TO testBack

成立新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

依照已有的表创立新表:

A:go 

use 原数据库名

go 

select * into 目标数据库名.dbo.目标表名 from 原表名(使用旧表成立新表)

B:create table tab_new as select col1,col2… from tab_old definition only

创设系列

create sequence SIMON_SEQUENCE 

minvalue 1 -- 最小值 

maxvalue 999999999999999999999999999 -- 最大值

start with 1 -- 开始值

increment by 1 -- 每回加几
cache 20;

删除新表

drop table tabname

扩大贰个列

Alter table tabname add colname coltype

删除多个列

Alter table tabname drop column colname

增多主键

Alter table tabname add primary key(col)

表达:删除主键:Alter table tabname drop primary key(col)

创造索引

create [unique] index idxname on tabname(col…。)

删除索引

drop index idxname on tabname

注:索引是不可改换的,想更动必需删除重新建。

创造视图

create view viewname as select statement

删除视图

drop view viewname

 

差非常的少基本的sql语句

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select top 10 * from 数据表 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表明式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表明式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表明式" 

sql="delete from 数据表" (将数据表全部记录删除)

(4) 加多数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"

sql="insert into 指标数据表 select * from 源数据表" (把源数据表的记录增加到目的数据表)

(5) 数据记录计算函数:

AVG(字段名)          得出二个表格栏平均值

COUNT(*;字段名)   对数码行数的总计或对某一栏有值的数据行数计算

MAX(字段名)         获得二个表格栏最大的值

MIN(字段名)          获得贰个表格栏最小的值

SUM(字段名)         把数据栏的值相加

援引以上函数的措施:

sql="select sum(字段名) as 小名 from 数据表 where 条件表明式"

set rs=conn.excute(sql)

用 rs("别称") 获取总计的值,别的函数运用同上。

查询去除重复值:select distinct * from table1

 

几个高等查询运算词

A: UNION 运算符

UNION 运算符通过整合别的多少个结果表(比方TABLE1 和TABLE2)并消去表中其余重复行而派生出二个结果表。当 ALL 随UNION 一齐利用时(即UNION ALL),不解决重复行。三种景况下,派生表的每一行不是来源于TABLE1 正是来源于TABLE2。

B: EXCEPT 运算符

EXCEPT 运算符通过包含全部在TABLE1 中但不在TABLE第22中学的行并化解全部重复行而派生出三个结实表。当ALL 随EXCEPT 一齐利用时(EXCEPT ALL),不消除重复行。
C:INTERSECT 运算符

INTEEvoqueSECT 运算符通过只囊括TABLE1 和TABLE第22中学都部分行并消除全部重复行而派生出三个结出表。当ALL 随INTE卡宴SECT 一齐使用时(INTE如虎 CTR 3SECT ALL),不清除重复行。

注:使用运算词的多少个查询结果行必得是一模二样的。

 

使用外接连

A、left outer join

左外连接(左连接):结果集既富含连接表的相称行,也囊括左连接表的全体行。

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

B:right outer join

右外连接(右连接):结果集既满含连接表的匹配连接行,也蕴涵右连接表的具有行。

C:full outer join

全外连接:不仅仅囊括符号连接表的相配行,还包蕴八个一连表中的全体记录。

 

SQL  高级词

1、TOP 子句用于规定要回到的记录的多寡

采用头两条记下:

SELECT TOP 2 * FROM Persons

选取 50% 的记录:

SELECT TOP 50 PERCENT * FROM Persons

2、LIKE 操作符用于在 WHERE 子句中寻找列中的钦定情势。

提示:"%" 可用来定义通配符(格局中相当不足的字母)。NOT LIKE

3、SQL 通配符

在搜索数据库中的数据时,SQL 通配符能够代替二个或八个字符。

SQL 通配符必得与 LIKE 运算符一同行使。

在 SQL 中,可利用以下通配符:

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]或者[!charlist]

不在字符列中的任何单一字符

 

 

 

 

 

 

  

 

SELECT * FROM Persons WHERE City LIKE 'Ne%'

SELECT * FROM Persons WHERE City LIKE '%lond%'

SELECT * FROM Persons WHERE FirstName LIKE '_eorge'

SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'

采用居住的城邑以 "A" 或 "L" 或 "N" 最初的人:

SELECT * FROM Persons WHERE City LIKE '[ALN]%'

选用居住的城郭不以 "A" 或 "L" 或 "N" 开始的人:

SELECT * FROM Persons WHERE City LIKE '[!ALN]%'

4、IN 操作符允许我们在 WHERE 子句中规定八个值。

选拔姓氏为 亚当斯 和 Carter 的人:

SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')

5、BETWEEN ... AND 会选拔介于多个值时期的数据范围。这么些值能够是数值、文本或然日期。

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

使用方面包车型客车事例展现范围之外的人,请使用 NOT 操作符:

SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'

6、Alias 为列名称和表名称钦命别称(Alias)。

SELECT column_name(s) FROM table_name AS alias_name

7、join 用于依照多少个或四个表中的列之间的关联,从这个表中查询数据。

何人订购了出品,而且他们订购了如何产品?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P

  • JOIN/INNEXC90 JOIN : 假若表中有起码八个相称,则重回行
  • LEFT JOIN: 尽管右表中绝非相配,也从左表再次来到全数的行
  • PRADOIGHT JOIN: 即便左表中从未相称,也从右表重返全数的行
  • FULL JOIN: 只要在那之中二个表中存在非常,就再次回到行

8、UNION 操作符用于合併四个或四个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必得具有一致数量的列。列也非得具有相似的数据类型。同不日常间,每条 SELECT 语句中的列的相继必需一律。

注解:默许地,UNION 操作符采取分裂的值。假诺允许再一次的值,请使用 UNION ALL。

9、SELECT INTO 语句从二个表中甄选数据,然后把数量插入另一个表中

通过从 "Persons" 表中提取居住在 "Beijing" 的人的音讯,创设了一个包含多少个列的名字为 "Persons_backup" 的表:

SELECT LastName,Firstname INTO Persons_backup FROM PersonsWHERE City='Beijing'

10、SQL 约束 (Constraints)

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT 

 MySQL Date 函数

上边包车型客车表格列出了 MySQL 中最根本的内建日期函数:

函数

描述

NOW()

返回当前的日期和时间

CURDATE()

返回当前的日期

CURTIME()

返回当前的时间

DATE()

提取日期或日期/时间表达式的日期部分

EXTRACT()

返回日期/时间按的单独部分

DATE_ADD()

给日期添加指定的时间间隔

DATE_SUB()

从日期减去指定的时间间隔

DATEDIFF()

返回两个日期之间的天数

DATE_FORMAT()

用不同的格式显示日期/时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MySQL 数据类型

在 MySQL 中,有两种首要的等级次序:文本、数字和日期/时间档期的顺序。

Text 类型:

数据类型

描述

CHAR(size)

保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。

VARCHAR(size)

保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。
注释:如果值的长度大于 255,则被转换为 TEXT 类型。

TINYTEXT

存放最大长度为 255 个字符的字符串。

TEXT

存放最大长度为 65,535 个字符的字符串。

BLOB

用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。

MEDIUMTEXT

存放最大长度为 16,777,215 个字符的字符串。

MEDIUMBLOB

用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。

LONGTEXT

存放最大长度为 4,294,967,295 个字符的字符串。

LONGBLOB

用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。

ENUM(x,y,z,etc.)

允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。
注释:这些值是按照你输入的顺序存储的。
可以按照此格式输入可能的值:ENUM('X','Y','Z')

SET

与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Number 类型:

数据类型

描述

TINYINT(size)

-128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。

SMALLINT(size)

-32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。

MEDIUMINT(size)

-8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。

INT(size)

-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。

BIGINT(size)

-9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。

FLOAT(size,d)

带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

DOUBLE(size,d)

带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

DECIMAL(size,d)

作为字符串存储的 DOUBLE 类型,允许固定的小数点。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* 这一个整数类型具有额外的选项 UNSIGNED。常常,整数能够是负数或正数。假设增多 UNSIGNED 属性,那么范围将从 0 开头,并非有些负数。

Date 类型:

数据类型

描述

DATE()

日期。格式:YYYY-MM-DD
注释:支持的范围是从 '1000-01-01' 到 '9999-12-31'

DATETIME()

*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS
注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'

TIMESTAMP()

*时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS
注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC

TIME()

时间。格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59'

YEAR()

2 位或 4 位格式的年。
注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* 尽管 DATETIME 和 TIMESTAMP 再次来到同样的格式,它们的行事措施十分不一样。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把本人设置为如今的日期和时间。

TIMESTAMP 也承受分裂的格式,比方 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

SQL  函数

AVG 函数重返数值列的平均值。NULL 值不包罗在总括中。

COUNT(column_name) 函数再次回到钦点列的值的数量(NULL 不计入)。

FILANDST() 函数再次来到钦赐的字段中首先个记录的值。

LAST() 函数再次来到钦命的字段中最终八个笔录的值。

O揽胜极光DE昂Cora BY 语句对记录实行排序。

MAX 函数重临一列中的最大值。NULL 值不包含在企图中。

MIN 函数再次回到一列中的最小值。NULL 值不满含在测算中。

SUM 函数再次回到数值列的总和(总额)。

GROUP BY 语句用于结合合计函数,依照一个或四个列对结果集进行分组。

HAVING 子句原因是,WHERE 关键字不可能与商业事务函数一齐使用。

UCASE 函数把字段的值调换为大写。

LCASE 函数把字段的值转变为小写。

MID 函数用于从文本字段中领到字符

SELECT MID(column_name,start[,length]) FROM table_name

参数

描述

column_name

必需。要提取字符的字段。

start

必需。规定开始位置(起始值是 1)。

length

可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

 

 

 

 

 

 

 

SQL MID() 实例大家具有上面那么些 "Persons" 表:

Id

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

3

Carter

Thomas

Changan Street

Beijing

 

 

 

 

 

 

澳门皇冠844网站, 

方今,咱们期待从 "City" 列中领到前 3 个字符。

大家运用如下 SQL 语句:

SELECT MID(City,1,3) as SmallCity FROM Persons结果集类似那样:

SmallCity

Lon

New

Bei

 

 

 

 

 

 

 

LEN 函数再次来到文本字段中值的尺寸。

ROUND 函数用于把数值字段舍入为钦定的小数位数。

SELECT ROUND(column_name,decimals) FROM table_name 

NOW 函数再次回到当前的日期和时间。

FORMAT 函数用于对字段的显得进行格式化。

 

剔除主表未有的信息

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

四表联合检查问题

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

随机收取10条数据

select top 10 * from tablename order by newid()

随机选取记录

select newid()

语句大全,sql语句大全 成立数据库 创设以前判定该数据库是还是不是存在 if exists (select * fromsysdatabaseswhere name='databaseName') drop database databaseN...

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 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 column col type
注:列扩充后将无法去除。DB第22中学列加上后数据类型也不能够改造,独一能改造的是增加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 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 田野同志1 like ’%value1%’ ---like的语法很精密,查资料!
排序: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: UNION 运算符
UNION 运算符通过结合别的四个结实表(比方 TABLE1 和 TABLE2)并消去表中任何重复行而派生出二个结果表。当 ALL 随 UNION 一齐利用时(即 UNION ALL),不解决重复行。二种境况下,派生表的每一行不是出自 TABLE1 便是发源 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包蕴富有在 TABLE1 中但不在 TABLE2中的行并化解全部重复行而派生出叁个结实表。当 ALL 随 EXCEPT 一齐利用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTE大切诺基SECT 运算符通过只囊括 TABLE1 和 TABLE第22中学都部分行并消除全数重复行而派生出三个结出表。当 ALL 随 INTE景逸SUVSECT 一齐行使时 (INTETiggoSECT ALL),不清除重复行。
注:使用运算词的多少个查询结果行必需是一律的。
12、表达:使用外接连
A、left outer join:
左外连接(左连接):结果集几席卷连接表的相称行,也席卷左连接表的兼具行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外连接(右连接):结果集既包涵连接表的相称连接行,也席卷右连接表的具备行。
C:full outer join:
全外连接:不仅仅满含符号连接表的相配行,还包涵七个三翻五次表中的全数记录。

    [Age] [int] NOT NULL,)

DECLARE @Counter   INT,
        @StartTime DATETIME,
        @TruncLog  VARCHAR(255)
SELECT  @StartTime = GETDATE(),
        @TruncLog = 'BACKUP LOG ' db_name() ' WITH TRUNCATE_ONLY'

最小:select min(field1) as minvalue from table1

SQL语句先前写的时候,很轻易把一部分特殊的用法忘记,作者蓄意整理了一下SQL语句操作,方便温馨写SQL时便于一点,想贴上来,一同寻访,同临时候愿意大家能一同多多提意见,也给自己留部分越来越好的清词丽句,整理一份《精妙SQL速查手册》,多多指教!

A: UNION 运算符

2、表达:拷贝表(拷贝数据,源表名:a 指标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;

求和:select sum(field1) as sumvalue from table1

21、表明:列出表里的具有的
select name from syscolumns where id=object_id('TableName')

17、SQL模糊查询条件的种种匹配格局

1、表明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a

叠合数据库:sp_attach_db后接表明,

OPEN  curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN    
 if @Owner=@OldOwner
 begin
  set @OwnerName = @OldOwner '.' rtrim(@Name)
  exec sp_changeobjectowner @OwnerName, @NewOwner
 end
-- select @name,@NewOwner,@OldOwner

①、%:表示任性0个或多个字符。可相称任性类型和长短的字符,有个别情形下假如普通话,请使用五个百分号(%%)表示:

例如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“三藏法师”等等有“三”的笔录全找寻来。

再譬喻须求找寻u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

再例如 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
虽说能检索出“三脚猫”,但不可能检索出相符条件的“张猫三”。备注:%三:表示左相称。三%:表示右相配。%三%:表示模糊查询

②、_ : 表示肆意单个字符。相配单个任性字符,它常用来限制表明式的字符长度语句:

例如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”,这样u_name为多个字且中间二个字是“三”的;

再例如 SELECT * FROM [user] WHERE u_name LIKE '三__'
只寻觅“三脚猫”那样name为四个字且第3个字是“三”的;

③、[ ] :表示括号内所列字符中的二个(类似正则表达式)。钦命三个字符、字符串或限制,须求所匹配对象为它们中的任三个。

例如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
将找寻“张三”、“李三”、“王三”(并不是“张李王三”);

再例如 [ ] 内有一文山会海字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
将找出“老1”、“老2”、……、“老9”;

如若要找“-”字符请将其放在第二个人:'张三[-1-9]';

Oracle 10g以上的本子用法为:

select * from flow_user where regexp_like(username, '[张王李]飞')

④、[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 一样,但它需要所配成对象为钦赐字符以外的任二个字符。

例如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
将寻觅不姓“张”、“李”、“王”的“赵三”、“孙三”等;
再例如 SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]'
将排除“老1”到“老4”,寻找“老5”、“老6”、……、“老9”。

注:oracle like 不帮助正则,你能够利用帮忙like的正则regexp_like

二、提升

表达:删除主键:

17、表达:随机抽取10条数据
select top 10 * from tablename order by newid()

 Alter table tabname drop primary key(col)

13、表达:一条sql 语句消除数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

 删除视图:drop view viewname

18、说明:随机挑选记录
select newid()

在selecte总计函数中的字段,不能够和平日字段放在一块儿;

DECLARE curObject CURSOR FOR
 select 'Name'   = name,
  'Owner'   = user_name(uid)
 from sysobjects
 where user_name(uid)=@OldOwner
 order by name

EXCEPT 运算符通过包含全数在 TABLE1 中但不在 TABLE2中的行并化解全数重复行而派生出多少个结果表。当 ALL 随 EXCEPT 一齐利用时 (EXCEPT ALL),不免除重复行。

“where 1=1” 是意味选取任何   “where 1=2”全体不选,
如:
if @strWhere !=''
begin
set @strSQL = 'select count(*) as Total from [' @tblName '] where ' @strWhere end
else
begin
set @strSQL = 'select count(*) as Total from [' @tblName ']'
end

UNION 运算符通过整合其余多少个结实表(譬如 TABLE1 和 TABLE2)并消去表中别的重复行而派生出三个结实表。当 ALL 随 UNION 一齐利用时(即 UNION ALL),不排除重复行。两种情景下,派生表的每一行不是发源 TABLE1 正是发源 TABLE2。

 FETCH NEXT FROM curObject INTO @Name, @Owner
END

依照已有个别表创立新表:

8、表明:改动有个别表
exec sp_changeobjectowner 'tablename','dbo'

5、删除新表

22、表达:列示type、vender、pcs字段,以type字段排列,case能够一本万利地贯彻多种接纳,类似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
呈现结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3

USE master

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

    [Name][nvarchar](50) NOT NULL,

15、表达:选拔在每一组b值一样的数目中对应的a最大的记录的有所音信(类似那样的用法能够用来论坛每月排名榜,每月热销产品深入分析,按学科成绩排行,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

15.怎么样修改数据库的名号:

sp_renamedb 'old_name', 'new_name’

10、表明:两张关联表,删除主表中早就在副表中尚无的音信
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

F: select * into table5 from tableA where 1<>1;(旧表创建新表,独有表结构)

USE     tablename             -- 要操作的多少库名
SELECT  @LogicalFileName = 'tablename_log',  -- 日志文件名
@MaxMinutes = 10,               -- Limit on time allowed to wrap log.
        @NewSize = 1                  -- 你想设定的日志文件的大大小小(M)

create view viewname as select statement

16、说明:满含富有在 TableA 中但不在 TableB和TableC 中的行并化解全部重复行而派生出二个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)

drop table tabname

close curObject
deallocate curObject
GO

EXEC sp_addumpdevice 'disk',’testBack', :mssql7backupMyNwind_1.dat' --- 开始 备份

20、表达:列出数据库里存有的表名
select name from sysobjects where type='U'

D:select * into table3 from tableA where 1=2;(复制表数据,主键复制但是去)

8、表明: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

C: select *into  tableAnew from tableA(复制表结构和表数据。旧表成立新表无主键。SQL server2009PRADO2能够用 亲测)

1、1=1,1=2的行使,在SQL语句组合时用的很多

注:列扩张后将不能够去除。DB第22中学列加上后数据类型也不能够更动,独一能改换的是加多varchar类型的长度。

6、修复数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO

总数:select count as totalcount from table,

19、表明:删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

3、备份sql server

5、检查备份集
RESTORE VERIFYONLY from disk='E:dvbbs.bak'

本文由澳门皇冠金沙网站发布于数据库研究,转载请注明出处:精妙SQL语句收集,数据库小结1