首页技术sql语句大全及用法 sql菜鸟教程

sql语句大全及用法 sql菜鸟教程

编程之家2026-06-28661次浏览

大家好,今天小编来为大家解答以下的问题,关于sql语句大全及用法,sql菜鸟教程这个很多人还不知道,现在让我们一起来看看吧!

sql语句大全及用法 sql菜鸟教程

SQL数据库语句大全

经典SQL语句大全

下列语句部分是Mssql语句,不可以在access中使用。

SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

sql语句大全及用法 sql菜鸟教程

首先,简要介绍基础语句:

1、说明:创建数据库

CREATE DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

sql语句大全及用法 sql菜鸟教程

---创建备份数据的 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 outer join:

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

其次,大家来看一些不错的sql语句

1、说明:复制表(只复制结构,源表名:a新表名:b)(Access可用)

法一:select* into b from a where 1<>1

法二: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.排序字段

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、说明:删除重复记录

Delete from tablename where id not in(select max(id) from tablename group by col1,col2,...)

20、说明:列出数据库里所有的表名

select name from sysobjects where type='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

随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)

对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:

Randomize

RNumber= Int(Rnd*499)+1

While Not objRec.EOF

If objRec("ID")= RNumber THEN

...这里是执行脚本...

end if

objRec.MoveNext

Wend

这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID的值、检查其是否匹配RNumber。满足条件的话就执行由THEN关键字开始的那一块代码。假如你的RNumber等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?

采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:

Randomize

RNumber= Int(Rnd*499)+ 1

SQL="SELECT* FROM Customers WHERE ID="& RNumber

set objRec= ObjConn.Execute(SQL)

Response.WriteRNumber&"="& objRec("ID")&""& objRec("c_email")

不必写出RNumber和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。

再谈随机数

现在你下定决心要榨干Random函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random示例扩展一下就可以用SQL应对上面两种情况了。

为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:

SQL="SELECT* FROM Customers WHERE ID="& RNumber&" OR ID="& RNumber2&" OR ID="& RNumber3

假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT语句只显示一种可能(这里的ID是自动生成的号码):

SQL="SELECT* FROM Customers WHERE ID BETWEEN"& RNumber&" AND"& RNumber&"+ 9"

注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。

随机读取若干条记录,测试过

Access语法:SELECT top 10* From表名 ORDER BY Rnd(id)

Sql server:select top n* from表名 order by newid()

mysql select* From表名 Order By rand() Limit n

Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试,现在记下以备后查)

语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where...

使用SQL语句用...代替过长的字符串显示

语法:

SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename

Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

Conn.Execute说明

Execute方法

该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:

1.执行SQL查询语句时,将返回查询得到的记录集。用法为:

Set对象变量名=连接对象.Execute("SQL查询语言")

Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。

2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:

连接对象.Execute"SQL操作性语句" [, RecordAffected][, Option]

·RecordAffected为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。

·Option可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。

·BeginTrans、RollbackTrans、CommitTrans方法

这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。

事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。

BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。

SQL语句大全精要

2006/10/26 13:46

DELETE语句

DELETE语句:用于创建一个删除查询,可从列在 FROM子句之中的一个或多个表中删除记录,且该子句满足 WHERE子句中的条件,可以使用DELETE删除多个记录。

语法:DELETE [table.*] FROM table WHERE criteria

语法:DELETE* FROM table WHERE criteria='查询的字'

说明:table参数用于指定从其中删除记录的表的名称。

criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。

可以使用 Execute方法与一个 DROP语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。

UPDATE

有关UPDATE,急!!!!!!!!!!!

在ORACLE数据库中

表 A( ID,FIRSTNAME,LASTNAME)

表 B( ID,LASTNAME)

表 A中原来ID,FIRSTNAME两个字段的数据是完整的

表 B中原来ID,LASTNAME两个字段的数据是完整的

现在要把表 B中的LASTNAME字段的相应的数据填入到A表中LASTNAME相应的位置。两个表中的ID字段是相互关联的。

先谢谢了!!!!

update a set a.lastname=(select b.lastname from b where a.id=b.id)

掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。

练掌握SQL是数据库用户的宝贵财富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。

在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。

SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。

SQL语言参考大全的目录

第1章数据库配置与管理1

第2章使用企业管理器管理数据库75

第3章SQL语言基础103

3.1SQL语言概述104

3.1.1SQL概述104

3.1.2SQL语言的组成104

3.1.3SQL语句结构106

3.1.4T-SQL语句分类106

3.2数据类型107

3.2.1整数数据类型107

3.2.2浮点数据类型107

3.2.3字符数据类型108

3.2.4日期和时间数据类型109

3.2.5货币数据类型109

3.2.6二进制数据类型110

3.2.7文本和图像数据类型110

3.2.8用户自定义类型110

3.3常量112

3.3.1数值常量112

3.3.2字符串常量112

3.3.3日期和时间常量112

3.4变量112

3.4.1局部变量112

3.4.2全局变量114

3.5运算符116

3.5.1算术运算符116

3.5.2赋值运算符117

3.5.3逻辑运算符118

3.6流程控制语句119

3.6.1语句块BEGIN...END119

3.6.2IF条件选择语句121

3.6.3IF...ELSE122

3.6.4CASE分支选择语句124

3.6.5WHILE循环语句127

3.6.6WHILE...CONTINUE...BREAK循环128

3.6.7RETURN129

3.6.8GOTO130

3.6.9WAITFOR131

3.7常用命令132

3.7.1DBCC命令132

3.7.2CHECKPOINT命令134

3.7.3DECLARE命令134

3.7.4PRINT命令136

3.7.5RAISERROR命令139

3.7.6READTEXT命令139

3.7.7BACKUP命令140

3.7.8SELECT命令141

3.7.9SET命令143

3.7.10SHUTDOWN命令144

3.7.11WRITETEXT命令145

3.7.12USE命令145

第4章管理数据库与数据表147

4.1数据库管理148

4.1.1创建数据库148

4.1.2修改数据库152

4.1.3删除数据库158

4.2数据表管理159

4.2.1创建数据表160

4.2.2查看数据表167

4.2.3修改数据表169

4.2.4删除数据表177

第5章添加数据179

5.1插入单行记录180

5.1.1INSERT语句基本语法180

5.1.2插入整行数据180

5.1.3插入NULL值181

5.1.4惟一值的插入181

5.1.5特定字段数据插入182

5.1.6插入默认值184

5.1.7插入日期数据184

5.1.8通过视图插入行186

5.1.9向表中插入记录时注意指定的不同的字段顺序186

5.1.10插入的数据类型值与实际中的数据类型不匹配时,系统将输出错误提示187

5.1.11向表中插入字段的个数少于表中实际字段的个数,有时会出错188

5.2插入多行记录189

5.2.1插入多行记录的语法格式189

5.2.2使用VALUES关键字引入多行数据插入189

5.2.3使用SELECT语句插入值190

5.3表中数据的复制191

5.3.1基本语法191

5.3.2表中数据的复制应用191

5.4将SQL Server中数据导出到记事本中192

5.5将SQL Server中的数据导入/导出到Excel数据表中193

5.5.1从Excel导入数据到SQL Server中193

5.5.2从SQL Server中将数据导出到Excel数据表中194

5.6将SQL Server中的数据导入/导出到ACCESS中196

5.6.1从ACCESS导入数据到SQL Server中196

5.6.2将SQL Server中的数据导出到ACCESS中197

第6章修改和删除数据199

6.1UPDATE语句的基本语法200

6.2使用UPDATE语句更新列值202

6.3利用子查询更新行中的值205

6.3.1语法格式205

6.3.2利用子查询返回的行数不多于一行(只返回一个值)205

6.3.3利用子查询返回多行(返回多个值)206

6.3.4利用内连接查询来更新数据表中的信息207

6.4依据外表值更新数据209

6.5赋值UPDATE210

6.5.1使用UPDATE为表中所有行中的数据赋值(省略WHERE子句)210

6.5.2使用UPDATE为表中的多行数据赋值211

6.5.3使用UPDATE为表中的一行数据赋值(WHERE子句不能省)211

