用友HREHR常用SQL语法手册.docx
- 文档编号:7525752
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:26
- 大小:36.04KB
用友HREHR常用SQL语法手册.docx
《用友HREHR常用SQL语法手册.docx》由会员分享,可在线阅读,更多相关《用友HREHR常用SQL语法手册.docx(26页珍藏版)》请在冰豆网上搜索。
用友HREHR常用SQL语法手册
Select
用途:
从指定表中取出指定的列的数据语法:
SELECTcolumn_name(s)FROMtable_name
解释:
从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。
SELECT陈述式的完整语法相当复杂,但主要子句可摘要为:
SELECTselect_list
[INTOnew_table]
FROMtable_source
[WHEREsearch_condition]
[GROUPBYgroup_by_expression]
[HAVINGsearch_condition]
[ORDERBYorder_expression[ASC|DESC]]
例:
Persons表中的数据有
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn10
Sandnes
Svendson
Tove
Borgvn23
Sandnes
Pettersen
Kari
Storgt20
Stavanger
选出字段名”LastName”、”FirstName”的数据
SELECTLastName,FirstNameFROMPersons
返回结果
LastName
FirstName
Hansen
Ola
Svendson
Tove
Pettersen
Kari
选出所有字段的数据
SELECT*FROMPersons
返回结果:
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn10
Sandnes
Svendson
Tove
Borgvn23
Sandnes
Pettersen
Kari
Storgt20
Stavanger
Where
用途:
被用来规定一种选择查询的标准
语法:
SELECTcolumnFROMtableWHEREcolumnconditionvalue
下面的操作符能被使用在WHERE中:
=,<>,>,<,>=,<=,BETWEEN,LIKE
注意:
在某些SQL的版本中不等号<>能被写作为匸
解释:
SELECT语句返回WHERE子句中条件为true的数据
例:
从"Persons"表中选出生活在”Sandnes"的人
SELECT*FROMPersonsWHERECity='Sandnes'
"Persons"表中的数据有
LastName
FirstName
Address
City
Year
Hansen
Ola
Timoteivn10
Sandnes
1951
Svendson
Tove
Borgvn23
Sandnes
1978
Svendson
Stale
Kaivn18
Sandnes
1980
Pettersen
Kari
Storgt20
Stavanger
1960
返回结果
LastName
FirstName
Address
City
Year
Hansen
Ola
Timoteivn10
Sandnes
1951
Svendson
Tove
Borgvn23
Sandnes
1978
Svendson
Stale
Kaivn18
Sandnes
1980
And&Or
用途:
在WHERE子句中AND和OR被用来连接两个或者更多的条件
解释:
AND在结合两个布尔表达式时,只有在两个表达式都为TRUE时才传回TRUE
OR在结合两个布尔表达式时,只要其中一个条件为TRUE时,OR便传回TRUE
例:
"Persons"表中的原始数据
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn10
Sandnes
Svendson
Tove
Borgvn23
Sandnes
Svendson
Stephen
Kaivn18
Sandnes
用AND运算子来查找"Persons"表中FirstName为"Tove而且LastName为"Svendson的数据
SELECT*FROMPersons
WHEREFirstName='Tove'
ANDLastName='Svendson'
返回结果
LastName
FirstName
Address
City
Svendson
Tove
Borgvn23
Sandnes
用OR运算子来查找"Persons"表中FirstName为"Tove"或者LastName为"Svendson"的数据
SELECT*FROMPersons
WHEREfirstname='Tove'
ORlastname='Svendson'
返回结果
LastName
FirstName
Address
City
Svendson
Tove
Borgvn23
Sandnes
Svendson
Stephen
Kaivn18
Sandnes
你也能结合AND和OR(使用括号形成复杂的表达式),如:
SELECT*FROMPersonsWHERE
(FirstName='Tove'ORFirstName='Stephen')
ANDLastName='Svendson'
返回结果
LastName
FirstName
Address
City
Svendson
Tove
Borgvn23
Sandnes
Svendson
Stephen
Kaivn18
Sandnes
Between…And用途:
指定需返回数据的范围语法:
SELECTcolumn_nameFROMtable_name
WHEREcolumn_name
BETWEENvalue1ANDvalue2
例:
“Person表”的原始数据
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn10
Sandnes
Nordmann
Anna
Neset18
Sandnes
Pettersen
Kari
Storgt20
Stavanger
Svendson
Tove
Borgvn23
Sandnes
用BETWEENAND返回LastName为从"Hanser”至Pettersen"的数据:
SELECT*FROMPersonsWHERELastName
BETWEEN'Hansen'AND'Pettersen'
返回结果:
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn10
Sandnes
Nordmann
Anna
Neset18
Sandnes
Pettersen
Kari
Storgt20
Stavanger
为了显示指定范围之外的数据,也可以用NOT操作符:
SELECT*FROMPersonsWHERELastName
NOTBETWEEN'Hansen'AND卩ettersen'
返回结果:
LastName
FirstName
Address
City
Svendson
Tove
Borgvn23
Sandnes
Distinct
用途:
DISTINCT关键字被用作返回唯一的值
语法:
SELECTDISTINCTcolumn-name(s)FROMtable-name
解释:
当column-name(s)中存在重复的值时,返回结果仅留下一个
例:
aOrders表中的原始数据
CompanyOrderNumber
Sega
3412
W3Schools
2312
Trio
4678
W3Schools
6798
用DISTINCT关键字返回Company字段中唯一的值:
SELECTDISTINCTCompanyFROMOrders
返回结果:
Orderby
用途:
指定结果集的排序
语法:
SELECTcolumn-name(s)FROMtable-nameORDERBY{
order_by_expression
[ASC
|DESC]}
解释:
指定结果集的排序,可以按照ASC(递增方式排序,从最低值到最高值)或者DESC(递减方
式排序,从最高值到最低值)的方式进行排序,默认的方式是ASC
例:
Orders表中的原始数据
Company
OrderNumber
Sega
3412
ABCShop
5678
W3Schools
2312
W3Schools
6798
按照Company字段的升序方式返回结果集:
SELECTCompany,OrderNumberFROMOrders
ORDERBYCompany
返回结果:
Company
OrderNumber
ABCShop
5678
Sega
3412
W3Schools
6798
W3Schools
2312
按照Company字段的降序方式返回结果集:
SELECTCompany,OrderNumberFROMOrders
ORDERBYCompanyDESC
返回结果:
Company
OrderNumber
W3Schools
6798
W3Schools
2312
Sega
3412
ABCShop
5678
Groupby
用途:
对结果集进行分组,常与汇总函数一起使用。
语法:
SELECTcolumn,SUM(column)FROMtableGROUPBYcolumn
例:
“Sales表中的原始数据
Company
Amount
W3Schools
5500
IBM
4500
W3Schools
7100
按照Company字段进行分组,求出每个Company的Amout的合计:
SELECTCompany,SUM(Amount)FROMSales
GROUPBYCompany
返回结果:
Company
SUM(Amount)
W3Schools
12600
IBM
4500
Having
用途:
指定群组或汇总的搜寻条件。
语法:
SELECTcolumn,SUM(column)FROMtable
GROUPBYcolumn
HAVINGSUM(column)conditionvalue
解释:
HAVING通常与GROUPBY子句同时使用。
不使用GROUPBY时,HAVING则与
WHERE子句功能相似。
例:
Sales表中的原始数据
Company
Amount
W3Schools
5500
IBM
4500
W3Schools
7100
按照Company字段进行分组,求出每个Company的Amout的合计在10000以上的数据:
SELECTCompany,SUM(Amount)FROMSalesGROUPBYCompanyHAVINGSUM(Amount)>1OOOO
返回结果:
Company
SUM(Amount)
W3Schools
12600
Join
用途:
当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。
例:
Employees表中的数据如下,(其中ID为主键)
ID
Name
01
Hansen,Ola
02
Svendson,Tove
03
Svendson,Stephen
04
Pettersen,Kari
Orders表中的数据如下:
ID
Product
01
Printer
03
Table
03
Chair
用Employees的ID和Orders的ID相关联选取数据:
SELECTEmployees.Name,Orders.Product
FROMEmployees,Orders
WHEREEmployees.ID=Orders.ID
返回结果:
Name
Product
Hansen,Ola
Printer
Svendson,Stephen
Table
Svendson,Stephen
Chair
或者你也可以用JOIN关键字来完成上面的操作:
SELECTEmployees.Name,Orders.Product
FROMEmployees
INNERJOINOrders
ONEmployees」。
=Orders.lD
INNERJOIN的语法:
SELECTfieldl,field2,field3
FROMfirst_table
INNERJOINsecond_table
ONfirst_table.keyfield=second_table.foreign_keyfield
解释:
INNERJOIN返回的结果集是两个表中所有相匹配的数据。
LEFTJOIN的语法:
SELECTfield1,field2,field3
FROMfirst_table
LEFTJOINsecond_table
ONfirst_table.keyfield=second_table.foreign_keyfield
用”Employees表去左外联结”Orders表去找出相关数据:
SELECTEmployees.Name,Orders.Product
FROMEmployees
LEFTJOINOrders
ONEmployees.ID=Orders.ID
返回结果:
Name
Product
Hansen,Ola
Printer
Svendson,Tove
Svendson,Stephen
Table
Svendson,Stephen
Chair
Pettersen,Kari
解释:
LEFTJOIN返回"first_table中所有的行尽管在"second_table‘中没有相匹配的数据。
RIGHTJOIN的语法:
SELECTfield1,field2,field3
FROMfirst_table
RIGHTJOINsecond_table
ONfirst_table.keyfield=second_table.foreign_keyfield
用”Employees表去右外联结”Orders表去找出相关数据:
SELECTEmployees.Name,Orders.Product
FROMEmployees
RIGHTJOINOrders
ONEmployees.ID=Orders.ID
返回结果:
Name
Product
Hansen,Ola
Printer
Svendson,Stephen
Table
Svendson,Stephen
Chair
解释:
RIGHTJOIN返回”second_tabie‘中所有的行尽管在”first_table中没有相匹配的数据。
Alias
用途:
可用在表、结果集或者列上,为它们取一个逻辑名称
语法:
给列取别名:
SELECTcolumnAScolumn_aliasFROMtable
给表取别名:
SELECTcolumnFROMtableAStable_alias
例:
“Person表'中的原始数据
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn10
Sandnes
Svendson
Tove
Borgvn23
Sandnes
Pettersen
Kari
Storgt20
Stavanger
运行下面的SQL:
SELECTLastNameASFamily,FirstNameASName
FROMPersons
返回结果:
Family
Name
Hansen
Ola
Svendson
Tove
Pettersen
Kari
运行下面的SQL:
SELECTLastName,FirstNameFROMPersonsASEmployees
返回结果:
Employees中的数据有:
LastName
FirstName
Hansen
Ola
Svendson
Tove
Pettersen
Kari
InsertInto
用途:
在表中插入新行
语法:
插入一行数据
INSERTINTOtable_name
VALUES(valuel,value2,....)
插入一行数据在指定的字段上
INSERTINTOtable_name(column1,column2,...)
VALUES(value1,value2,....)
例:
“Person表'中的原始数据
LastName
FirstName
Address
City
Pettersen
Kari
Storgt20
Stavanger
运行下面的SQL插入一行数据:
INSERTINTOPersons
VALUES('Hetland','Camilla','Hagabakka24','Sandnes')
插入后”Persons表中的数据为
LastName
FirstName
Address
City
Pettersen
Kari
Storgt20
Stavanger
Hetland
Camilla
Hagabakka24
Sandnes
运行下面的SQL插入一行数据在指定的字段上:
INSERTINTOPersons(LastName,Address)
VALUES('Rasmussen','Storgt67')
插入后”Persons表中的数据为
LastName
FirstName
Address
City
Pettersen
Kari
Storgt20
Stavanger
Hetland
Camilla
Hagabakka24
Sandnes
Rasmussen
Storgt67
Update
用途:
更新表中原有数据
语法:
UPDATEtable_nameSETcolumn_name=new_value
WHEREcolumn_name=some_value
例:
“Person表中的原始数据:
LastName
FirstName
Address
City
Nilsen
Fred
Kirkegt56
Stavanger
Rasmussen
Storgt67
运行下面的SQL将Person表中LastName字段为"Rasmussen的FirstName更新为"Nina":
UPDATEPersonSETFirstName='Nina'
WHERELastName='Rasmussen'
更新后”Person表中的数据为
LastName
FirstName
Address
City
Nilsen
Fred
Kirkegt56
Stavanger
Rasmussen
Nina
Storgt67
同样的,用UPDATE语句也可以同时更新多个字段:
UPDATEPerson
SETAddress='Stien12',City='Stavanger'
WHERELastName='Rasmussen'
更新后”Person表中的数据为
LastName
FirstName
Address
City
Nilsen
Fred
Kirkegt56
Stavanger
Rasmussen
Nina
Stien12
Stavanger
Delete
用途:
删除表中的数据
语法:
DELETEFROMtable_nameWHEREcolumn_name=some_value
例:
“Person表中的原始数据
LastName
FirstName
Address
City
Nilsen
Fred
Kirkegt56
Stavanger
Rasmussen
Nina
Stien12
Stavanger
删除Person表中LastName为"Rasmussen的数据:
DELETEFROMPersonWHERELastName='Rasmussen'
执行删除语句后”Person表中的数据为
LastName
FirstName
Address
City
Nilsen
Fred
Kirkegt56
Stavanger
CreateTable
用途:
建立新的资料表。
语法:
CREATETABLEtable_name
(
column_nameldata_type,
column_name2data_type,)
例:
创建一张叫“Person的表,该表有4个字段"LastName","FirstName","Address","Age"
CREATETABLEPerson
(
LastNamevarchar,
FirstNamevarchar,
Addressvarchar,
Ageint
)
如果想指定字段的最大存储长度,你可以这样:
CREATETABLEPerson
(
LastNamevarchar(30),
First
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用友 HREHR 常用 SQL 语法 手册