简述select语句的完整语法_SQL里的各种语句的完整语法

SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

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

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

1、create:

语句                                          说明

CREATE DATABASE database-name                               创建数据库

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)     创建新表

create table tab_new like tab_old (使用旧表创建新表)                    根据已有的表创建新表

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

create view viewname as select statement                        创建视图

2、drop

语句                                        说明

drop database dbname                               删除数据库

drop table tabname                                 删除表

drop index idxname                                 删除索引

drop view viewname                                 删除视图3、alter

Alter table tabname add column col type                      增加一列

Alter table tabname add primary key(col)                      增加主键

Alter table tabname drop primary key(col)                     删除主键

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

1、select

根据范围选择:select * from table1 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

说明:几个高级查询运算词

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),不消除重复行。

D:Join连接查询

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:

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

E、其次,大家来看一些不错的select语句

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;

2、DELETE

删除:delete from table1 where 范围

3、insert

插入:insert into table1(field1,field2) values(value1,value2)

4、update

更新:update table1 set field1=value1 where 范围

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 坐标点计算器,Android实现简易计算器

开之前我还是想问问老师&#xff0c;为什么一定要星期天前交作业呢&#xff1f;由于条件限制&#xff0c;作品是赶出来的不是细细琢磨出来的。所以在这版apk中功能较为简易&#xff0c;有待后期再不断更新与优化总体效果图如下布局activity_main.xml部分代码功能代码MainActivi…

使用反射进行测试

根据我以前的帖子&#xff0c;我正在撰写有关“单一责任原则”的演讲。 我花了大部分时间。 同时&#xff0c;我想分享一个示例代码&#xff0c;说明如何在类中测试内部字段。 我这样做是为了进行特殊的测试&#xff0c;这更多的是集成测试。 在依赖类的标准单元测试中&#x…

1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?

罗斯蒙特变送器怎么恢复出厂设置?特殊情况下&#xff0c;罗斯蒙特变送器需要恢复出厂设置。罗斯蒙特变送器进行出厂设置的方法非常简单&#xff0c;只需要用手操器或AMS设备管理器就能操作。罗斯蒙特手操器里有一个恢复出厂调整值–传感器量程调整命令&#xff0c;使用此命令就…

【技术累积】【点】【java】【25】Orderd

基础概念 Orderd是spring core中定义的一个接口&#xff0c;使用它以及相关的Comparator和Order注解&#xff0c;可以实现对元素的排序。 Order 直接先说下Order注解吧&#xff0c;使用场景较多。 Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.M…

android 展示星期方式,Android显示从一周到另一周的日期(星期四至星期四)

最后我得到了工作一个解决方案&#xff0c;解决我的问题&#xff1a;在OnCreate中&#xff1a;TextView tv_chart_menuvotes (TextView) findViewById(R.id.tv_chart_menuvotes);String csPrevThur getPreviousThursday();String csNextThur getNextThursday();tv_chart_men…

Java 8 – Date API的新增功能

随着Java 8最终版本的发布&#xff0c;令我兴奋的新功能之一就是新的Date API&#xff0c;这是JSR 310的工作成果。 尽管Lambda表达式无疑是Java 8的一大亮点&#xff0c;但是拥有更好的日期处理方式无疑是受欢迎的。 这是一篇简短的文章&#xff08;第2部分或第3部分的第1部分…

ps抠图怎么放大图片_PS抠图时选区图片放大后,怎么移动图片抠图选区?

我们在Photoshop中使用套索、钢笔等工具进行抠图选区的时候&#xff0c;经常需要将图片放大&#xff0c;保证抠图选区的精确性&#xff0c;但是同时因为图片放大后超出了显示区域&#xff0c;我们在移动抠图选区工具进行抠图选区的时候&#xff0c;总是出现各种错误&#xff0c…

perl 用网易发邮件报错 554 DT:SPM 163 smtp14

查看相关链接&#xff0c;貌似被当成垃圾邮件了&#xff0c;发不出去 554 DT:SPM 163 smtp14,EsCowACHUegmKpdc3giRMQ--.29617S2 1553410599,please see http://mail.163.com/help/help_spam_16.htm?ip183.30.222.245&hostidsmtp14&time1553410599 脚本改成CC给自己&a…

Guzzle – 构建 RESTful Web 服务的 PHP HTTP 框架

