SQL基本语句

一、基础

1、说明:创建数据库

Create   DATABASE   database - name

2、说明:删除数据库

drop   database  dbname

3、说明:备份sql server

-- - 创建 备份数据的 device
USE  master
EXEC  sp_addumpdevice  ' disk ' ' testBack ' ' c:mssql7backupMyNwind_1.dat '
-- - 开始 备份
BACKUP   DATABASE  pubs  TO  testBack

4、说明:创建新表

create   table  tabname(col1 type1  [ not null ]   [ primary key ] ,col2 type2  [ not null ] ,..)

根据已有的表创建新表:

A: create   table  tab_new  like  tab_old (使用旧表创建新表)
B:
create   table  tab_new  as   select  col1,col2…  from  tab_old definition  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  b  ON  a.a  =  b.c

B:right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

二、提升

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

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

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

select  a.title,a.username,b.adddate  from   table  a,( select   max (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  ON  a.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  where  table1.field1 = table2.field1

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

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

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

select   *   from  日程安排  where   datediff ( ' 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)  from  tablename 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)  from  tablename  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   0   end ), sum ( case  vender  when   ' C '   then  pcs  else   0   end ), sum ( case  vender  when   ' 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

三、技巧

1、1=1,1=2的使用,在SQL语句组合时用的较多

“where 1=1” 是表示选择全部  “where 1=2”全部不选,
如:

if   @strWhere   != '
begin
set @strSQL = 
' select   count ( * as  Total  from   [ ' + @tblName + ' ]   where   '  + @strWhere
end
else
begin
set @strSQL = 
' select   count ( * as  Total  from   [ ' + @tblName + ' ]'
end

我们可以直接写成

set   @strSQL   =   ' select count(*) as Total from [ '   +   @tblName   +   ' ] where 1=1 安定  ' +   @strWhere

2、收缩数据库

-- 重建索引
DBCC  REINDEX
DBCC  INDEXDEFRAG
-- 收缩数据和日志
DBCC  SHRINKDB
DBCC  SHRINKFILE

3、压缩数据库

dbcc  shrinkdatabase(dbname)

4、转移数据库给新用户以已存在用户权限

exec  sp_change_users_login  ' update_one ' , ' newname ' , ' oldname '
go

5、检查备份集

RESTORE  VERIFYONLY  from   disk = ' E:dvbbs.bak '

6、修复数据库

Alter   DATABASE   [ dvbbs ]   SET  SINGLE_USER
GO
DBCC  CHECKDB( ' dvbbs ' ,repair_allow_data_loss)  WITH  TABLOCK
GO
Alter   DATABASE   [ dvbbs ]   SET  MULTI_USER
GO

7、日志清除

SET  NOCOUNT  ON
DECLARE   @LogicalFileName  sysname,
        
@MaxMinutes   INT ,
        
@NewSize   INT

USE     tablename             --  要操作的数据库名
Select    @LogicalFileName   =   ' tablename_log ' ,   --  日志文件名
@MaxMinutes   =   10 ,               --  Limit on time allowed to wrap log.
         @NewSize   =   1                    --  你想设定的日志文件的大小(M)

--  Setup / initialize
DECLARE   @OriginalSize   int
Select   @OriginalSize   =  size
  
FROM  sysfiles
  
Where  name  =   @LogicalFileName
Select   ' Original Size of  '   +   db_name ()  +   '  LOG is  '   +
        
CONVERT ( VARCHAR ( 30 ), @OriginalSize +   '  8K pages or  '   +
        
CONVERT ( VARCHAR ( 30 ),( @OriginalSize * 8 / 1024 ))  +   ' MB '
  
FROM  sysfiles
  
Where  name  =   @LogicalFileName
Create   TABLE  DummyTrans
  (DummyColumn 
char  ( 8000 not   null )

DECLARE   @Counter    INT ,
        
@StartTime   DATETIME ,
        
@TruncLog    VARCHAR ( 255 )
Select    @StartTime   =   GETDATE (),
        
@TruncLog   =   ' BACKUP LOG  '   +   db_name ()  +   '  WITH TRUNCATE_ONLY '

DBCC  SHRINKFILE ( @LogicalFileName @NewSize )
EXEC  ( @TruncLog )
--  Wrap the log if necessary.
WHILE      @MaxMinutes   >   DATEDIFF  (mi,  @StartTime GETDATE ())  --  time has not expired
       AND   @OriginalSize   =  ( Select  size  FROM  sysfiles  Where  name  =   @LogicalFileName )
      
AND  ( @OriginalSize   *   8   / 1024 >   @NewSize
  
BEGIN   --  Outer loop.
     Select   @Counter   =   0
    
WHILE   (( @Counter   <   @OriginalSize   /   16 AND  ( @Counter   <   50000 ))
      
BEGIN   --  update
         Insert  DummyTrans  VALUES  ( ' Fill Log ' )
        
Delete  DummyTrans
        
Select   @Counter   =   @Counter   +   1
      
END
    
EXEC  ( @TruncLog )
  
END
Select   ' Final Size of  '   +   db_name ()  +   '  LOG is  '   +
        
CONVERT ( VARCHAR ( 30 ),size)  +   '  8K pages or  '   +
        
CONVERT ( VARCHAR ( 30 ),(size * 8 / 1024 ))  +   ' MB '
  
FROM  sysfiles
  
Where  name  =   @LogicalFileName
Drop   TABLE  DummyTrans
SET  NOCOUNT  OFF

8、说明:更改某个表

exec  sp_changeobjectowner  ' tablename ' , ' dbo '

9、存储更改全部表

Create   PROCEDURE  dbo.User_ChangeObjectOwnerBatch
@OldOwner   as   NVARCHAR ( 128 ),
@NewOwner   as   NVARCHAR ( 128 )
AS

DECLARE   @Name    as   NVARCHAR ( 128 )
DECLARE   @Owner    as   NVARCHAR ( 128 )
DECLARE   @OwnerName    as   NVARCHAR ( 128 )

DECLARE  curObject  CURSOR   FOR
select   ' Name '    =  name,
  
' Owner '    =   user_name (uid)
from  sysobjects
where   user_name (uid) = @OldOwner
order   by  name

OPEN   curObject
FETCH   NEXT   FROM  curObject  INTO   @Name @Owner
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
if   @Owner = @OldOwner
begin
  
set   @OwnerName   =   @OldOwner   +   ' . '   +   rtrim ( @Name )
  
exec  sp_changeobjectowner  @OwnerName @NewOwner
end
--  select @name,@NewOwner,@OldOwner

FETCH   NEXT   FROM  curObject  INTO   @Name @Owner
END

close  curObject
deallocate  curObject
GO

10、SQL SERVER中直接循环写入数据

declare   @i   int
set   @i = 1
while   @i < 30
begin
  
insert   into  test (userid)  values ( @i )
  
set   @i = @i + 1
end

四、SQL语句功能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE 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

 --WAITFOR
--例 等待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
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(/**//*常用函数*/)***

----统计函数----
AVG --求平均值
COUNT --统计数目
MAX --求最大值
MIN --求最小值
SUM --求和

--AVG

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()函数返回总体标准差

--VAR()
--VAR()函数返回表达式中所有值的统计变异数

--VARP()
--VARP()函数返回总体变异数

----算术函数----

/**//***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切
/**//***反三角函数***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度转换为角度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT 类型
RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT 类型
EXP(float_expression) --返回表达式的指数值
LOG(float_expression) --返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10 为底的对数值
SQRT(float_expression) --返回表达式的平方根
/**//***取近似值函数***/
CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据
--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型
--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
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(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置
SOUNDEX() --函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
--0 两个SOUNDEX 函数返回值的第一个字符不同
--1 两个SOUNDEX 函数返回值的第一个字符相同
--2 两个SOUNDEX 函数返回值的第一二个字符相同
--3 两个SOUNDEX 函数返回值的第一二三个字符相同
--4 两个SOUNDEX 函数返回值完全相同


QUOTENAME() --函数返回被特定字符括起来的字符串

select   quotename ( ' abc ' ' { ' quotename ( ' abc ' )

运行结果如下
----------------------------------{
{abc} [abc]*/

REPLICATE() --函数返回一个重复character_expression 指定次数的字符串

select   replicate ( ' abc ' 3 replicate ' abc ' - 2 )

运行结果如下
----------- -----------
abcabcabc NULL*/

REVERSE() --函数将指定的字符串的字符排列顺序颠倒
REPLACE() --函数返回被替换了指定子串的字符串

select   replace ( ' abc123g ' ' 123 ' ' def ' )

运行结果如下
----------- -----------
abcdefg*/

SPACE() --函数返回一个有指定长度的空白字符串
STUFF() --函数用另一子串替换字符串指定位置长度的子串


----数据类型转换函数----
CAST() 函数语法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])

select   cast ( 100 + 99   as   char convert ( varchar ( 12 ),  getdate ())

运行结果如下
------------------------------ ------------
199 Jan 15 2000

----日期函数----
DAY() --函数返回date_expression 中的日期值
MONTH() --函数返回date_expression 中的月份值
YEAR() --函数返回date_expression 中的年份值
DATEADD(<datepart> ,<number> ,<date>)
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
--函数返回两个指定日期在datepart 方面的不同之处
DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分
DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分
GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间

----系统函数----
APP_NAME() --函数返回当前执行的应用程序的名称
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值
COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值
COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名
DATALENGTH() --函数返回数据表达式的数据的实际长度
DB_ID(['database_name']) --函数返回数据库的编号
DB_NAME(database_id) --函数返回数据库的名称
HOST_ID() --函数返回服务器端计算机的名称
HOST_NAME() --函数返回服务器端计算机的名称
IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
/**//*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函数判断所给定的表达式是否为合理日期
ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值
NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值
NULLIF(<expression1>, <expression2>)
--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值