1130136248wlxk

SQLServer 各种语句完整语法 like语句用法 四种匹配符

原文:http://www.weste.net/2008/11-7/2108072583.html

http://www.68design.net/Development/Database/21323-1.html

http://www.diybl.com/course/7_databases/sql/msshl/2007616/59835.html

关于SQL的学习,我们大家一起来努力吧,有问题来留言。

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

SQL分类:

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

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

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

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

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],col2type2 [not null],..)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_olddefinition 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 bON a.a = b.c

B:right outer join:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

C:full outer join:

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

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

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

法一:select * into b from a where1<>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 ) 或者: selecta,b,c from a where a IN (1,2,3)

5、说明:显示文章、提交人和最后回复时间

select a.title,a.username,b.adddate from table a,(selectmax(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 ONa.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 wheretable1.field1=table2.field1 )

11、说明:四表联查问题:

select * from a left inner join b on a.a=b.b right inner join con a.a=c.c inner join d on a.a=d.d where .....

12、说明:日程安排提前五分钟提醒

SQL: select * from 日程安排 wheredatediff(\'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) fromtablename 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) fromtablename 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 0end),sum(case vender when \'C\' then pcs else 0 end),sum(case venderwhen \'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 jointable2 on table1.fd1,table2.fd1 where ...

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

语法:

SQL数据库:select case when len(field)>10 thenleft(field,10)+\'...\' else field end as news_name,news_id fromtablename

Access数据库:SELECTiif(len(field)>2,left(field,2)+\'...\',field) FROMtablename;

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对象,代表一个错误信息。

************************************************************************************

LIKE,确定给定的字符串是否与 指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配 符。与使用= 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。

如果任何参数都不属于字符串数据类型,Microsoft® SQLServer™ 会将其转换成字符串数据类型(如果可能)。

 

语法

 

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

 

 

 

参数

 

match_expression

 

 

任何字符串数据类型的有效 SQL Server 表达式。

 

pattern

 

match_expression 中的搜索模式,可以包含下列有效 SQLServer 通配符。

 

通配符 描述示例

 

% 包含零个或更多字符的任意字符串。 WHERE title LIKE\'%computer%\' 将查找处于书名任意位置的包含单词 computer 的所有书名。

 

_(下划线) 任何单个字符。 WHERE au_fname LIKE\'_ean\' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。

 

[ ] 指定范围 ([a-f]) 或集合 ([abcdef])中的任何单个字符。 WHERE au_lname LIKE \'[C-P]arsen\' 将查找以arsen 结尾且以介于 C 与 P之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。

 

[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef])的任何单个字符。 WHERE au_lname LIKE \'de[^l]%\' 将查找以 de 开始且其后的字母不为 l的所有作者的姓氏。

 

escape_character

 

字符串数据类型分类中的所有数据类型的任何有效 SQL Server表达式。escape_character 没有默认值,且必须仅包含一个字符。

 

结果类型

 

Boolean

 

结果值

 

如果 match_expression 匹配指定模式,LIKE 将返回TRUE。

 

注释

 

当使用 LIKE进行字符串比较时,模式字符串中的所有字符都有意义,包括起始或尾随空格。如果查询中的比较要返回包含"abc "(abc后有一个空格)的所有行,则将不会返回包含"abc"(abc后没有空格)的列所在行。但是可以忽略模式所要匹配的表达式中的尾随空格。如果查 询中的比较要返回包含"abc"(abc后没有空格)的所有行,则将返回以"abc"开始且具有零个或多个尾随空格的所有行。

使用 LIKE 的模式匹配

当搜索 datetime 值时,推荐使用 LIKE,因为 datetime项可能包含各种日期部分。例如,如果将值 19981231 9:20 插入到名为 arrival_time 的列中,则子句 WHEREarrival_time = 9:20 将无法找到 9:20 字符串的精确匹配,因为 SQL Server 将其转换为 1900 年1 月 1 日上午 9:20。然而,子句 WHERE arrival_time LIKE \'%9:20%\' 将找到匹配。

like支持 ASCII 模式匹配和 Unicode模式匹配。当所有参数,包括 match_expression、pattern 和 escape_character(如果有)都是ASCII 字符数据类型时,将执行 ASCII 模式匹配。如果其中任何参数属于 Unicode 数据类型,则所有参数将被转换为Unicode 并执行 Unicode 模式匹配。当对 Unicode 数据(nchar 或 nvarchar 数据类型)使用LIKE 时,尾随空格是有意义的。但是对于非 Unicode 数据,尾随空格没有意义。Unicode LIKE 与 SQL-92标准兼容。ASCII LIKE 与 SQL Server 的早期版本兼容。

 

下面的一系列示例显示 ASCII LIKE 模式匹配与 UnicodeLIKE 模式匹配所返回的行之间的差异:

 

-- ASCII pattern matching with char column

CREATE TABLE t (col1 char(30))

INSERT INTO t VALUES (\'Robert King\')

SELECT *

FROM t

WHERE col1 LIKE \'% King\' -- returns 1 row

-- Unicode pattern matching with nchar column

CREATE TABLE t (col1 nchar(30))

INSERT INTO t VALUES (\'Robert King\')

SELECT *

FROM t

WHERE col1 LIKE \'% King\' -- no rows returned

-- Unicode pattern matching with nchar column and RTRIM

CREATE TABLE t (col1 nchar (30))

INSERT INTO t VALUES (\'Robert King\')

SELECT *

FROM t

WHERE RTRIM(col1) LIKE \'% King\' -- returns 1 row

 

 

 

说明 如果使用 LIKE进行字符串比较,模式字符串中的所有字符都有意义,包括起始空格或尾随空格。

 

使用 % 通配符

 

如果指定 LIKE \'5%\',SQL Server将搜索后面带有零个或多个任意字符的数字 5。

 

例如,此查询将显示数据库中所有的系统表,因为它们都以字母 sys开始:

 

SELECT TABLE_NAME

FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_NAME LIKE \'sys%\'

 

 

 

说明请注意:系统表可以随版本不同而更改。推荐使用信息架构视图或适用的存储过程处理 SQL Server 系统表。

 

若要查阅非系统表的所有对象,请使用 NOT LIKE \'sys%\'。如果共有32 个对象且 LIKE 找到 13 个与模式匹配的名称,则 NOT LIKE 将找到 19 个与 LIKE模式不匹配的对象。

 

使用 LIKE \'[^s][^y][^s]%\'模式不一定每次找到的名称都相同。可能仅得到 14 个名称(而不是 19 个),除了系统表名称外,所有以 s 开始或第二个字母为 y或第三个字母为 s的名称也都将从结果中消除。这是因为用反向通配符匹配字符串是分步骤进行计算的,一次一个通配符。如果在计算过程中任一环节匹配失败,那么就会将其消 除。

***************************************************************************************

% 代表零个或者多个任意字符
  _ 代表一个任意字符
  [] 指定范围内的任意单个字符
  [^] 不在指定范围内的任意单个字符
  
  带有匹配符的字符串必须使用引号引起来,例如下面的示例:
  LIKE \'BR%\'返回以“BR”开始的任意字符串。
  LIKE \'Br%\'返回以“Br”开始的任意字符中。
  LIKE \'%een\'返回以“een”结束的任意字符串。
  LIKE \'%en%\'返回包含“en”的任意字符串。
  liKE \'en\'返回以“en”结束的三个字符的字符串。
  LIKE \'[CK]%\'返回以“C”或者“K”开始的任意字符串。
  LIKE \'[S-V]lng\'返回长为四个字符的字符串,结尾是“ing”,开始是从S到V
  LIKE \'M[^c]%\'返回以“M”开始且第二个字符不是“c”的任意字符串。  注意:
  使用LIKE运算符通常会导致SQL Server不对给定的表使用与之联系的索引。它告诉SQLserver比较所指定的字符串并且找到与所提供的匹配符相匹配的任何内容。由于这种原固,不 推荐在大型表上使用这种类型的搜索或者比较,至少应该提醒用户,系统寻找满足搜索标准的数据行时所需的等待时间非常重要。

 

 

 

常用SQL语句(增删查改、合并统计、模糊搜索)

http://blog.csdn.net/ljianhui/article/details/7859564

首行当然是最基本的增删查改啦,其中最重要的是查。



还有就是一些要注意的地方,就是SQL语句对大小写不敏感,语句中列名对应的值要用单引号\'\'括起来不是双引号。
SQL 使用单引号来环绕文本值。如果是数值,请不要使用引号。
特别是C/C++程序员要注意,通常错误都是在用字符串进行拼接SQL语句时,由于双引号和单引号混用,特别容易出错。




一、查:1、SELECT 列名称 FROM 表名称,其中列名可以是多个,中间用豆号分开,如SELECT LastName,FirstName FROM Persons;
    2、SELECT * FROM 表名称,表示查找表中所有的内容,星号(*)是选取所有列的快捷方式;
    3、用where 限定搜索范围,SELECT 列名称 FROM 表名称 WHERE 列 运算符 值,其中,运算符包括
        操作符 描述
         = 等于
         <> 不等于
         > 大于
         < 小于
         >= 大于等于
        <= 小于等于
BETWEEN     在某个范围内
        LIKE 搜索某种模式
   注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
   如:SELECT * FROM Persons WHERE City=\'Beijing\'


     4、以下说说上面的一个运算符like
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SELECT column_name(s)FROM table_name WHERE column_name LIKE pattern
例如:
SELECT * FROM Persons WHERE City LIKE \'N%\'
SELECT * FROM Persons WHERE City LIKE \'%g\'
SELECT * FROM Persons WHERE City LIKE \'%lon%\'

在以上的三个例子中,都有一个符号“%”,"%" 可用于定义通配符(模式中缺少的字母)。对于第一个例子,可以理解为查找City列中的名字中一定要以N开头的,后面的字母是什么,不用管;同理,第二个例子,是搜索City列中的名字中一定要以g结尾的城市,第三个例子,则是查找City列中的名字中名字存在lon的城市。

简单点来说,这是一种模糊搜索,而“%”可以代表任何字符。

    5、and,or
and 即条件交集,or 即条件并集;


二、改:Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
    列名可以是多个,多个列名之间用豆号分开;
    例如:UPDATE Person SET FirstName = \'Fred\' WHERE LastName = \'Wilson\'
 UPDATE Person SET Address = \'Zhongshan 23\', City = \'Nanjing\' WHERE LastName = \'Wilson\'


三、删:DELETE 语句用于删除表中的行。语法:DELETE FROM 表名称 WHERE 列名称 = 值,如:DELETE FROM Person WHERE LastName = \'Wilson\' 
    删除所有行,DELETE FROM table_name或DELETE * FROM table_name(注意,并不删除表);


     
四、增:INSERT INTO 语句用于向表格中插入新的行。语句:INSERT INTO 表名称 VALUES (值1, 值2,....)
或INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
    例如:INSERT INTO Persons VALUES (\'Gates\', \'Bill\', \'Xuanwumen 10\', \'Beijing\')或
 INSERT INTO Persons (LastName, Address) VALUES (\'Wilson\', \'Champs-Elysees‘)


五、sum()函数;
SUM 函数返回数值列的总数(总额)。注意,只能统计数值。语法:SELECT SUM(column_name) FROM table_name
例如:SELECT SUM(OrderPrice) AS OrderTotal FROM Orders;as表示生成的数据的列名是OrderTotal


六、count()函数
1、COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入),即column_name中有多少个不同的值:
SELECT COUNT(column_name) FROM table_name
如:SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer=\'Carter\'


2、COUNT(*) 函数返回表中的记录数,即表中有多少条记录:SELECT COUNT(*) FROM table_name
如:SELECT COUNT(*) AS NumberOfOrders FROM Orders


3、COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:SELECT COUNT(DISTINCT column_name) FROM table_name
如:SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders


注:count()函数可以统计出一个列中某一值的出现次数,而不限于列的值的数据类型,而sum()函数限定操作的值的类型一定要是数值类型;

七、group by
1、GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。通常与sum()、count()等函数一起用。
2、语法:SELECT column_name0, aggregate_function(column_name1) FROM table_name WHERE column_name operator value GROUP BY column_name2
3、与sum()的结合使用,可以根据column_name2列中的值的不同而对column_name1的值进行分组并合计;
例如:SELECT City, sum(input) FROM Person  GROUP BY City ;就能按把收入统计并按城市分组,即表中有多少个不同的City就有多少行数据。
4、与count()结合使用,可以统计出某表中某列中的某值出现的次数.
select a as xm,count(a) as cs from table1 group by a
如某表table1,
... a ...
... 0 ...
... 1 ...
... 2 ...
... 1 ...
... 0 ...
其中a列只有0,1,2三种值,如何统计各值出现的次数,最好弄成这样的
XM CS
0 (0出现的次数)   
1 (1出现的次数)
2 (2出现的次数)
5、我们也可以对一个以上的列应用 GROUP BY 语句,就像这样:

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate


八、把两个表中的相关内容进行搜索合并

例如:select column1,column2,column3 from table_name1,talbe_name2 wheretable_name1.column = table_name2.column

注意:两个表中就有一个记录相同信息的列 column。

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-10-07
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2021-05-08
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2022-02-21
  • 2022-01-20
  • 2021-11-20
  • 2022-01-21
相关资源
相似解决方案