基本的查询语法

发布 2021-05-11 09:42:28 阅读 1694

select [ all | distinct ]

[top expression [percent] [with ties ]

< select_list >

[ into new_table ]

[ from [n ]

[ where ]

[ group by [ all ] group_by_expression [ n ]

[ with ]

h**ing < search_condition >

查询表中的所有字段。

select *

from 类别。

查询表中指定的字段。

select 类别名称,说明。

from 类别。

select 类别。类别名称, 类别。说明。

from 类别。

为查询添加计算列和别名。

select 订单id, 产品id, 单价, 数量, 折扣, 单价 * 1 . 折扣) *数量 as 总价。

from 订单明细。

select 订单id as 订单编号, 产品id as 产品编号,

单价, 数量, 折扣, 单价 * 1 . 折扣) *数量 as 总价。

from 订单明细。

查询前n条记录。

select top 10 *

from 订单明细。

order by 数量 desc

查询前n%条记录。

select top 10 percent *

from 订单明细。

order by 数量

查询前n%条记录(包含最后并列的排名数据)

select top 10 with ties *

from 订单明细。

order by 数量 desc

查询不重复的数据(n个字段同时不重复)

select distinct 货主城市。

from 订单。

select distinct 货主名称,货主城市。

from 订单。

查询表中的标识列。

select $identity

from 类别。

select $rowguid

from 类别。

多表联合查询语句(jion=inner jion,内部链接)

select 产品id,产品名称,类别名称,类别。类别id

from 产品 join 类别。

on 产品。类别id = 类别。类别id

select 产品。产品名称, 订单明细。单价, 订单明细。数量,

订单明细。折扣, 订单。订购日期。

from 订单明细 join

订单 on 订单明细。订单id = 订单。订单id join

产品 on 订单明细。产品id = 产品。产品id

select 产品。产品名称, 订单明细。单价, 订单明细。数量,

订单明细。折扣, 订单。订购日期。

from (订单明细 join 订单 on 订单明细。订单id = 订单。订单id )

join 产品 on 订单明细。产品id = 产品。产品id

select *

from 库存信息 inner join

订单信息 on 库存信息。产品名称 = 订单信息。产品名称。

多表联合查询语句(left outer join= left join,包含“inner jion”的同时,左边表的所有记录都要出现)

select *

from 库存信息 left outer join

订单信息 on 库存信息。产品名称 = 订单信息。产品名称。

多表联合查询语句(right outer join = right join, 包含“inner jion”的同时,右边表的所有记录都要出现)

select *

from 库存信息 right outer join

订单信息 on 库存信息。产品名称 = 订单信息。产品名称。

多表联合查询语句(full outer join = full join, 包含“inner jion”的同时,左右边表的所有记录都要出现)

select *

from 库存信息 full outer join

订单信息 on 库存信息。产品名称 = 订单信息。产品名称。

多表联合查询语句(cross join,左表和右表的所有记录进行交叉匹配)

select *

from 库存信息 cross join 订单信息。

表jion自身。

select 雇员。雇员id, 雇员。姓氏, 雇员。名字, 雇员。职务,

主管。姓氏 as 主管姓氏, 主管。名字 as 主管名字,

主管。职务 as 主管职务。

from 雇员 left outer join

雇员 as 主管 on 雇员。上级 = 主管。雇员id

说明:“雇员”表中有个字段是“雇员。上级”,该查询语句表示组合查询雇员和雇员的上级信息。

select 产品。*

from 产品 join 类别。

on 产品。类别id = 类别。类别id

where 产品。库存量 = 0 and 类别。类别名称 = n'调味品'

select 产品。*

from 产品 join 类别。

on 产品。类别id = 类别。类别id

where 产品。库存量 = 0 and

(类别。类别名称 = n'调味品' or 类别。类别名称 = n'日用品')

select * from 雇员。

where 雇用日期< convert(datetime, '1993.1.1', 102)

说明:convert将字符串'1993.1.1',转换成日期型,格式“102”

select * from 雇员。

where 雇用日期< '1993.1.1'

说明:这是隐式转换,效果等同以上语句。

select *

from 雇员。

where year(getdate())year(雇用日期) >13

说明:getdate()获取系统当前时间。

查询两个条件之间的记录between

select *

from 雇员。

where 雇用日期 between convert(datetime, '1993.01.01', 102)

查询记录为空值null的记录。

select *

from 雇员。

where 上级 is null

条件or的使用。

select *

from 雇员。

where 雇员id = 1 or 雇员id = 3 or 雇员id = 4

or 雇员id = 7 or 雇员id = 9

条件in的使用。

select *

from 雇员。

where 雇员id in (1,3,4,7,9)

条件not的使用。

select *

from 雇员。

where 雇员id not in (1,3,4,7,9)

将某个查询结果集作为条件使用。

select *

from 订单明细。

where 产品id in

(select 产品id

from 产品 join 类别。

on 产品。类别id = 类别。类别id

where 类别。类别名称 = n'日用品')

sql 模糊查询

在进行数据库查询时,有完整查询和模糊查询之分。

一般模糊查询语句如下:

select 字段 from 表 where 某字段 like 条件。

其中关于条件,sql提供了四种匹配模式:

1,% 表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%表示。

比如 select * from [user] where u_name like '%三%'

将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件。

select * from [user] where u_name like '%三%' and u_name like '%猫%'

若使用 select * from [user] where u_name like '%三%猫%'

虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

2,_ 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

比如 select * from [user] where u_name like '_三_'

只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

再比如 select * from [user] where u_name like '三__'

只找出“三脚猫”这样name为三个字且第一个字是“三”的;

3,[ 表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

比如 select * from [user] where u_name like '[张李王]三'

将找出“张三”、“李三”、“王三”(而不是“张李王三”);

如 [ 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”

select * from [user] where u_name like '老[1-9]'

将找出“老1”、“老2”、…老9”;

4,[^表示不在括号所列之内的单个字符。其取值和 相同,但它要求所匹配对象为指定字符以外的任一个字符。

比如 select * from [user] where u_name like '[张李王]三'

将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;

select * from [user] where u_name like '老[^1-4]';

将排除“老1”到“老4”,寻找“老5”、“老6”、…

order by 语法。

order by

order_by_expression 要排序的列。

[ collate collation_name ] 排序规则。

[ asc | desc ] 升序或降序。

sql查询基本语法

1 计算列。select from emp 表示所有的。from emp 表示从emp表查询。select empno,ename from emp select ename,sal 12 as 年薪 from emp as可以省略,记住 年薪 不要写成 年薪 也不要写成年薪,方便移植。select...

BASH的基本语法

最简单的例子 hello world 关于输入 输出和错误输出 bash 中对变量的规定 与 c 语言的异同 bash 中的基本流程控制语法 函数的使用 2.1 最简单的例子 hello world 几乎所有的讲解编程的书给读者的第一个例子都是 hello world 程序,那么我们今天也就从这个例...

BASH的基本语法

最简单的例子 hello world 关于输入 输出和错误输出。bash 中对变量的规定 与 c 语言的异同 bash 中的基本流程控制语法。函数的使用。2.1 最简单的例子 hello world 几乎所有的讲解编程的书给读者的第一个例子都是 hello world 程序,那么我们今天也就从这个例...