SQL语句大全
Ⅰ、sql语句基本语法
①每一条sql语句必须以分号结束
②每条sql语句可以单独写成一行,也可以分成若干行
③sql语句对大小写不敏感,对于sql语句的关键字,表名,列名等可以大小写混合,但对列的内容则大小写敏感
Ⅱ、对象的命名约定
sql server用三段式名字标识对象
数据库名.所有者名.对象名
前两者可以省略,系统自动有一个默认值。数据库名的默认值是当前数据库,所有者名的默认值是数据库的所有者dbo
别名:使用别名的主要目的是增加select语句的可读性。可使用如下语句指派数据表的别名:数据表名称as 数据表别名
注意:如果为数据表指定了别名,则在相应的T-sql语句中,对该数据表的所有显示引用都必须使用别名,而不能使用数据表名
ASP连接11种数据库语法总结时间:2009-05-05 22:30:22来源:网络作者:未知点击:72次
经常使用到有关数据库的操作。包括连接代码、SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用到的时候又去查书本,翻来翻去。一些比较少用的数据库还不一定能顺利找到,所以现在把它们全归纳到这里,提供大家参考。
<一>数据库的连接方法:
1.Access数据库的DSN-less连接方法:
set adocon=Server.Createobject("adodb.connection")
adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _
Server.MapPath("数据库所在路径")
2.Access OLE DB连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=" & Server.MapPath("数据库所在路径")
3.SQL server连接方法:
set adocon=server.createobject("adodb.recordset")
adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _
"database=数据库名;"
4.SQL server OLE DB连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _
"user ID=***;Password=***;"& _
"inital Catalog=数据库名"
5.Oracle 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"
6.Oracle OLE DB 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=OraOLEDB.Oracle;data source=dbnam e;user id=admin;password=pass;"
7.dBase 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"
8.mySQL 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={mysql};database=yourdatabase;
uid=username;pwd=yourpassword;option=16386;"
9.Visual Foxpro 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"
10.MS text 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&_
"extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"
11.MS text OLE DB 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=microsof.jet.oledb.4.0;data source=your_path;"&_
"Extended Properties'text;FMT=Delimited'"
<二>常用的四种SQL命令:
1.查询数据记录(Select)
语法:Select 字段串行From table Where 字段=内容
例子:想从book表中找出作者为"cancer"的所有记录,SQL语句便如下:
select * from book where author=’cancer’
"*"是取出book表所有的字段,如查询的字段值为数字,则其后的"内容"便无须加上单引号,如是日期,则在Access中用(#)包括,而在SQL server中则用(’)包括,
如:
select * from book where id=1
select * from book where pub_date=#2002-1-7# (Access)
select * from book where pub_date=’2002-1-7’ (SQL Server)
提示:
日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法
另外如果是查询传入的变量,则如下:
strau=request.form("author")
strsql="select * from book where author=’"&strau&"’"
如果查询的是数字,则:
intID=request.form("id")
strsql="select * from book where id="&intID
在很多数据库中,如:oracle,上面的语句是可以写成:
strsql="select * from book where id='"&intID&"'"
但是字符型一定不能按照数字格式写,需要注意。
本篇文章来源于:开发学院https://www.wendangku.net/doc/0b12092837.html, 原文链接:https://www.wendangku.net/doc/0b12092837.html,/2009/0505/3767.php
SQL 数据库基础操作语法总结
说明:
用{ }表示括号里的内容是必写的,用[ ]表示括号里的内容可写可不写;用<>表示在实际编写语句时可以用相应的内容代替;用A|B表示A或B的意思(只能选一个);用[,...n]表示重复前面的内容。
-------------------------------------------------------------------------------------------
一、对数据库操作
1.创建数据库
基本语法格式:
CREATE DATABASE 数据库名
[ON
{[PRIMARY ]
(NAME=逻辑文件名,
FILENAME=’操作系统下的文件名和路径’
[,SIZE=文件初始容量]
[,MAXSIZE={文件最大容量|UNLIMITED}]
[,FILEGROWTH=文件的增量])
}[ ,...n ]
]
[LOG ON
{(NAME=逻辑文件名,
FILENAME=’操作系统下的文件名和路径’
[,SIZE=文件初始容量]
[,MAXSIZE={文件最大容量|UNLIMITED}]
[,FILEGROWTH=文件的增量])
}[ ,...n ]
]
示例:
create database StuInfo
on primary
(
name = StuInfo,filenam e='E:\作业练习\SQL Server\第2周\StuInfo.mdf',
size =3MB,
maxsize =10MB,
filegrowth=1MB
log on
(
name = StuInfo_Log,
filename = 'E:\作业练习\SQL Server\第2周\StuInfo_Log.Ldf',
size = 1MB,
maxsize = 5MB,
filegrowth=1MB
)
Go
2.显示数据库信息
基本语法格式:
SP_HELPDB 数据库名
3.扩充数据库容量
基本语法格式:
ALTER DATABASE 数据库名
MODIFY FILE
(NAME=逻辑文件名,
[,SIZE=文件初始容量]
[,MAXSIZE={文件最大容量|UNLIMITED} ]
[,FILEGROWTH=文件增长幅度]
)
示例:
ALTER DATABASE NewSales
MODIFY FILE
(NAME=’NewSales’,SIZE=8MB)
GO
4.重命名数据库
语法格式:
SP_RENAMEDB ‘数据库原名’,’数据库新名’
5.删除数据库
语法格式:
DROP DATABASE 数据库名{,...n}
6.分离数据库
语法格式:
SP_DETACH_DB ‘数据库名’[,[@skipchecks=]’skipchecks’]
示例:
EXEC SP_DETACH_DB ‘NewSales’,’true’
-----------------------------------------------------------------------------------------------------------------------------------------------------
二、对数据表操作
1.创建表
语法格式:
CREATE TABLE[[数据库名.]表所有者.]表名
(列名列的属性[,...n])
示例:
USE Sales
CREATE TABLE Sell
(
销售编号int not null primary key IDENTITY(1,2),--主键,自动增长,1开始2增量
商品编号int not null references Goods(商品编号),--设外键(方法一)
数量int not null check( 数量>0 and 数量<0 ),--核查约束
售出时间DateTime not null Default(getdate()),--默认时间
售货员工编号char(6) not null,
--设外键(方法二)
Constraint FK_Sell_Employees FOREIGN KEY (售货员工编号) REFERENCES Employees(编号)
)
GO
2.禁(启)用约束
禁/启用约束语法格式:
ALTER TABLE 表名
CHECK/NOCHECK CONSTRAINT 约束名
3.查看表属性
语法格式:
EXECUTE SP_HELP 表名
4.添加列:
示例:
alter table employees
add 邮箱varchar(30)
5.修改列:
示例:
alter table employees
alter column 邮箱varchar(20)
6.删除列:
示例:
alter table employees
drop column 邮箱
7.重新命名表
语法格式:
EXECUTE SP_RENAME ‘旧表名’,’新表名’
8.删除表
语法格式:
DROP TABLE employees
-----------------------------------------------------------------------------------------------------------------------------------------------------
9.插入数据
语法格式:
INSERT [INTO] 目标表名
[(字段列表)]
{VALUES({DEFAULT | NULL | 表达式} [,...n] ) | 执行语句}
示例:
insert into employees (编号,姓名,性别) --当只插入部分字段的值时,像这样标明字段标识出来. values ('1304','李明',1) --假如编号为自动增加,则应省去输入'1304',
--------------------------------------------------------------------------------------
--或者这样插入全部字段数据.假如还缺一个字段"销售部"
insert into employees values ('1304','李明',1,'销售部')
10.修改数据
语法格式:
UPDATE 目标表名
SET{列名={表达式| DEFAULT | NULL }[,...n] }
{ [FROM]{<源表名>}[,...n]}
[WHERE <搜索条件> ]
示例1:
UPDATE Employees
SET 电话='0771*******'
WHERE 编号='1304'
示例2:
UPDATE Goods
SET Goods.零售价=Goods.零售价*0.95
FROM Goods,Employees
WHERE Goods.进货时间=’2005-5-20’AND Employees.姓名=’李明’
AND Employees .编号=Goods.进货员工编号
11.删除数据
语法格式:
DELETE [FROM] 目标表名
[FROM 源表名]
[WHERE {搜索条件}]
示例:
DELETE FROM 电话 where 编号='1304'
-----------------------------------------------------------------------------------------------------------------------------------------------------
三、设置表约束
//当需要添加多个约束时,只需要一个add关键字就可以了.
--添加主键约束
use sale
go
alter table goods
add constraint PK_GoodsNo primary key (商品编号)
--添加外键约束
use 数据库名
go
alter table 表名
add constraint 外键约束名foreign key (列名)
references 被关联的表名(列名)
--设置唯一值.
use sale
alter table employees
add constraint IX_EmployeesName2 unique (姓名)
--设置核查约束.
use sale
alter table employees
add constraint CK_EmployeesDep check (部门='财务部'or 部门='库存部'or 部门='销售部'or 部门='采购部')
--设置默认值约束,使表格自动记录下输入数据时的时间.
use sale
alter table goods
add constraint DF_GoodsDate Default (getdate ()) for 进货时间
--自动编号的方法(1是始量,2是增量)???
use sale
alter table goods
alter column 商品编号char(8) not null identity(1,2)
--查看约束(sp_helpconstraint 不是随意设置的)
use sale
go
exec sp_helpconstraint employees
go
-----------------------------------------------------------------------------------------------------------------------------------------------------
三、数据库的查询
1.Select 语句基本格式:
Select [ All | Distinct ]
[ Top n [Percent] [ With Ties ] ]
列名
<列名>::=
{ *
| { 表名| 视图名| 表的别名}.*
| { 列名| 表达式| Identitycol | Rowguidcol }
| 别名= 表达式
}
[,...n]
2.使用通配符“*”,返回所有列值
示例:
Select * From employees
3.使用Distinct关键字消除重复记录
示例:
Select Distinct 生产厂商From goods
4.使用Top n( Percent )指定返回查询结果的前n行(个百分比)记录
示例1:
Select T op 4 商品名称,进货价,数量From goods
示例2:
Select T op 30 Percent商品名称,进货价,数量From goods
5.使用列别名改变查询结果中的的列名(三种方法)
示例:
Select 编号AS number, name=姓名, 电话telephone From employees
6.使用表达式
示例:
Select 商品名称,进货价*数量AS 总金额From goods
7.Like关键字
示例:
Select * From employees Where 姓名 Like ‘李%’
说明:
_ 代表任意一个字符(有些数据库使用*)
% 代表任意长度的字符串
[ ] 代表某个字符的取值范围,如:[a-e]指集合[abcde]内的任何一个字符
[^] 取非,与上相反.
8.Between关键字
示例:
Select 商品名称,零售价From goods Where 零售价Between 2000 And 3000
9.In 关键字
示例:
Select 商品名称,零售价From goods Where 商品名称In(‘打印机’,’摄像机’,’照相机’) 10.Null 关键字
示例:
Select * Form employees Where 电话Is Not Null
11.Order By 子句
语法格式:
Order By 列名列表[ Asc | DESC ]
示例:
Select 商品名称,进货价From goods Order By 进货价Desc
说明:当Order By 后什么都不写的时候,默认选择Asc
12.Into 子句
语法格式:
Into 新表名
示例:
Select T op 15 Percent 商品名称,进货价*数量AS 总金额Into 金额表
13.聚合函数
(暂略)
14.多表联接查询
(暂略)
-----------------------------------------------------------------------------------------------------------------------------------------------------
四、视图
1.语法格式:
Create View [<数据库名>.][<所有者>.] 视图名[ (列名[,...n]) ]
[ With { Encryption | Schemabinding | Veiw_Metadata } ]
AS
Select 查询语句
[ With Check Option ]
说明:
(暂略)
示例1:
Create View v_sales1
As
Select 销售编号,sell.商品编号,sell.数量,商品名称,编号,姓名
From sell,goods,employees
Where goods.商品编号=sell.商品编号
And goods.进货员工编号=employees.编号
And goods.姓名=’赵飞燕’
-----------------------------------------------------------------------------------------------------------------------------------------------------
五、存储过程
1.语法格式:
Create Proc[edure] [所有者.] 存储过程名[;整数]
[ {@参数数据类型} [Varying] [=默认值] [Output] ][,...n]
[ With { Recompile | encryption | Recompile,Encryption | Execute_As_Clause } ] [For Replication]
As
{ SQL语句[,...n] | External Name assembly_name.class_name.method_name }
说明:
(暂略)
示例1:
在Sales数据库中建立一个名为proc_find的存储过程,如果查询到指定的商品,则用RETURN语句返回1,否则返回0。
--创建存储过程
create proc proc_find
@spmc char(20)
as
if exists (select * from goods
where 商品名称=@spmc)
return 1
else
return 0
--执行存储过程
declare @i int
exec @i=proc_find '打印机'
select @i as 返回值
示例2:
在Sales数据库中建立一个名为date_to_date_sales的存储过程,该存储过程将返回在两个指定日期之间的所有销售记录。
create proc date_to_date_sales
@d1 datetime ,@d2 datetime
as
select * from sell
where 售出时间 between @d1 and @d2
exec date_to_date_sales '2004-1-1','2005-1-1'
-----------------------------------------------------------------------------------------------------------------------------------------------------
六、触发器
1.语法格式:
Create Trigger 触发器名称
On { All Server | Database }
[ With Encryption | Execute As Clause [,...n] ]
{ For | After } { 事件名称| 事件分组名称} [,...n]
As { SQL语句[ ; ] [,...n] | External Name assembly_name.class_nam e.method_name [ ; ] }
示例1:
在Sales数据库中,创建触发器tri_ReportGoods,当商品库存低于5件时发出库存量少请求进货的提示信息。
create trigger tri_ReportGoods
on sell
for insert
as
declare @sbh char(6),@smc char(20),@sysl int
select @sbh=inserted.商品编号,@smc=商品名称
from inserted join goods on inserted.商品编号=goods.商品编号
Select @sysl=goods.数量-isnull(sum(sell.数量),0)
from goods left join sell on goods.商品编号= sell.商品编号
where goods.商品编号=@sbh
GROUP BY goods.商品编号,goods.数量
if @sysl<5
print @smc+'的库存少于5件,请及时进货'
--测试触发器
insert into sell
values('2',2,'2009-12-1','1301')
示例2:
在Sales数据库中,创建触发器tri_GoodsCount,当商品销售之后,相应的库存要有所变化。
create trigger tri_GoodsCount
on sell
for insert
as
declare @sbh char(6),@sl int
select @sbh=inserted.商品编号,@sl=inserted.数量
from inserted join sell on inserted.商品编号=sell.商品编号
update goods
set 数量=数量-@sl
where goods.商品编号=@sbh
--测试触发器
insert into sell
values('2',2,'2009-12-2','1301')
select * from goods
示例3:
更改tri_ReportGoods触发器,当商品库存低于10件时才发出库存量少请求进货的提示信息,并对触发
器定义文本进行加密。
alter trigger tri_ReportGoods
on sell
WITH ENCRYPTION
for insert
as
declare @sbh char(6),@smc char(20),@sysl int
select @sbh=inserted.商品编号,@smc=商品名称
from inserted join goods on inserted.商品编号=goods.商品编号
Select @sysl=goods.数量-isnull(sum(sell.数量),0)
from goods left join sell on goods.商品编号= sell.商品编号
where goods.商品编号=@sbh
GROUP BY goods.商品编号,goods.数量
if @sysl<10
print @smc+'的库存少于10件,请及时进货'
示例4:
在Sales数据库中,创建一个DDL触发器,以防止表的删除。
create trigger tri_ddl
on database
for drop_table
as
print '不能删除该数据库中的表。'
rollback
--测试触发器
drop table dbo.aa
示例5:
创建一个DDL触发器,保护当前服务器中的所有数据库不能被修改。
create trigger tri_alter_database
on all server
for alter_database
as
print '不能修改该数据库。'
rollback
本篇文章来源于:开发学院https://www.wendangku.net/doc/0b12092837.html, 原文链接:https://www.wendangku.net/doc/0b12092837.html,/2011/0516/31629.php
--语句功能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDA TE --更新数据库表中的数据
--数据定义
CREA TE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREA TE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREA TE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引
CREA TE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREA TE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREA TE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREA TE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
--事务控制
COMMIT --结束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据访问特征--程序化SQL
DECLARE --为查询设定游标
EXPLAN --为查询描述数据访问计划
OPEN --检索查询结果打开一个游标
FETCH --检索一行查询结果
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
---局部变量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---全局变量
---必须以@@开头
--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --打印字符串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
--CASE
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*1.08
when job_level = ’2’ then e_wage*1.07
when job_level = ’3’ then e_wage*1.06
else e_wage*1.05
end
--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --打印变量x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c --打印变量c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--W AITFOR
--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’
select * from employee
--例等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
stockname like '[^F-M]%' --------- (^排除指定范围)
--------- 只能在使用like关键字的where子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stock*** = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by列号
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查询
--------- 除非能确保内层select只返回一个行的值,
--------- 否则应在外层where子句中用一个in限定符
select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
2007-5-14 09:05 回复
222.90.0.* 2楼
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 将表按行分组,指定列中有相同的值
having count(*) = 2 --------- having选定指定的组
select *
from table1, table2
where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接
select stockname from table1
union [all] ----- union合并查询结果集,all-保留重复行
select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value为select语句
***update***
update table_name set Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
***delete***
delete from table_name where Stockid = 3
truncate table_name ----------- 删除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全删除表
***alter table*** --- 修改数据库表结构
alter table database.owner.table_name add column_name char(2) null .....
sp_help table_name ---- 显示表已有特征
create table table_name (name char(20), age smallint, lname varchar(30))
insert into table_name select ......... ----- 实现删除列的方法(创建新表)
alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***
----统计函数----
A VG --求平均值
COUNT --统计数目
MAX --求最大值
MIN --求最小值
SUM --求和
--A VG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id
--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
from employee)
--STDEV()
--STDEV()函数返回表达式中所有数据的标准差
--STDEVP()
--STDEVP()函数返回总体标准差
--V AR()
--V AR()函数返回表达式中所有值的统计变异数
--V ARP()
--V ARP()函数返回总体变异数
----算术函数----
/***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression) --返回正弦是FLOA T 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOA T 值的以弧度表示的角
A TAN(float_expression) --返回正切是FLOA T 值的以弧度表示的角
A TAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度转换为角度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOA T 类型
RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOA T 类型
EXP(float_expression) --返回表达式的指数值
LOG(float_expression) --返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10 为底的对数值
SQRT(float_expression) --返回表达式的平方根
/***取近似值函数***/
CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOA T 类型
2007-5-14 09:05 回复
222.90.0.* 3楼
FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOA T 类型
ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据
--类型与表达式相同可为INTEGER/MONEY/REAL/FLOA T 类型
ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOA T 类型
SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOA T 类型
PI() --返回值为π即3.1415926535897936
RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数
----字符串函数----
ASCII() --函数返回字符表达式最左端字符的ASCII 码值
CHAR() --函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值
LOWER() --函数把字符串全部转换为小写
UPPER() --函数把字符串全部转换为大写
STR() --函数把数值型数据转换为字符型数据
LTRIM() --函数把字符串头部的空格去掉
RTRIM() --函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串
CHARINDEX(),PA TINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
--0 两个SOUNDEX 函数返回值的第一个字符不同
--1 两个SOUNDEX 函数返回值的第一个字符相同
--2 两个SOUNDEX 函数返回值的第一二个字符相同
--3 两个SOUNDEX 函数返回值的第一二三个字符相同
--4 两个SOUNDEX 函数返回值完全相同