SQL Server常用SQL Server 语句

            常用SQL语句大全   

一 、//创制数据库

CREATE DATABASE DBName

二 、//删除数据库

DROP DATABASE DBName

3、//备份SQL SERVER

--- 创建 备份数据的 device     
USE master     
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'


--- 开始 备份    
BACKUP DATABASE pubs TO testBack 

肆 、//创制新表

CREATE TABLE TabName   
(       
ID INT NOT NULL  PRIMARY KEY IDENTITY(1,1),       
NAME VARCHAR(50) NOT NULL,   
)

--根据已有的表创建新表:
(1) CREATE TABLE tab_new LIKE tab_old (使用旧表创建新表)
(2) CREATE TABLE tab_new AS SELECT col1,col2… FROM tab_old DEFINITION only

⑤ 、//删除新表

DROP TABLE TabName

陆 、//增添二个列

ALTER TABLE TabName ADD col BIT NOT NULL DEFAULT 1

--删除一个列

ALTER TABLE TabName DROP CONSTRAINT 默认约束名   GO  
ALTER TABLE TabName DROP COLUMN   colName   GO

注:** 因为除去列的时候
有暗中认同约束看重该字段,那么您必要先删除默许约束(错误指示里会有默许约束名),再删除字段
⑦ 、//添加主键**:

ALTER TABLE TabName ADD  PRIMARY KEY(col)

--删除主键:
ALTER TABLE TabName DROP  PRIMARY KEY(col)

⑧ 、//成立索引

CREATE INDEX  IndexName ON TabName(col...)

--删除索引:
DROP  INDEX IndexName

目录是不足改变的,想改变必须删除重新建

玖 、//成立视图

CREATE VIEW ViewName
     AS
      SELECT col1,col2
      FROM TabName
  GO

--删除视图:
DROP VIEW ViewName

 

⑩ 、//创立存储进度

CREATE PROC  Proc_Name   
AS   
     SELECT *   
     FROM TabName     
GO

--调用、执行存储过程   
EXEC  Proc_Name

--修改存储过程  
ALTER PROC  Proc_Name   
AS   
    SELECT *   
    FROM TabName 
GO

--删除存储过程
DROP PROC Proc_Name     

 
1一 、//多连接表

--内连接

   SELECT * 
   FROM  Tab1 AS t1   INNER JOIN  Tab2 AS  t2 ON  t1.ID = t2.ID

--左连接

   SELECT * 
   FROM  Tab1 AS t1   LEFT JOIN  Tab2 AS  t2 ON  t1.ID = t2.ID

--右连接

   SELECT * 
   FROM  Tab1 AS t1   RIGHT JOIN  Tab2 AS t2 ON t1.ID = t2.ID

 

**1② 、//复制表(只复制结构,源表名:a 新表名:b)

**

SELECT * INTO b FROM a WHERE <>1

1叁 、//拷贝表(拷贝数据,源表名:a 目的表名:b)

INSERT INTOb(号,姓名,龄)
SELECT 号,姓名,龄
FROM a

 

1④ 、//跨数据库之间表的正片(具体多少利用相对路径)

INSERT INTOb(a, b, c)
SELECT d,e,f
FROM b  IN ‘具体数据库’
WHERE  条件

 

15、//子查询(表名1:a 表名2:b)

SELECT a,b,c
FROM a
WHERE a IN (
       SELECT d
       FROM b ) 

 

1陆 、//展现小说、提交人和最终回复时间

SELECT a.title,a.username,b.adddate
FROM table a,(
      SELECT MAX(adddate) adddate
      FROM table
      where table.title=a.title ) b

 

1七 、//在线视图查询(表名1:a
)

SELECT *
FROM  (
      SELECT a,b,c
      FROM a
            ) T
WHERE  t.a > 1; 

 

1捌 、//between的用法,between限制查询数据范围时包含了边界值,not
between不包罗

SELECT *
FROM table1
WHERE time BETWEEN time1 AND time2

 

1九 、//in
的应用格局

SELECT *
FROM table1
WHERE a NOT IN (‘值1’,’值2’,’值4’,’值6’)

 

20、//两张关联表,删除主表中早就在副表中并未的新闻

DELETE FROM  table1
WHERE not exists (
    SELECT *
    FROM  table2
    WHERE  table1.field1=table2.field1 )

 

