一、利用select指令选取数据。
1. select 语法基本架构。
2. 选取全部资料。
3. 指定字段。
4. 选取不重复的数据。
5. 衍生字段。
6. 数据排序。
7. 资料分组。
8. 加上选择条件。
9. 使用万用字符。
10. **的join
11. 次查询(sub query)
12. union
二、更新数据库内容。
1. 利用insert指令新增数据。
2. 由其它**处取得新增数据。
3. 删除**内的数据。
4. 异动**内的数据。
三、 常用函数。
1. 汇总函数。
2. 字符串函数。
一、利用select指令选取数据。
字段。可以是**中所定义的字段,也可以是一衍生字段。在select指令中可以一次选择数个字段,但是每个字段间必须以逗号隔开。
**。在select指令中可以一次指定一个或数个**,当指定一个以上的**时就牵涉到**连结(table join)的动作。
条件。资料选取时的设定条件,可以设定大于、小于或等于等基本判断条件,而且可以指定数个条件,每个条件以”and”或”or”逻辑操作数连接。
order by 、group by
对选取的数据作排序(sorting)和分组(grouping)等动作。
要浏览整个**内的数据时,只要下select * 指令即可。
若只想选取**内的某些字段而非全部字段时,则在select后面指定字段名单,可以指定多个字段,但每个字段间必须以逗号分开。
有时数据**内的某些字段含有重复的值,在选取时如果不想看到重复的值的话,可以在select字句后加上distinct字句。
在select指令中除了可以以**中的字段作为选取标的外,也可以自创衍生字段作为select指令的输出字段。衍生字段可以是**字段间经由一般加减乘除运算产生外,也可以由sql server所提供的内建函数(function)产生。
选取所要的资料后,可以对这些资料以某一字段或数个字段组合当作键值依序排列,排序的方向可以依键值由小到大(asc:ascending)或由大到小(desc:descending)排列,若未指定是asc或desc,则内定的排序方向是由小到大(asc)。
当作排序的键值一定要出现在所选取的字段清单中。
可以利用group by子句对select指令所选取到的数据作分组,分组后数据可以显示出来,或利用sum()、**g()等算术函数针对特定字段计算每组数据的总和或平均值。
group by子句后经常会搭配h**ing子句作为每一群组的筛选条件。
若只想选取**内的部分数据而非全部数据时,必须加上选择条件,也就是在select命令中加上where子句,在where子句中以比较操作数来构成选择的条件。以下是可以在where子句中使用的比较操作数。
可一次指定数个条件,每个条件间以逻辑操作数not、and、or连接,条件判断的优先次序依序为:not、and、or。可使用括号来区分逻辑操作数的优先次序。
利用select指令由不同的**挑选字段时,称之为对两个**作join的动作。
由**1、**2选取数据,若**1有a、b、c三笔数据,**2有x、y二笔数据,则两个**经由join结果会得到(a,x)、(a,y)、(b,x)、(b,y) 、c,x)、(c,y)六笔资料。当它们共通字段值相同时才是我们要的数据,则必须加上join条件。
若选用的字段其字段名称在join**两边皆存在,则必须以**名称。字段名称明确的指定该字段属于哪一**。
join并不限定只能针对两个**作为处理对象 join条件中所牵涉到的字段最好是索引字段,否则join的速度会很慢。
使用别名。如果在每个字段名称前加上**名称,则会使指令看起来很长,此时可使用较短的别名代表**名称。
self-join
在**的join中并不是只有不同的**才可以做join,同一个**也可以和自己做join。
由于self-join牵涉到的是两个相同的**,因此可利用别名的方式把同一**视为不同**再做join。
outer-join
以主**的每笔数据去match副属**的字段,不论是否合乎join条件的数据皆会筛选出来,只是那些从副属**选取不合乎条件的字段将被填上null。
语法如下:当使用left join时,在左边的**为主**,右边的为附属**,相反的,使用right join时,在右边的为主**,在左边的为附属**,inner join则无主**与附属**之分,条件符合的数据才会被筛选出来。
当一select指令放在select、insert、update 或delete指令中的where子句中作为比较条件时,该select指令称为次查询。次查询的使用方法有以下三种样式:
第一种样式:只要主查询中的字段或表达式值与次查询所得结果中之任一(any)或全部(all)数据符合比较条件,则主查询的结果为我们要的数据。
第二种样式:只要主查询中的字段或表达式值是在(不在)次查询所得结果清单中,则主查询的结果为我们要的数据。
第三种样式:次查询的结果至少存在一笔数据时,则主查询的结果为我们要的数据(exists) 。次查询的结果找不到数据时,则主查询的结果为我们要的数据 (not exists) 。
可利用union指令将多个select的结果集合起来。union指令将来自不同select指令的数据混合在一起并将重复的数据剔除仅下一笔。两个select指令中所选取的字段数目要相同,且相对字段的数据型别也要一致。
若要做排序则在最后一个select指令中指明。若要将重复的数据也列出,则可使用union all。
insert指令是用来将数据新增至数据库**内 ,以下为基本且最常用的语法。
第一种语法:字段值要按**架构中的字段次序一一对应,不可随意更动前后次序,每个字段值以逗号隔开,输入char型别的字段时,其字段值要以单引号包夹。
第二种语法:在**名称后用括号列出要新增字段值的字段名称,在values后则一一对应输入值。
在insert指令内还可搭配select指令由其它**处取得数据再新增至被新增**处。
delete指令用来删除**内全部或部分数据,以下是delete指令的语法。
update指令用来更动**内全部或部分数据,以下是update指令的语法。
汇总函数用来计算数据**内某一字段的加总值、平均值、最大值、最小值等等其使用语法如下。
count(*)用来计算select指令所挑选出来的笔数。
max用来找出**中某一字段的最大值,此函数仅适用于数值型、文字型和日期字段。
min用来找出**中某一字段的最小值,此函数仅适用于数值型、文字型和日期字段。
sum用来计算数据库**中某一字段的加总值,此函数仅适用于数值型的字段。
大小写转换。
lower(string) :将字符串全部转换为小写。
upper(string) :将字符串全部转换为大写。
去除字符串前后空白。
ltrim(string) :将字符串的前置空白去除。
rtrim(string) :将字符串的后置空白去除。
取子字符串。
right(string , int) :由右边取字符串的第 int 个字符起到字符串的最后一个字符的子字符串。
ex. right( ‘123456789’,3) -789’
substring(string , start , len) :由字符串左边算起第 start个字符取长度为len的子字符串。
ex. substring ( 123456789’,2,3) -234’
SQL语法教材
一 利用select 语句选取资料 1.select语法基本构架。2.选取全部资料。3.指定字段。4.选取不重复资料。5.衍生字段。6.资料排序。7.资料分组。8.加上选择条件。9.使用通配符。10.表之间的关联 join 11.子查询。12.union 二 操作数据库记录。1.利用insert 语...
sql语法
知识要点 1 transact sql运算符 1 算术运算符。注 null与任何值运算结果为null。运算可用于datetime型数据。2 字符串运算符。3 比较运算符。逻辑常量 ture false。4 逻辑运算符。not 非 and 与 or 或 between 指定范围 like 模糊匹配 5...
SQL语法
distinct 输出唯一值。select distinct from where between and 介于某一范围的数据。where 某行 between and in 属于某一子集合的数据。where 某行 in substring expression 开始位 长度 选取字符串。selec...