6.6分步更新表中的数据212

6.7修改指定字段的数据值214

6.7.1修改指定datetime类型字段内的数据214

6.7.2修改指定int类型字段内的数据215

6.7.3修改指定varchar类型字段内的数据215

6.7.4修改指定float类型字段内的数据216

6.8DELETE语句的基本语法217

6.9使用DELETE语句删除数据217

6.9.1使用DELETE语句删除所有数据(省略WHERE子句)217

6.9.2使用DELETE语句删除多行数据219

6.9.3DELETE语句删除单行数据(WHERE子句不能省)220

6.10删除重复行221

6.10.1删除完全重复行221

6.10.2删除部分重复行222

6.11使用TRUNCATE TABLE语句删除数据224

6.12使用DELETE语句中带有的TOP子句224

6.13删除指定字段数据为空的记录225

6.14通过视图更新表226

6.14.1通过视图更新表数据226

6.14.2通过视图删除表数据228

第7章SQL的基本查询229

7.1简单查询230

7.1.1SELECT语句基本结构230

7.1.2单列查询230

7.1.3多列查询231

7.1.4查询所有的列232

7.1.5别名的应用232

7.1.6使用TOP查询前若干行235

7.1.7除掉重复列237

7.2计算列查询238

7.2.1连接列值238

7.2.2查询中使用计算列238

7.2.3查询中使用表达式240

7.3条件查询242

7.3.1WHERE子句242

7.3.2使用“=”查询数据242

7.3.3使用“”查询数据243

7.3.4使用“”查询数据243

7.3.5使用“=”查询数据244

7.3.6使用“=”查询数据244

7.3.7使用“!”查询数据245

7.3.8使用“!”查询数据245

7.3.9使用“!=”和“”查询数据245

7.4范围查询(BETWEEN)246

7.4.1查询两数之间的数据246

7.4.2查询两个日期之间的数据247

7.4.3在BETWEEN中使用日期函数247

7.4.4查询不在两数之间的数据248

7.5逻辑运算符249

7.5.1使用AND运算符249

7.5.2使用OR运算符250

7.5.3使用NOT运算符251

7.5.4使用OR、AND进行查询252

7.6格式化结果集252

7.6.1格式化日期253

7.6.2格式化小数位数253

7.6.3除去空格254

第8章复杂查询257

8.1模糊查询258

8.1.1LIKE谓词258

8.1.2“%”通配符的使用259

8.1.3“_”通配符的使用259

8.1.4“[]”通配符的使用260

8.1.5“[^]”通配符的使用260

8.1.6ESCAPE转义字符261

8.2IN运算符262

8.2.1使用IN查询数据263

8.2.2在IN中使用运算263

8.2.3在IN中使用列进行查询264

8.2.4使用NOT IN查询数据264

8.2.5使用NOT IN查询后两行数据265

8.3行查询266

8.3.1随机查询一行数据266

8.3.2结果集中添加行号267

8.3.3查询隔行数据268

8.3.4查询指定范围内的所有行数据269

8.4空值(NULL)判断270

8.4.1查询空值(IS NULL)270

8.4.2查询非空值(IS NOT NULL)271

8.4.3对空值进行处理271

8.5对结果集操作273

8.5.1利用结果集创建永久表273

8.5.2利用结果集创建临时表274

8.6复杂条件查询274

8.6.1查询表中的第n行数据274

8.6.2查询考试成绩最高的分数276

8.6.3查询各部门人数277

8.6.4查询各部门基本工资最低的员工278

第9章数据排序279

9.1数值数据排序280

9.1.1按升序和降序排列280

9.1.2按列别名排序281

9.1.3在ORDER BY子句中使用表达式283

9.1.4按空值排序283

9.1.5对多列排序287

9.1.6对数据表中的指定行数进行排序289

9.2字符串排序293

9.2.1按字符串中的子串排序293

9.2.2按字符串中的数值排序298

9.3汉字排序299

9.3.1排序规则简介299

9.3.2按姓氏笔画排序300

9.3.3按拼音排序301

9.4按列的编号排序301

9.5动态排序303

