常用SQL总结

一 插入多行数据的几种方式

1 insert into target_table(column1,column2) select column1,5 from source_table;target_table 表存在的时候
2 select * into target_table from source_table;target_table 表不存在的时候
3 select * identity(int,1,1) As sid target_table from source_tabletarget_table 表不存在的时候, 插入标识符, 但是如果source_table 也有唯一标识符的时候,就不能把那个也插进去了

常用的的集中分页方式(30~40条数据)

1 不在前30条的前10条

SELECT top 10 *
FROM dbo.ActivityComment
WHERE id NOT IN
    ( SELECT top 30 id
     FROM [dbo].[ActivityComment] )

2 id大于第30条的id,的前10条

SELECT top 10 *
FROM dbo.ActivityComment
WHERE id >
    (SELECT max(id)
     FROM
       (SELECT top 30 id
        FROM dbo.ActivityComment
        ORDER BY id) AS ids)
ORDER BY id

3 利用 ROW_NUMBER() over(order by id) as num 来实现分页, 取出rumber 大于30的前10条

SELECT top 10 *
FROM
  ( SELECT ROW_NUMBER() over(ORDER BY id) AS num, * FROM dbo.SPProduct) AS a
WHERE num > 30

CET 的入门

1,用子查询解决

SELECT *
FROM dbo.SPProduct
WHERE id NOT in
    (SELECT id
     FROM dbo.SPProduct
     WHERE name LIKE ‘%30%‘);

2,用存储过程解决

 定义表变量 declare @t table(SPProduct int)  把子查询的结果存入表变量
 insert into @t(SPProduct)(select id from dbo.SPProduct where name like ‘%30%‘) 再做外层查询
 select * from dbo.SPProduct where id not in (select * from @t)

3 CTE方式

  with cr as (select id from SPProduct where name like ‘%30%‘)
  select * from SPProduct where id not in (select * from cr)

4多个CET

  with cr1(id) as (select id from SPProduct where name like ‘%30%‘ union all select id from SPProduct where name like ‘%20%‘)
  select * from SPProduct where id not in (select * from cr1)
时间: 2024-11-01 22:22:21

常用SQL总结的相关文章

自己整理的常用SQL Server 2005 语句、

--创建数据库 create database 数据库 go --打开数据库 use 数据库 --删除数据库 drop database 数据库 Go --创建数据表 create table 数据表 ( 列名1  数据类型1  限定条件(是否是主外键.是否为空), 列名2  数据类型2  限定条件(是否是主外键.是否为空) )go --删除数据表 drop table 数据表 --插入数据 --插入单行数据 insert  into 表名 [(列名1,列名2 )]  values  (‘数据1

sql优化(oracle)- 第二部分 常用sql用法和注意事项

第二部分 常用sql用法和注意事项               1. exists 和 in                             2. union 和 union all                       3. with as  4. order by  5. group by  6. where 和 having  7. case when 和 decode 1.exits和in用法1)说明: 1. exists先对外表做循环,每次循环对内表查询:in将内表和外表

DBA_Oracle DBA常用SQL汇总(概念)

2014-06-20 BaoXinjian DBA常用的SQL汇总 1.监控索引是否使用 alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name; 2.求数据文件的I/O分布 select df.name,phyrds,phywrts,phyblkr

常用sql整理

1. 存储过程 CREATE PROCEDURE [dbo].[bbs_move_createtopic] @fid smallint, @iconid smallint, @curtid INT OUTPUT AS BEGIN INSERT INTO [topics] ...... SET @topicid=SCOPE_IDENTITY() END declare @curtid int exec [createtopic] @fid=@new_fid,@iconid=0, @curtid=

Ubuntu 下安装sqlite3 及常用SQL 语句

安装sqlite3命令如下: 1 sudo apt-get install sqlite3 创建或者打开已有的数据库文件: 1 sqlite3 test.db 进入数据库后,可以进行以下常用SQL语句操作: CREATE TABLE ONT_USER_TABLE( ONT_USER_NAME text PRIMARY KEY, ONT_USER_PWD text NOT NULL, ONT_CREATE_TIME text ); INSERT INTO ONT_USER_TABLE values

常用sql语句及案例

目录 1)基本 2)数学函数 3)rownum 4)分页 5)时间处理 6)字符函数 7)to_number 8)聚合函数 9)学生选课 10)图书馆借阅 基本 --新建表: create table table1( id varchar(300) primary key, name varchar(200) not null); --插入数据 insert into table1 (id,name) values ('aa','bb'); --更新数据 update table1 set id

Oracle数据库常用Sql语句大全

一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, --) VALUES ( 值1, 值2, --); INSERT INTO 表名(字段名1, 字段名2, --)  SELECT (字段名1, 字段名2, --) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: 'GOOD DAY' 如果字段值里包含单引号' 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要

Oracle常用SQL总结

基础 1:创建数据库 CREATE DATABASE dbname 2:删除数据库 DELETE DATABASE dbname 3:备份sql server 创建备份数据的device: USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' 开始备份: BACKUP DATABASE PUBS TO testback 4:创建新表 crate table table-name(co

oracle 常用sql

--1,随机抽取一条数据 select column from (select * from table order by dbms_random.value ) where rownum = 1; --2,选取一个表中的重复数据 select column from table group by column having count(*) > 1 --3,日期截取 1)如2012-4-27 9:20:22只截取后面的时分秒 select to_char(sysdate,'hh24:mi:ss