2壹 、//日程安插超前陆分钟提示

SSELECT *
FROM 日程安排
WHERE DATEDIFF('minute',f开始时间,GETDATE())>5

 

2二 、//一条sql
语句消除数据库分页

  //思想:    

SELECT TOP 10 b.* FROM (SELECT TOP 20 主键字段,排序字段 FROM 表名 ORDER BY  排序字段 DESC ) a,表名 b WHERE b.主键字段 = a.主键字段 ORDER BY  a.排序字段

  //实现:

DECLARE @start INT,@end INT
       @sql  NVARCHAR(600)

SET @sql=’SELECT TOP’+str(@end-@start+1)+’+FROM T WHERE rid NOT IN(SELECT TOP’+str(@str-1)+’Rid FROM T WHERE Rid>-1)’

EXEC sp_executesql @sql

注:在top后无法一贯跟壹个变量,所以在实际利用中只有如此的举办出格的处理。Rid为多少个标识列,假设top后还有具体的字段,这样做是杰出有裨益的。因为那样可防止止
top的字段假诺是逻辑索引的,查询的结果后其实表中的不一致(逻辑索引中的数据有可能和数目表中的不等同,而查询时假诺处在索引则第壹查询索引)

 

23、//前10条记录

SELECT TOP *
FROM TABLE
WHERE 范围

SQL Server, 

24、//接纳在每一组b值相同的多寡中对应的a最大的记录的享有音信(类似那样的用法可以用来论坛每月名次榜,每月热销产品分析,按学科战绩排行,等等.)**

SELECT a,b,c 
FROM tablename ta 
WHERE a=(
    SELECT MAX(a) 
    FROM tablename tb 
    WHERE tb.b=ta.b)

 

25、//总结持有在
TableA 中但不在 TableB和TableC 中的行并化解全数重复行而派生出3个结实表**

(SELECT a FROM tableA ) EXCEPT 
(SELECT a FROM tableB ) EXCEPT 
(SELECT a FROM tableC ) 

 

26、//随便取出10条数据**

SELECT TOP 10 *
FROM TABLENAME
ORDER BY  NEWID()

 

27、//除去重复记录


DELETE FROM TABLENAME
WHERE id NOT IN (
        SELECT MAX(id)
        FROM TABLENAME
        GROUP BY col1,col2,。。。)        

 

28、//列出数据Curry富有的表名

SELECT name
FROM SYSOBJECTS
WHERE type=‘U’      -- U代表用户

 

29、//列出表里的装有的列名

SELECT name
FROM SYSCOLUMS
WHERE id = object_id('TABLENAME')

 

30、//简言之CASE函数和CASE搜索函数**

--简单Case函数
CASE sex
    WHEN '1' THEN '男'
    WHEN '2' THEN '女'
ELSE '其他' END

--Case搜索函数
CASE   
   WHEN sex = '1' THEN '男'
  WHEN sex = '2' THEN '女'
ELSE '其他' END

31、//起首化表table1**

TRUNCATE TABLE table1

 

3二 、//添加假数据

-- 需要创建一张表 两个字段 一个用户名 一个密码
    DECLARE @username VARCHAR(50) --用户名
    DECLARE @password VARCHAR(50) --密码
    DECLARE @score int --数量

    SET @score = 0;
     -- 循环一百次
    WHILE(@score<100)
    BEGIN
        SET @username = 'test'+ CAST(@Score AS VARCHAR(50) )
        SET @password = '123456'+ CAST(@Score AS VARCAHR(50) )

        INSERT INTO TableName
        VALUES(@username,@password)
        SET @score =@score+1;
    END

 

3③ 、//多少个大约的骨干的sql语句

--选择
SELECT * FROM table1 WHERE 范围
--插入
INSERT INTO table1(field1,field2) VALUSE(value1,value2)
--删除
DELETE FROM table1 WHERE 范围 
--更新
UPDATE table1 SET field1=value1 WHERE 范围
--查找
SELECT * FROM table1 WHERE field1 LIKE ’%value1%’ ---like的语法很精妙,查资料!
--排序
SELECT * FROM table1 ORDER BY  field1,field2 DESC
--总数
SELECT COUNT(1) 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

          

 

相关文章