9.5.1在MS SQL Server中的动态排序303

9.5.2在Oracle 9i中的动态排序304

9.6随机排序306

第10章数据统计分析307

10.1聚合函数308

10.2聚合函数的典型应用309

10.2.1求平均值309

10.2.2获取结果集行数311

10.2.3计算不包括最大值和最小值的平均值313

10.2.4对多列求和314

10.2.5在WHERE子句中使用聚合函数316

10.2.6Oracle 9i数据库NVL()函数在聚合函数中的使用316

10.2.7多个聚合函数的使用317

10.3分组统计318

10.3.1使用GROUP BY子句创建分组318

10.3.2使用GROUP BY子句创建多列分组319

10.3.3对表达式进行分组统计320

10.3.4在统计中使用ROLLUP关键字和CUBE关键字321

10.3.5在SQL查询语句中GROUP BY子句的NULL值处理323

10.3.6使用HAVING子句设置统计条件323

10.3.7使用COMPUTE子句在结果集中显示明细和汇总行325

10.3.8使用COMPUTE BY子句显示多级分类汇总327

10.3.9对统计结果排序328

10.3.10在WHERE子句中使用GROUP BY子句329

10.3.11GROUP BY子句的特殊用法329

第11章子查询331

11.1简单子查询332

11.1.1SELECT列表中的子查询333

11.1.2多列子查询333

11.1.3比较子查询334

11.1.4在子查询中使用聚合函数335

11.2多行子查询335

11.2.1使用IN操作符的多行子查询336

11.2.2使用NOT IN子查询实现差集运算336

11.2.3理解通过量词实现多行子查询337

11.2.4使用ALL操作符的多行子查询338

11.2.5使用ANY/SOME操作符的多行子查询339

11.2.6EXISTS子查询实现两表交集340

11.2.7NOT EXISTS子查询实现两表的差集343

11.2.8UNIQUE子查询344

11.3相关子查询344

11.3.1使用IN引入相关子查询345

11.3.2使用NOT IN引入相关子查询345

11.3.3在子查询中使用总计函数返回单个值347

11.3.4理解子查询在WHERE子句中的作用347

11.3.5在HAVING子句中使用相关子查询348

11.4嵌套子查询349

11.4.1嵌套子查询349

11.4.2复杂的嵌套查询350

11.4.3嵌套查询在查询统计中的应用352

11.4.4在UPDATE中使用子查询353

11.4.5在INSERT中使用子查询354

11.4.6在DELETE中使用子查询354

11.5组合查询355

11.5.1交集运算355

11.5.2差集运算355

11.5.3通过UNION合并多个结果集356

11.5.4使用UNION ALL保留重复行357

11.5.5通过UNION语句提高查询结果的可读性358

11.5.6在UNION中通过文字确定数据的来源359

11.5.7通过UNION ALL语句将数据表中的指定记录优先显示360

11.6递归查询361

11.6.1CTE361

11.6.2递归查询362

第12章多表连接365

12.1多表连接366

12.1.1笛卡尔乘积366

12.1.2通过WHERE子句连接多表367

12.1.3通过FROM子句连接多表367

12.1.4在多表连接中设置连接条件368

12.1.5在多表连接中返回某个表的所有列369

12.1.6通过设置表别名提高SQL可读性369

12.2内连接370

12.2.1等值连接370

12.2.2不等值连接371

12.2.3自然连接372

12.2.4复杂的内连接查询372

12.3外连接373

12.3.1左外连接373

12.3.2右外连接374

12.3.3全外连接375

12.3.4通过外连接进行多表联合查询376

12.4其他连接377

12.4.1自连接377

12.4.2交叉连接377

第13章聚合与旋转数据379

13.1聚合数据380

13.1.1聚合数据380

13.1.2OVER子句380

13.1.3附加属性(Tiebreakers)383

13.1.4累积聚合384

13.1.5滑动聚合386

13.1.6YTD聚合388

13.2旋转数据(交叉表)388

13.2.1结果集的简单旋转389

13.2.2将结果集旋转成一行389

13.2.3将结果集旋转后求和390

