sql查询语句大全?经典sql语句

:暂无数据 2026-09-11 22:50:01 :0

sql查询语句大全?经典sql语句

大家好,sql语句相信很多的网友都不是很明白,包括sql查询语句大全也是一样,不过没有关系,接下来就来为大家分享关于sql语句和sql查询语句大全的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

sql查询语句大全

一、基础
1、说明:创建数据库
Create
DATABASE
database-name

2、说明:删除数据库
drop
database
dbname

3、说明:备份sql
server
---
创建
备份数据的
device
USE
master
EXEC
sp_addumpdevice
’disk’,
’testBack’,

’c:\mssql7backup\MyNwind_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
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的

是增加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
field1
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

经典sql语句

baidu、google是很好的学习搜索引擎,
推荐一下新手学习SQL的基础技术,在baidu搜索以下内容:
“一网打尽”通用SQL数据库的查询语句
实例讲解SQL Server中“Update“的用法
三种数据库利用SQL语句进行高效果分页
深入讲解SQL Server数据库的嵌套子查询
实现跨多个表格的数据进行组合的SQL语句
深入讲解SQL Union和Union All的使用方法

还有一些基本的语法这里也简单介绍一下,希望对你有用:
学习SQL应知道的动态SQL语句基本语法
1 、普通SQL语句可以用Exec执行

eg: Select * from tableName
Exec(’select * from tableName’)
Exec sp_executesql N’select * from tableName’ -- 请注意字符串前一定要加N

2、字段名,表名,数据库名之类作为变量时,必须用动态SQL

eg:
declare @fname varchar(20)
set @fname = ’FiledName’
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec(’select ’ + @fname + ’ from tableName’) -- 请注意 加号前后的 单引号的边上加空格

当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = ’FiledName’ --设置字段名

declare @s varchar(1000)
set @s = ’select ’ + @fname + ’ from tableName’
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错

declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = ’select ’ + @fname + ’ from tableName’
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确

3、输出参数

declare @num int,
@sqls nvarchar(4000)
set @sqls=’select count(*) from tableName’
exec(@sqls)
--如何将exec执行结果放入变量中?

declare @num int,
@sqls nvarchar(4000)
set @sqls=’select @a=count(*) from tableName ’
exec sp_executesql @sqls,N’@a int output’,@num output
select @num

此外,如果想要在SQL语句 字符串中使用 单引号 ’’ 可以 使用 ’’’’

在SQL中,能快速删除数据表中所有记录,但保留数据表结构的语句是什么

在SQL中,能快速删除数据表中所有记录,但保留数据表结构的语句是Truncate。

使用Truncate删除所有行,该语句总是比不带条件的DELETE语句要快,因为DELETE语句要记录对每行的删除操作,而Truncate 语句只记录整个数据页的释放。Truncate语句立即释放由该表的数据和索引占用的所有空间,所有索引的分发页也将释放。

与DELETE语句相同,使用Truncate清空的表的定义,同其索引和其它相关的对象一起仍保留在数据库中。必须使用DROP  TABLE语句才能除去表的定义。

SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口,这使它具有极大的灵活性和强大的功能。

在oracle sql语句里有没有ifelse的用法,请各位大侠给个例子看看,灰常感谢!!

oracle 中if ..else 可以再pl/sql 中使用,
如果是要在SQL语句中达到这种效果可以用case when ... then ...else ..end;
mysql数据库中CASE WHEN语句。

case when语句,用于计算条件列表并返回多个可能结果表达式之一。

CASE 具有两种格式:

简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。

CASE 搜索函数计算一组布尔表达式以确定结果。
两种格式都支持可选的 ELSE 参数。

语法
简单 CASE 函数:

复制代码 代码如下:

CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END

CASE 搜索函数:

复制代码 代码如下:

CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END

参数
input_expression

是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft? SQL Server? 表达式。

WHEN when_expression

使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL
Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。

占位符,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。

THEN result_expression

当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值为 TRUE 时返回的表达式。
result expression 是任意有效的 SQL Server 表达式。

ELSE else_result_expression

当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL
值。Else_result_expression 是任意有效的 SQL Server 表达式。Else_result_expression
和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。

WHEN Boolean_expression

使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。

结果类型

从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。

结果值

简单 CASE 函数:
计算 input_expression,然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。

返回第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。

如果没有取值为 TRUE 的 input_expression = when_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。
CASE 搜索函数:
按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。

返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。

如果没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

下面分享一些mysql case when语句的例子。

A. 使用带有简单 CASE 函数的 SELECT 语句
在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其它比较。

例子,使用 CASE 函数更改图书分类显示。

复制代码 代码如下:

