【SQL】 常用语句

1.批量导入

INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROMTable1
要求目标表Table2必须存在

2.批量导入

SELECT vale1, value2 INTO Table2 FROM Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中

3.去重并保留一项

  DELETE FROM  tableName WHERE Id in (select  MIN(id)
  FROM tableName  GROUP BY  colName HAVING COUNT(colName) > 1)

4.批量更新

UPDATE t1
SET Field1 = Field21, Field2 = Field22
FROM Table2 t2
WHERE ((t2.Field24 >= ‘‘) AND t1.fId = t4.fId);

6.分页

--max/top
SELECT TOP 50 * FROM pagetest
WHERE id>(SELECT MAX(id) FROM (SELECT TOP 9900 id FROM pagetest ORDER BY id)a)
ORDER BY id
--row_number()
SELECT * FROM
(SELECT ROW_NUMBER()OVER(ORDER BY id)rownumber,* FROM pagetest)a
WHERE rownumber>=9901 and rownumber<=9952

7. 表同步 MERGE

  MERGE into [MergeDemo] as m -- 目标表
  using Test as t -- 源表
  on m.[title]=t.[name] -- 匹配条件
  when matched then update set m.[num]=t.[age] -- 匹配成功
  when not matched then insert values(t.[name],t.[age]) -- 目标表与源表不一致
  when not matched by source then delete -- 源表与目标表不一致
  output $action as [action] -- 输出操作
  , inserted.[title] [ititle],inserted.[num] [inum]
  , deleted.[title] [dtitle],deleted.[num] [dnum];

8. GROUP 加 TOP(每个 GROUP 取出 TOP 数据)

Declare @currentIndex int   -- 游标
Declare @totalRows    int    -- 总的组数
Declare @time    nvarchar(20)     -- 第一个分组列
SET @currentIndex=1
  -- 按 第一个分组列 分组, 取出组名
  SELECT row_number()over(order by [time] asc) id,[time] INTO #temp1
  FROM (SELECT DISTINCT(CONVERT(VARCHAR(10),create_time,120)) [time]  FROM tableName) a
  SELECT @totalRows=COUNT(1) FROM #temp1 -- 总的组数
WHILE @currentIndex<[email protected]   -- 按 组名 循环
BEGIN
  SELECT @time=[time] FROM #temp1 WHERE [email protected] -- 取出当前组名
  -- 取出当前 组 拥有的数据, 再按照 第二分组列 分组 取 TOP
  SELECT TOP 20  colName ‘Url‘, COUNT((colName)) ‘Count‘,CONVERT(VARCHAR(10),create_time,120) ‘Time‘,GETDATE()
  FROM tableName   WHERE [time] =  @time   GROUP BY colName   ORDER BY COUNT((colName)) DESC
SET @currentIndex [email protected]+1
END
时间: 2024-10-12 09:33:37

【SQL】 常用语句的相关文章

SQL 常用语句

–-表现最差的前10名使用查询 SELECT TOP 10 ProcedureName = t.text, ExecutionCount = s.execution_count, AvgExecutionTime = isnull ( s.total_elapsed_time / s.execution_count, 0 ), AvgWorkerTime = s.total_worker_time / s.execution_count, TotalWorkerTime = s.total_wo

SQL常用语句积累

SQL 常用语句积累: 一. SQL 基本语句 SQL 分类: DDL -数据定义语言 (Create , Alter , Drop , DECLARE) DML -数据操纵语言 (Select , Delete , Update , Insert) DCL -数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK) 首先 , 简要介绍基础语句: 1 .说明:创建数据库 Create DATABASE database-name 2 .说明:删除数据库 drop d

SQL常用语句集合(不断更新)

1.多条件 查询 上下级 所有数据 select * from OrgUnit where (ParentId = '3' or OrgId='3' or ParentId in (select OrgId from OrgUnit where ParentId='3')) 2.相同列数的 多个查询结果 组合(union all) select a,b,c from table1 union all select ca,cb,cc from table2 3.左外连接 与 右外连接 (left

(转)SQL 常用语句

SQL 常用语句积累: 一. SQL 基本语句 SQL 分类: DDL —数据定义语言 (Create , Alter , Drop , DECLARE) DML —数据操纵语言 (Select , Delete , Update , Insert) DCL —数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK) 首先 , 简要介绍基础语句: 1 .说明:创建数据库 Create DATABASE database-name 2 .说明:删除数据库 drop d

PL/SQL常用语句

> 2.显示当前连接用户  SQL> show user  3.查看系统拥有哪些用户  SQL> select * from all_users;  4.新建用户并授权  SQL> create user a identified by a;(默认建在SYSTEM表空间下)  SQL> grant connect,resource to a;  5.连接到新用户  SQL> conn a/a  6.查询当前用户下所有对象  SQL> select * from t

sql常用语句使用方法

一.root用户密码丢失或重新设置 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for [email protected] = password('123'); 方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot

MySQL用户管理、sql常用语句、mysql备份与恢复

MySQL用户管理 创建用户 grant all on *.* to 'user1'@'localhost' identified by '123456'; grant all on db1.* to 'user2'@'%' identified by '123456'; //创建user2用户,所有ip都能登录,指定权限为db1库下的所有表: flush privileges; 刷新授权 .:表示所有库和表:user1:用户名:localhost:登录ip,默认localhost为本机登录ip

mysql sql常用语句大全

SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6,'cxx6',now()),(7,'cxx7',now()); 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE mas

SQL常用语句整理

有次笔试最后一页的三个数据库连接查询,没有写出来,被考官暗讽了下.现在想来,实习初,确实很LOW.现公司刚入职的时候,负责过ETL方面,所以和数据库打了不少交道,五十行的联合查询.上百行的存储过程很常见,游标.视图.索引频频接触,包括在SQL中断点调试,测值等等,在这里将所接触所了解的进行整理,做一个小总结,慢慢的积累,对游标.视图等等也做一个简单的说明.我有时候遇到相同问题,会出现忘记上次是如何解决问题的情况,直到花费大量的时间.精力去重新找到解决方案.这很浪费,所以凡是遇到的问题,所做解决的

SQL常用语句

整理如下: 1增 1.1[插入单行] insert [into] <表名> (列名) values (列值) 例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15') 1.2[将现有表数据添加到一个已有表] insert into <已有的新表> (列名) select <原表列名> from <原表名> 例:insert into tongxunlu ('姓名','地址','电子