13.2.4结果集旋转后汇总重复字段392

13.2.5动态生成旋转数据393

13.2.6结果集的反向旋转394

13.3常用交叉表查询395

13.3.1Access交叉表查询395

13.3.2SQL Server 2000交叉表查询397

13.3.3SQL Server 2005交叉表查询方案398

第14章视图403

14.1视图概述404

14.2视图创建404

14.2.1使用企业管理器创建视图404

14.2.2使用CREATE VIEW语句创建视图407

14.2.3使用向导创建视图409

14.2.4创建基于视图的视图411

14.3视图重命名413

14.4视图修改413

14.4.1使用企业管理器修改视图413

14.4.2使用ALTER VIEW语句修改视图414

14.5视图定义信息查询416

14.6视图删除418

14.6.1使用企业管理器删除视图418

14.6.2使用DROP VIEW语句删除视图419

14.7视图应用420

14.7.1通过视图添加数据420

14.7.2通过视图更新数据422

14.7.3通过视图删除数据422

14.7.4通过视图简化复杂查询423

14.7.5通过视图过滤不想要的数据424

14.7.6通过视图显示表达式的结果424

14.7.7在视图中使用WITH CHECK OPTION子句426

14.8使用视图加强数据安全427

14.8.1对视图进行加密427

14.8.2对不同的用户设置权限428

14.8.3通过视图限制用户对列的访问430

14.8.4通过视图限制用户对行的访问430

第15章存储过程433

15.1存储过程概述434

15.1.1存储过程的概念434

15.1.2存储过程的作用和功能434

15.1.3存储过程的优点435

15.2创建存储过程436

15.2.1CREATE PROCEDURE语句436

15.2.2创建具有回传参数的存储过程440

15.2.3在存储过程中使用事务448

15.2.4使用Return语句从存储过程中返回值449

15.3管理存储过程450

15.3.1执行存储过程451

15.3.2执行具有回传参数的存储过程453

15.3.3查看存储过程454

15.3.4修改存储过程456

15.3.5删除存储过程459

15.3.6存储过程的重新编译460

15.3.7调试存储过程462

15.3.8执行远程存储过程463

15.3.9扩展存储过程466

15.4在Oracle数据库下创建存储过程467

15.4.1创建存储过程467

15.4.2执行存储过程469

15.4.3删除存储过程469

15.5在MySQL数据库下创建存储过程469

15.5.1创建存储过程469

15.5.2执行存储过程471

第16章自定义函数及应用473

16.1自定义函数概述474

16.1.1自定义函数的特点474

16.1.2自定义函数的类别474

16.1.3自定义函数中有效语句类型474

16.2创建函数475

16.2.1创建自定义函数475

16.2.2创建标量函数476

16.2.3创建内联表值函数479

16.2.4创建多语句表值函数480

16.3管理函数482

16.3.1调用函数482

16.3.2查看函数483

16.3.3修改函数485

16.3.4删除函数487

16.3.5函数的架构绑定488

16.4函数与存储过程的区别489

第17章触发器491

17.1触发器的优点492

17.2触发器的种类492

17.2.1SQL Server中触发器的种类492

17.2.2Oracle中触发器的种类493

17.3创建触发器493

17.3.1创建简单的触发器493

17.3.2创建具有触发条件的触发器500

17.3.3创建嵌套触发器503

17.3.4创建递归触发器506

17.3.5创建INSTEAD OF触发器508

17.3.6创建列级触发器511

17.4管理触发器513

17.4.1查看触发器513

17.4.2修改触发器515

17.4.3重命名触发器517

17.4.4禁用和启用触发器518

17.4.5删除触发器519

17.5应用触发器520

17.5.1应用触发器添加数据520

17.5.2应用触发器修改数据522

17.5.3应用触发器删除数据523

17.6在Oracle数据库下创建触发器524

17.6.1DML触发器524

17.6.2创建DDL触发器526

17.7在MySQL数据库下创建触发器527

第18章游标及应用529

18.1创建游标530

18.1.1声明游标530

18.1.2打开游标532

18.1.3读取游标中数据533

18.1.4嵌套游标536