USE pubs
GO
SELECT Category =
CASE type
WHEN ’popular_comp’ THEN ’Popular Computing’
WHEN ’mod_cook’ THEN ’Modern Cooking’
WHEN ’business’ THEN ’Business’
WHEN ’psychology’ THEN ’Psychology’
WHEN ’trad_cook’ THEN ’Traditional Cooking’
ELSE ’Not yet categorized’
END,
CAST(title AS varchar(25)) AS ’Shortened Title’,
price AS Price
FROM titles
WHERE price IS NOT NULL
ORDER BY type, price
COMPUTE AVG(price) BY type
GO

注释,后来我试了一下不让用category=。

我使用的代码为:

复制代码 代码如下:

SELECT
case gender
WHEN 1 THEN ’NAN’
WHEN 0 THEN ’NV’
end as gender
FROM
t_swidy_day_nutrient

结果集:

Category Shortened Title Price
------------------- ------------------------- --------------------------
Business You Can Combat Computer S 2.99
Business Cooking with Computers: S 11.95
Business The Busy Executive’s Data 19.99
Business Straight Talk About Compu 19.99

avg
==========================
13.73

Category Shortened Title Price
------------------- ------------------------- --------------------------
Modern Cooking The Gourmet Microwave 2.99
Modern Cooking Silicon Valley Gastronomi 19.99

avg
==========================
11.49

Category Shortened Title Price
------------------- ------------------------- --------------------------
Popular Computing Secrets of Silicon Valley 20.00
Popular Computing But Is It User Friendly? 22.95

avg
==========================
21.48

Category Shortened Title Price
------------------- ------------------------- --------------------------
Psychology Life Without Fear 7.00
Psychology Emotional Security: A New 7.99
Psychology Is Anger the Enemy? 10.95
Psychology Prolonged Data Deprivatio 19.99
Psychology Computer Phobic AND Non-P 21.59

avg
==========================
13.50

Category Shortened Title Price
------------------- ------------------------- --------------------------
Traditional Cooking Fifty Years in Buckingham 11.95
Traditional Cooking Sushi, Anyone? 14.99
Traditional Cooking Onions, Leeks, and Garlic 20.95

avg
==========================
15.96

(21 row(s) affected)

B. 使用带有简单 CASE 函数和 CASE 搜索函数的

SELECT 语句
在 SELECT 语句中,CASE 搜索函数允许根据比较值在结果集内对值进行替换。

例子:根据图书的价格范围将价格(money 列)显示为文本注释。

复制代码 代码如下:

USE pubs
GO
SELECT ’Price Category’ =
CASE
WHEN price IS NULL THEN ’Not yet priced’
WHEN price 《 10 THEN ’Very Reasonable Title’
WHEN price 》= 10 and price 《 20 THEN ’Coffee Table Title’
ELSE ’Expensive book!’
END,
CAST(title AS varchar(20)) AS ’Shortened Title’
FROM titles
ORDER BY price
GO

结果集:

Price Category Shortened Title
--------------------- --------------------
Not yet priced Net Etiquette
Not yet priced The Psychology of Co
Very Reasonable Title The Gourmet Microwav
Very Reasonable Title You Can Combat Compu
Very Reasonable Title Life Without Fear
Very Reasonable Title Emotional Security:
Coffee Table Title Is Anger the Enemy?
Coffee Table Title Cooking with Compute
Coffee Table Title Fifty Years in Bucki
Coffee Table Title Sushi, Anyone?
Coffee Table Title Prolonged Data Depri
Coffee Table Title Silicon Valley Gastr
Coffee Table Title Straight Talk About
Coffee Table Title The Busy Executive’s
Expensive book! Secrets of Silicon V
Expensive book! Onions, Leeks, and G
Expensive book! Computer Phobic And
Expensive book! But Is It User Frien

(18 row(s) affected)

C. 使用带有 SUBSTRING 和 SELECT 的 CASE 函数

例子,使用 CASE 和 THEN 生成一个有关作者、图书标识号和每个作者所著图书类型的列表。

首先,来看下 CASE 的语法。在一般的 SELECT 中,其语法如下:

复制代码 代码如下:

SELECT 《myColumnSpec》 =
CASE
WHEN 《A》 THEN 《somethingA》
WHEN 《B》 THEN 《somethingB》
ELSE 《somethingE》
END

以上代码,需要用具体的参数代替尖括号中的内容。

甚至还可以组合这些选项,添加一个 ORDER BY 子句,例如:

复制代码 代码如下:

USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN ’Unpriced’
WHEN price 《 10 THEN ’Bargain’
WHEN price BETWEEN 10 and 20 THEN ’Average’
ELSE ’Gift to impress relatives’
END AS Range,
Title
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN ’Unpriced’
WHEN price 《 10 THEN ’Bargain’
WHEN price BETWEEN 10 and 20 THEN ’Average’
ELSE ’Gift to impress relatives’
END,
Title
ORDER BY
CASE
WHEN price IS NULL THEN ’Unpriced’
WHEN price 《 10 THEN ’Bargain’
WHEN price BETWEEN 10 and 20 THEN ’Average’
ELSE ’Gift to impress relatives’
END,
Title
GO

除了选择自定义字段之外,在很多情况下 CASE 都非常有用。

稍加深入,还可以得到以前认为不可能得到的分组排序结果集。
使用CASE WHEN进行字符串替换处理

在SELECT查询中使用CASE WHEN

复制代码 代码如下:

/*
mysql》 SELECT Name, RatingID AS Rating,
-》 CASE RatingID
-》 WHEN ’R’ THEN ’Under 17 requires an adult.’
-》 WHEN ’X’ THEN ’No one 17 and under.’
-》 WHEN ’NR’ THEN ’Use discretion when renting.’
-》 ELSE ’OK to rent to minors.’
-》 END AS Policy
-》 FROM DVDs
-》 ORDER BY Name;
+-----------+--------+------------------------------+
| Name | Rating | Policy |
+-----------+--------+------------------------------+
| Africa | PG | OK to rent to minors. |
| Amadeus | PG | OK to rent to minors. |
| Christmas | NR | Use discretion when renting. |
| Doc | G | OK to rent to minors. |
| Falcon | NR | Use discretion when renting. |
| Mash | R | Under 17 requires an adult. |
| Show | NR | Use discretion when renting. |
| View | NR | Use discretion when renting. |
+-----------+--------+------------------------------+
8 rows in set (0.01 sec)
*/
Drop table DVDs;
CREATE TABLE DVDs (
ID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(60) NOT NULL,
NumDisks TINYINT NOT NULL DEFAULT 1,
RatingID VARCHAR(4) NOT NULL,
StatID CHAR(3) NOT NULL
)
ENGINE=INNODB;
INSERT INTO DVDs (Name, NumDisks, RatingID, StatID)
VALUES (’Christmas’, 1, ’NR’, ’s1’),
(’Doc’, 1, ’G’, ’s2’),
(’Africa’, 1, ’PG’, ’s1’),
(’Falcon’, 1, ’NR’, ’s2’),
(’Amadeus’, 1, ’PG’, ’s2’),
(’Show’, 2, ’NR’, ’s2’),
(’View’, 1, ’NR’, ’s1’),
(’Mash’, 2, ’R’, ’s2’);
SELECT Name, RatingID AS Rating,
CASE RatingID
WHEN ’R’ THEN ’Under 17 requires an adult.’
WHEN ’X’ THEN ’No one 17 and under.’
WHEN ’NR’ THEN ’Use discretion when renting.’
ELSE ’OK to rent to minors.’
END AS Policy
FROM DVDs
ORDER BY Name;

求简单的SQL语句!

对于楼主的问题,我提出我的方法,可能比较麻烦,不是你想要得方法,仅仅作为参考,谢谢。
问题是:把EXCEL中的数据导入到数据库中,修改数据库中E_mail字段相对应的IsUsed的值?

可以使用update语句进行更新,用for循环把excel中的每一行取出来进行操作,取出的每一行都有两个值,一个是E_mail字段,另一个是对应的IsUsed的值,然后把这两个值作为参数传递到如下sql语句中
update table set isUsed=? where E_mail=?;

执行上面的sql语句,就可以更新表中相应的数据了。

导入jxl.jar包
读取excel的代码如下:
String path=““;//excel文件所在目录
Workbook wb = null;
try {
wb = Workbook.getWorkbook(new File(path));
Sheet sheet = wb.getSheet(0);//读取第一个sheet
Cell cell = sheet.getColumn(0);//读取第一列数据
String E_mail = null;
int IsUsed = 0;
for (int i = 1; i 《 cell.length; i++) {
E_mail=sheet.getCell(0, i).getContents();
E_mail=Integer.parseInt(sheet.getCell(1, i).getContents();)
//然后在这里写数据库更新代码,E_mail和E_mail是两个参数。

}
}
book.close();
} catch (Exception e) {
e.printStackTrace();
}

如何用SQL语句查询一个数据表所有字段的类型

用SQL语句查询一个数据表所有字段的类型可以参考下面的代码:

SELECT

name AS column_name,TYPE_NAME(system_type_id) AS column_type,

max_length,is_nullable

FROM sys.columns

WHERE object_id=OBJECT_ID(N’Address’)

扩展资料:

SQL语句

创建索引:create [unique] index idxname on tabname(col…。)

