SQL语句大全
知识点思维导图:
备份sql server
//创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' //开始 备份 BACKUP DATABASE pubs TO testBack
根据已有的表创建新表
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as SELECT col1,col2…from tab_old definition only
增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
分组:Group by
一张表,一旦分组完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
在selecte统计函数中的字段,不能和普通的字段放在一起;
复制表(只复制结构)
//法一: SELECT * INTO b FROM a WHERE 1 <> 1(仅用于SQlServer) //法二: SELECT top 0 * into b from a
跨数据库拷贝数据(具体数据使用绝对路径)
INSERT INTO b (a, b, c)
SELECT
d,e,f
FROM b (in ‘具体数据库’)where 条件
例:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
随机取出10条数据
SELECT TOP 10 * FROM tablename ORDER BY NEWID()
随机选择记录
select newid()
列出数据库里所有的表名
SELECT name FROM sysobjects WHERE type = 'U' //U代表用户
列出表里的所有的列名
SELECT name FROM syscolumns WHERE id = OBJECT_ID('TableName')
列示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
初始化表table1
TRUNCATE TABLE table1
注意:会删除数据并将标志值置回1,但不会记录日志,TRUNCATE只在删除全表适
用,TRUNCATE是DDL不是DML
一条sql 语句搞定数据库分页
SELECT TOP 10 b.* FROM (SELECT TOP 20 主键字段, 排序字段 FROM 表名 ORDER BY 排序字段 DESC) a, 表名 b WHERE b.主键字段 = a.主键字段 ORDER BY a.排序字段
删除重复记录
//1 delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) //2 select distinct * into temp from tablename delete from tablename insert into tablename select * from temp 注意:不适合大容量但数据操作
sql替换数据库字段中的字符
UPDATE `table_name` SET `field_name` = REPLACE ( `field_name`, 'from_str', 'to_str' ) WHERE ... //说明:table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串
UPDATE shopping_hw SET hw_pic= replace (hw_pic, '*common', '+play' ) ;//内容“*common”替换为“+play”.
技巧
1=1,1=2的使用,在SQL语句组合时用的较多
“where 1=1” 选择全部
“where 1=2” 全部不选
常识
在SQL查询中:from后最多可以跟多少张表或视图:256
在SQL语句中出现 Order by,查询时,先排序,后取
在SQL中,一个字段的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。
拓展
局部性原理:
当一个数据被用到时,其附近的数据也通常会马上被使用。程序运行期间所需要的数据通常比较集中。