Guzzle 减轻了发送 HTTP 请求和创建 Web 服务客户端的痛苦。它包含建立一个强大的网络服务客户端的工具&#xff0c;包括&#xff1a;服务描述定义的输入和输出的 API&#xff0c;资源迭代器遍历分页资源&#xff0c;尽可能有效地发送大量的请求。 您可能感兴趣的相关文章特别推…

合成和桥接方法

如果您曾经玩过反射并执行了getDeclaredMethods()您可能会感到惊讶。 您可能会获得源代码中不存在的方法。 或者&#xff0c;也许您看了一些方法的修饰符&#xff0c;发现其中一些特殊方法是易变的。 顺便说一句&#xff1a;对于Java采访来说&#xff0c;这是一个令人讨厌的问题…

小米手机升级Android6,小米3能升级miui 6?小米3升级miui v6教程

小米3升级miui v6教程来咯~小编还带来了miui v6下载&#xff0c;MIUI V6系统有了很多的变化&#xff0c;小米3是可以升级miui6系统的哦~如果你不知道步骤的话&#xff0c;就请参考下文吧。第一步、下载工具包和线刷完整包&#xff0c;下载完成后解压(请检查线刷包文件后缀名是否…

hibernate使用sessionfactory插入数据

1.引入hibernate-core.jar 2.java代码 public void meth{ Session session sessionFactory.openSession();Transaction tr session.beginTransaction();//1.创建Customer对象//2.调用Session的save()方法&#xff0c;将Customer对象持久化session.save(jbpmTaskInherit);tr.c…

lisp 揭 院长_HISLISPACSRIS EMR系统简介

HIS(LIS、PACS、RIS、EMR)系统简介一、定义说明医院信息系统(Hospital Information System, HIS)&#xff0c;利用电子计算机和通讯设备&#xff0c;为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据交换的能力&#xff0c;并满足所有授权用户的…

第一次java作业

转载于:https://www.cnblogs.com/TuTu-winer/p/10591021.html

推荐25款很棒的 HTML5 前端框架和开发工具【下篇】

快速&#xff0c;安全&#xff0c;响应式&#xff0c;互动和美丽&#xff0c;这些优点吸引更多的 Web 开发人员使用 HTML5。HTML5 有许多新的特性功能&#xff0c;允许开发人员和设计师创建应用程序和网站&#xff0c;带给用户桌面应用程序的速度&#xff0c;性能和体验。 这里…

创建Sonarqube项目

Sonarqube &#xff08;nee Sonar&#xff09;是炸弹。 不必每天检查一次&#xff0c;但是如果您对质量很认真&#xff0c;则可以在Sprint计划期间&#xff08;如果不是每周一次&#xff09;对其进行检查。 在nemo.sonarqube.com上查看示例项目&#xff0c;例如OpenJPA &#…

android18lazuli,The Rise And Fall Of Android 17

Hey guys, Tommy here. Today I’m bringing you another blog talking about Android 17. I’ve had mixed emotions on Android 17’s return in Dragon Ball Super since it originally happened. I feel like now with this whole Android 17‘a return is something I sho…

luogu P1462 通往奥格瑞玛的道路

嘟嘟嘟 这道题的题面相当的迷&#xff0c;我看了半天都没懂。最后看了题解的解释才懂。 他是这么个意思&#xff1a;对于所有能活着走到终点的路径&#xff0c;输出每一条路径中过路费最多的城市的最小值。 那么自然想到二分过路费&#xff0c;然后用dijkstra或spfa判断是否存在…

树莓派 红灯不亮_请问我的树莓派烧了系统后板子只有红灯亮,而act绿灯不亮,并且网口不插网线两个灯都是微微亮,请问?...

错误已找出&#xff0c;是镜像文件的问题。如果你的情况跟我下面的情况一样&#xff0c;可以把镜像重新下载一遍。以下是原回答&#xff1a;我的也是&#xff0c;买的3b。第一次烧录系统是成功的&#xff0c;TF卡插入之后&#xff0c;上电&#xff0c;power红灯亮&#xff0c;A…

Maven私服(Nexus)搭建总结

因为工作需要&#xff0c;第一次搭建Maven私服&#xff0c;使用的是目前最流行的Sonatype Nexus。搭建私服并不难&#xff0c;官网有很详细的说明&#xff0c;只需几个步骤即可搭建一个可用的私服&#xff0c;但因为公司系统环境&#xff08;测试&#xff09;的原因还是遇到几个…