18.1.5关闭并释放游标538

18.1.6创建参数化游标539

18.2游标属性541

18.2.1获取游标状态541

18.2.2获取游标行数543

18.3游标操作544

18.3.1基于游标定位修改数据544

18.3.2基于游标定位删除数据546

18.3.3在游标中包含计算列547

18.3.4将游标中的数据进行排序显示549

18.4动态游标550

18.4.1声明游标变量550

18.4.2使用游标变量550

18.5游标系统存储过程553

18.5.1sp_cursor_list存储过程553

18.5.2sp_describe_cursor存储过程554

18.5.3sp_describe_cursor_columns存储过程556

18.5.4sp_describe_cursor_tables存储过程558

18.6在Oracle数据库下使用游标559

18.6.1显式游标559

18.6.2隐式游标561

第19章事务563

19.1事务概述564

19.1.1显式事务与隐性事务564

19.1.2设置事务属性567

19.1.3事务的工作机制568

19.1.4编写有效的事务569

19.2事务操作570

19.2.1提交事务570

19.2.2设置事务回退点572

19.2.3回滚事务574

19.3事务并发控制575

19.3.1事务的并发问题575

19.3.2表级锁定576

19.3.3设置事务隔离层并发控制579

19.3.4死锁的产生及预防581

19.4分布事务处理582

19.4.1分布式事务简介582

19.4.2创建分布式事务583

19.4.3分布式处理协调器583

第20章索引585

20.1索引的概述586

20.1.1索引的基本概念586

20.1.2索引的分类587

20.1.3使用索引的原则587

20.2创建索引588

20.2.1创建简单的非簇索引588

20.2.2创建多字段非簇索引590

20.2.3创建惟一索引591

20.2.4创建簇索引593

20.2.5创建虚拟列索引596

20.3维护索引598

20.3.1查看是否需要维护索引598

20.3.2重构索引600

20.3.3整理索引碎片602

20.3.4删除索引603

第21章聚合函数605

21.1统计聚合函数606

21.1.1求和函数606

21.1.2最大值函数610

21.1.3最小值函数613

21.1.4平均值函数617

21.1.5标准偏差函数621

21.1.6方差函数625

21.2行聚合函数630

21.2.1SQL Server:Count()函数630

21.2.2Oracle:Count()函数631

21.2.3MySql:Count()函数632

21.3列表函数632

21.3.1列表最大值函数632

21.3.2列表最小值函数634

第22章数学函数637

22.1符号转换判断函数638

22.1.1绝对值函数638

22.1.2符号判断函数640

22.2取舍函数641

22.2.1四舍五入函数641

22.2.2向上取整函数643

22.2.3向下取整函数645

22.3三角函数646

22.3.1正弦函数647

22.3.2反正弦函数649

22.3.3余弦函数650

22.3.4正切函数652

22.3.5反正切函数654

22.3.6余切函数656

22.3.7角度/弧度函数657

22.4指数/对数函数659

22.4.1指数函数659

22.4.2对数函数665

22.5进制转换函数668

22.5.1Oracle:Hextoraw()函数668

22.5.2Oracle:Rawtohex()函数669

22.6随机函数669

22.6.1SQL Server:Rand函数670

22.6.2MySQL:Rand()函数670

第23章字符串处理函数673

23.1大小写转换函数674

23.1.1大写转换函数674

23.1.2小写转换函数676

23.2去除空格函数678

23.2.1去除左空格函数678

23.2.2去除右空格函数680

23.3连接与截取函数681

23.3.1连接函数681

23.3.2截取函数683

23.4查找\替换函数686

23.4.1查找函数686

23.4.2替换函数693

23.5其他字符处理函数697

23.5.1转换函数697

23.5.2修改函数701

23.5.3比较函数709

第24章日期时间处理函数713

24.1日期时间获取函数714

24.1.1日期获取函数714

24.1.2时间获取函数726

24.1.3星期函数729

24.2日期时间处理函数734

24.2.1日期修改函数734

24.2.2时间修改函数738

24.3日期时间比较函数741

24.3.1日期比较函数741