增加列:Alter table table_name add column_name column_type [default 默认值]--在表中增加一列,内的内容为可选项

删除索引:drop index idxname on tabname

参考资料来源:百度百科-结构化查询语言

用SQL语句创建存储过程

--1、创建存储过程--
if
exists
(select
*
from
sysobjects
where
name=’info1’)
drop
procedure
info1
go
create
procedure
info1
@sname
varcher(20),
as
begin
declear
@xinxi
varcher(20)
set
@xinxi=’select
学号,姓名,出身日期,系别(注,列名自己设置)
from
student
where
姓名=@sname’
print’@xinxi’;
end
--调用存储过程1--
exec
info1
@sname=姓名
后面的自己参考,可以写出来

SQL的基本语法

一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_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
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加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 field1 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 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT 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/cross (outer) join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:Group by:
一张表,一旦分组 完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
在selecte统计函数中的字段,不能和普通的字段放在一起;
13、对数据库进行操作:
分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加需要完整的路径名
14.如何修改数据库的名称:
sp_renamedb ’old_name’, ’new_name’

二、提升
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1《》1(仅用于SQlServer)
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in ’“&Server.MapPath(“.“)&“\data.mdb“ &“’ where..
4、说明:子查询(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
5、说明:显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
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
7、说明:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a 》 1;
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
9、说明:in 的使用方法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
10、说明:两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、说明:四表联查问题:
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 .....
12、说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff(’minute’,f开始时间,getdate())》5
13、说明:一条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的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)
14、说明:前10条记录
select top 10 * form table1 where 范围
15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、说明:随机取出10条数据
select top 10 * from tablename order by newid()
18、说明:随机选择记录
select newid()
19、说明:删除重复记录
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
评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作
3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段
alter table tablename
--添加一个自增列
add column_b int identity(1,1)
delete from tablename where column_b not in(
select max(column_b) from tablename group by column1,column2,...)
alter table tablename drop column column_b
20、说明:列出数据库里所有的表名
select name from sysobjects where type=’U’ // U代表用户
21、说明:列出表里的所有的列名
select name from syscolumns where id=object_id(’TableName’)
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
23、说明:初始化表table1
TRUNCATE TABLE table1
24、说明:选择从10到15的记录
select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

怎么进行mysql数据库优化

有八个方面可以对mysql进行优化:
1、选取最适用的字段属性
MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。
2. 使用连接(JOIN)来代替子查询(Sub-Queries)
MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。
3、使用联合(UNION)来代替手动创建的临时表
MySQL从4.0的版本开始支持union查询,它可以把需要使用临时表的两条或更多的select查询合并的一个查询中。在客户端的查询会话结束的时候,临时表会被自动删除,从而保证数据库整齐、高效。
4、事务
尽管我们可以使用子查询(Sub-Queries)、连接(JOIN)和联合(UNION)来创建各种各样的查询,但不是所有的数据库操作都可以只用一条或少数几条SQL语句就可以完成的。更多的时候是需要用到一系列的语句来完成某种工作。但是在这种情况下,当这个语句块中的某一条语句运行出错的时候,整个语句块的操作就会变得不确定起来。设想一下,要把某个数据同时插入两个相关联的表中,可能会出现这样的情况:第一个表中成功更新后,数据库突然出现意外状况,造成第二个表中的操作没有完成,这样,就会造成数据的不完整,甚至会破坏数据库中的数据。要避免这种情况,就应该使用事务,它的作用是:要么语句块中每条语句都操作成功,要么都失败
5、锁定表
尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在很大的应用系统中。由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务结束。其实,有些情况下我们可以通过锁定表的方法来获得更好的性能。
6、使用外键
锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性。这个时候我们就可以使用外键。
7、使用索引
索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(),MIN()和ORDERBY这些命令的时候,性能提高更为明显。
8、优化的查询语句
绝大多数情况下,使用索引可以提高查询的速度,但如果SQL语句使用不恰当的话,索引将无法发挥它应有的作用。

plsql怎样自动生成sql语句

自动生成怎样的sql语句?

select、还是建表、建视图的DDL语句

如果是建表、建视图的DDL,可以使用tools--export 导出成sql语句的方式。

如果是select语句,可以用 tools--query builder

关于sql语句,sql查询语句大全的介绍到此结束,希望对大家有所帮助。

sql查询语句大全?经典sql语句

本文编辑:admin

更多文章:


dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

本篇文章给大家谈谈dropdownlist 绑定,以及DropDownList 绑定所有项 并 显示指定项对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 08:50

协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

最近更新

repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026-10-11 09:00:05 浏览:0
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026-10-11 08:50:04 浏览:0
majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
热门文章

标签列表