24.3.2时间比较函数743

24.4日期时间截取函数743

24.4.1获取日期时间各个部分743

24.4.2日期时间截取函数745

24.4.3日期时间格式化函数747

24.4.4日期时间格式化函数748

第25章数学函数753

25.1通用类型转换函数754

25.1.1SQL Server:Cast()函数754

25.1.2SQL Server:Convert()函数754

25.1.3Oracle:Convert()函数755

25.1.4Oracle:Cast()函数756

25.1.5MySQL:Convert()函数756

25.2具体类型转换函数757

25.2.1Oracle:To_Char()函数757

25.2.2Oracle:To_Data()函数757

25.2.3Oracle:AscIIStr()函数757

25.2.4Oracle:Bin_to_num()函数758

25.2.5Oracle:CharToRowID()函数758

25.2.6Oracle:Compose()函数759

25.2.7Oracle:DeCompose()函数759

25.2.8Oracle:RowIDToChar()函数760

25.2.9Oracle:To_Number()函数760

25.2.10MySQL:Str_To_Date()函数761

25.3类型判断函数761

25.3.1SQL Server:IsDate()函数761

25.3.2SQL Server:IsNull()函数762

25.3.3SQL Server:IsNumeric()函数762

25.3.4SQL Server:NullIf()函数763

实例索引765

……

在sql语句中,like所有的用法

在sql结构化查询语言中,like语句有着至关重要的作用。

like语句的语法格式是:select* from表名 where字段名 like对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。

A:%包含零个或多个字符的任意字符串:

1、like'Mc%'将搜索以字母 Mc开头的所有字符串(如 McBadden)。

2、like'%inger'将搜索以字母 inger结尾的所有字符串(如 Ringer、Stringer)。

3、like'%en%'将搜索在任何位置包含字母 en的所有字符串(如 Bennet、Green、McBadden)。

B:_(下划线)任何单个字符:

like'_heryl'将搜索以字母 heryl结尾的所有六个字母的名称(如 Cheryl、Sheryl)。

C:[ ]指定范围([a-f])或集合([abcdef])中的任何单个字符:

1,like'[CK]ars[eo]n'将搜索下列字符串:Carsen、Karsen、Carson和 Karson(如 Carson)。

2、like'[M-Z]inger'将搜索以字符串 inger结尾、以从 M到 Z的任何单个字母开头的所有名称(如 Ringer)。

D:[^]不属于指定范围([a-f])或集合([abcdef])的任何单个字符:

like'M[^c]%'将搜索以字母 M开头,并且第二个字母不是 c的所有名称(如MacFeather)。

E:*它同于DOS命令中的通配符,代表多个字符:

c*c代表cc,cBc,cbc,cabdfec等多个字符。

F:?同于DOS命令中的?通配符,代表单个字符:

b?b代表brb,bFb等

G:#大致同上,不同的是代只能代表单个数字。k#k代表k1k,k8k,k0k。

下面我们来举例说明一下:

例1,查询name字段中包含有“明”字的。

select* from table1 where name like'%明%'

例2,查询name字段中以“李”字开头。

select* from table1 where name like'李*'

例3,查询name字段中含有数字的。

select* from table1 where name like'%[0-9]%'

例4,查询name字段中含有小写字母的。

select* from table1 where name like'%[a-z]%'

例5,查询name字段中不含有数字的。

select* from table1 where name like'%[!0-9]%'

以上例子能列出什么值来显而易见。但在这里,我们着重要说明的是通配符“*”与“%”的区别。

很多朋友会问,为什么我在以上查询时有个别的表示所有字符的时候用"%"而不用“*”?先看看下面的例子能分别出现什么结果:

select* from table1 where name like'*明*'

select* from table1 where name like'%明%'

大家会看到,前一条语句列出来的是所有的记录,而后一条记录列出来的是name字段中含有“明”的记录,所以说,当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“*”,用“*”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。

文章分享结束,sql语句大全及用法和sql菜鸟教程的答案你都知道了吗?欢迎再次光临本站哦!

网页设计个人主页(设计一个简单的网页)原神面板评分工具,原神角色评分工具