精华内容
下载资源
问答
  • SqlServer语法(一)

    千次阅读 2019-05-08 20:56:30
    SqlServer语法(一) 来介绍几种SqlServer语法: 1、CASE WHEN THEN END用法 (1)基础版–不加参数 (2)高级版–加参数 按照个人想到的语法解释就是:case后面跟随的是传入的值,when是定义当传入的值为某某的...

    SqlServer语法(一)

    来介绍几种SqlServer语法:
    1、CASE WHEN THEN END用法
    (1)基础版–不加参数
    在这里插入图片描述
    (2)高级版–加参数
    在这里插入图片描述
    按照个人想到的语法解释就是:case后面跟随的是传入的值,when是定义当传入的值为某某的时候 then才输出具体为某某。

    2、charindx截取字符串用法
    (1)基础版
    在这里插入图片描述
    (2)加上一个left或者right
    在这里插入图片描述
    (3)加上一个left或者right的后面-1
    在这里插入图片描述
    按照个人的语法解释是:在charindex括号里面,内容分为两部分,逗号前面一部分需要检测的内容重点部分提取,后面是检测的内容,在查询时,charindex会把前面括号里的内容放在逗号后面内容进行检索,输出的值就是检索的位置。
    3、DATETIME用法
    在这里插入图片描述
    该理解的语法都在上面,有需要可以百度更多

    展开全文
  • Access与SQL Server 语法差异

    千次阅读 2017-02-03 10:53:58
    SqlServer语法 Oracle语法 解决方案 01 系统时间 Now(),Date() GETDATE() SYSDATE GetSysTimeStr 02 连接字符串 & + ||

     

    序号

    简述

    Access语法

    SqlServer语法

    Oracle语法

    解决方案

    01

    系统时间

    Now(),Date()

    GETDATE()

    SYSDATE

    GetSysTimeStr

    02

    连接字符串

    &

    +

    ||

    GetConcatStr

    03

    截取字符串

    Mid

    SubString

    SubString

    GetSubStr

    04

    小写字符串

    LCase

    Lower

    Lower

    GetLowerStr

    05

    大写字符串

    UCase

    Upper

    Upper

    GetUpperStr

    06

    查找字符串

    InStr

    InStr

    CharIndex

    GetFindStr

    07

    替换空值

    IIF+IsNull

    Coalesce

    Nvl

    GetNullStr

    08

    条件取值

    IIF, Switch

    Case+When+Else

    DeCode或Case

    GetCaseStr

    09

    字段类型转换

    CStr,CInt,CDate

    Convert或cast

    To_Char,To_Number.

    GetConvertStr

    10

    日期字符串

    #2004-10-19#

    ‘2004-10-9’

    ‘2004-10-9’

    GetDateStr

    11

    最大值加1

     

     

     

    GetNextNumStr

    12

    Like语句函数

    Like ‘101*

    Like ‘101%’

    Like ‘101%’

    GetLikeStr

     

    1、select,update语句区别

    select,update对于单表操作时基本一致。  

    但多表操作时Access与SqlServer中的update语句会有差别:

    SqlServer中更新多表的update语句:  

    update Table1 set a.Name = b.Name from Table1 a, Table2 b where a.ID = b.ID;

    Access中同样功能的sql语句:

    update Table1 a, Table2 b set a.Name = b.Name where a.ID = b.ID;

    比较得出:Access中的update语句没有from子句,所有引用的表都列在update关键字后

    2、delete语句  

       SqlServer中:delete  from <表名> where ID > 1;

       Access中: delete * from<表名>where ID > 1;

    3、as后面的计算字段区别

     SqlServer中:

    select sum(num) as sum_num, sum(num)*num as all_num from <表名>;

        Access中:    

    select sum(num) as sum_num, sum_num*num  as all_num from <表名>;

    比较得出:

    SqlServer中:不可以把as后的字段当作一个数据库字段参与计算。

    Access中:可以把as后的字段当作一个数据库字段参与计算。 

         SQL Server as可以省略,Access不能

    4、时间字段、日期分隔符号

        SqlServer中:单引号(’)

    select * from<表名> where RegDate = '2011-08-10' 

        Access中:要用#号分隔,转换为日期

    select * from<表名>where 生日=#2011-08-10#

    select * from<表名>where 生日=2011-08-10

    select * from<表名>where 生日=CDate(#2011-08-10#)

    select * from<表名>where 生日=CDate(2011-08-10)

    select * from<表名>where 生日=CDate('2011-08-10')

    5、Boolean所表示的常量

        SqlServer中:整数:1(真)、0(假)

        Access中:True、False;On、Off;Yes、No;整数:-1(真)、0(假)。

    6、字符串连接

        SqlServer中:加号(+)

        Access中:和号(&)

    7、通配符

        SqlServer中:

         百分号(%)与零个或更多字符匹配。 

         下划线(_)与单个字符匹配。

         上插入符(^)意味着不在列表中。

         没有与英镑符(#)对应的字符。

        Access中:   星号(*)与零个或更多字符匹配。 

               问号(?)与单个字符匹配。

               叹号(!)意味着不在列表中。

               英镑符(#)意味着单个数字。

    8、DropIndex

        SqlServer中:Drop Index<表名>.<索引名>

        Access中: Drop Index<索引名> ON <表名>

    9、表添加标识列

     Accessalter table <表名> add 列名 Counter(1,1);

    SqlServeralter table <表名> add 列名 bigint identity(1,1) not null;

    10、系统时间及常用时间函数

    SqlServer:   select getdate()

    Access:    select date()+time()    SelectNow()

    SqlServer 中获取日期时间函数是convert(datetime,getdate(),0)

        而在Access中为date()+time() 或者 Now()

    Access中,datediff ()dateadd ()函数表示时间类型的部分必须用单引号括起来

    select datediff('n',addtime,now()) from 表名;

    select dateadd('d',5,now());

    而在SqlServer中,必须写成

    select datediff(n,addtime,getdate()) from 表名;

    select dateadd(d,5,getdate());

    11、 Access不支持between语句和Case+When+Else语句

    12、字符串函数(截取字符串、大写、小写、查找字符串位置)

       Access:  MidUCaseLCaseInStr

             select Mid(列名,2,4) from <表名>;

            select UCase(列名) from  <表名>;

            select LCase(列名) from  <表名>;

            select InStr(列名, 'abc') from  <表名>;//查找字符串位置

       SqlServer: SubStringUpperLowerCharIndex

             select substring(列名,2,4) from <表名>;

            select Upper(列名) from <表名>;

            select Lower(列名) from  <表名>;

            select CharIndex('abc', 列名) from  <表名>;//查找字符串位置

            select CharIndex('abc', 列名,2) from  <表名>;//查找字符串位置

    13、 Access中的逻辑值在库中为-1和0,而SQL Server中为1和0,所以写BoolField= 1这样的语句有兼容性问题,应该改为BoolField <>0

    14、Access的varchar(文本)型最大只有255,所以如果一个文本型字段大于255时,最好定义成备注型(Access中)或text型(SQL Server中);

    15、数据类型:

    Access

    SQL Server

    SQL Server Definition

    Yes/No

    BIT

    (Integer: 0 or 1)

    Number (Byte)

    TINYINT

    (Positive Integer 0 -> 255)

    Number (Integer)

    SMALLINT

    (Signed Integer -32,768 -> 32,767)

    Number (Long Integer)

    INT

    (Signed Integer -(2^31) -> (2^31)-1)

    (no equivalent)

    BIGINT

    (Signed Integer -(2^63) -> (2^63)-1)

    Number (Single)

    REAL

    (Floating precision -1.79E + 308 -> 1.79E + 308)

    Number (Double)

    FLOAT

    (Floating precision -3.40E + 38 -> 3.40E + 38)

    Currency

    MONEY

    (4 decimal places, -(2^63)/10000 -> ((2^63)-1)/10000)

    Currency

    SMALLMONEY

    (4 decimal places, -214,748.3648 -> 214,748.3647)

    Hyperlink

    (no equivalent - use VARCHAR())

    Decimal

    DECIMAL

    (Fixed precision -10^38 + 1 -> 10^38 - 1)

    Numeric

    NUMERIC

    (Fixed precision -10^38 + 1 -> 10^38 - 1)

    Date/Time

    DATETIME

    (Date+Time 1753-01-01 -> 9999-12-31, accuracy of 3.33 ms)

    Date/Time

    SMALLDATETIME

    (Date+Time 1900-01-01 -> 2079-06-06, accuracy of one minute)

    Text(n)

    CHAR(n)

    (Fixed-length non-Unicode string to 8,000 characters)

    Text(n)

    NCHAR(n)

    (Fixed-length Unicode string to 4,000 characters)

    Text(n)

    VARCHAR(n)

    (Variable-length non-Unicode string to 8,000 characters)

    Text(n)

    NVARCHAR(n)

    (Variable-length Unicode string to 4,000 characters)

    Memo

    TEXT

    (Variable-length non-Unicode string to 2,147,483,647 characters)

    Memo

    NTEXT

    (Variable-length Unicode string to 1,073,741,823 characters)

    OLE Object

    BINARY

    (Fixed-length binary data up to 8,000 characters)

    OLE Object

    VARBINARY

    (Variable-length binary data up to 8,000 characters)

    OLE Object

    IMAGE

    (Variable-length binary data up to 2,147,483,647 characters)

    AutonumberAutoincrement

    IDENTITY

    (any numeric data type, with IDENTITY property)

     

    Access如果用自动编号且主键,如下:

    create table table1 (idautoincrement(1,1) primary key)

    create table AAA(RID Counter,url Memo,ActNameMemo, ActDate text(150), Up_Time text(100))

    连接字符串:conn = "Provider =Microsoft.Jet.OLEDB.4.0;Data Source = database.mdb";

    16、随机读取若干条记录

       SqlServer: select top 5 * from <表名> order by newid();

       Access:  select top 5 * From <表名> ORDER BY Rnd(id);

    17、条件取值Case+When+ElseIIFSwitch的使用

      使用SQL语句用...代替过长的字符串显示

      SqlServer: select case

    when len(列名)>10 then left(列名,10)+'...'

    else 列名

    end as 别名

    from  表名;

    Access:  select IIF(len(列名)>2,left(列名,2)+'...', 列名) from  表名;

    select Switch( On=1,'On', On=0,'Off') fromtable

    18、余数

       Access:   a mod b

    SqlServer: a % b

    19、判断字段值为空的区别

    普通空:

    Access和SqlServer一样  where code is nullwhere code is not null

    条件空:

    Access:iif(列名 is null,0, 列名) 或iif(列名 is null, 列名2, 列名)

    SqlServer: isnull(列名,0)isnull(列名, 列名2)

    20、截取字符串

    Access:   select Mid(列名,2,4)from  <表名>;

    SqlServer: select substring(列名,2,4) from  <表名>;

    21、字段类型转换及一些函数异同

      Access:

        CDate将字符串转化成为日期select CDate(“2011/08/11”)

    CStr  括号中的内容转换为字符串,括号中的内容可以是值、变量或表达式

    select CStr(155值是"155"

    CInt       select Cint("200"&"40")  值是"20040"

    Format   格式化字符串,select Format(now(),'yyyy-mm-dd')返回类似于"2011-08-11" , select Format (3/9,"0.00")返回0.33

    Space产生空格select Space(4)返回4个空格

    StrComp比较两个字符串是否内容一致(不区分大小写) select StrComp ("abc","ABC")

    返回0, select StrComp("abc","123")返回-1

    InStr   查询子串在字符串中的位置select Instr("abc","a")返回1, select Instr ("abc","f")返回0

    Mid    取得子字符串select Mid ("123",1,2) 返回12

    Choose根据第一参数,返回后面字符串组的值, select Choose(1,"a","b","c")返回a,1改成2后,返回b,改成3后,返回c(第一个参数也可以是某个字段)

         IIF根据表达式返回特定的值select IIF("3>1","OK","False"),返回OK

    SqlServer:

     select cast('2011-08-11' as datetime)

     select convert(varchar(10),getdate(),120) --2011-08-11

     select replace(convert(varchar(10),cast('2011-08-11' as datetime),120), '-','') –20110811223308

    22、Access使用Chr()将ASCII码转为字符,而SQL中类似函数为Char()

    Access: SELECT CHR(13) & CHR(10)

    SQL Server: SELECT CHAR(13) + CHAR(10)

    23、字符串处理函数

    Access的字符串函数不光可以在查询数据库的语句内部使用,也可以在VBA中直接使用。

    Access

    SQL Server

    TEXT Equivalent

    CINT(), CLNG()

    CAST()

    CAST(SUBSTRING())

    FORMAT()

    CONVERT()

    CONVERT(SUBSTRING())

    INSTR()

    CHARINDEX()

    CHARINDEX(), PATINDEX()

    ISDATE()

    ISDATE()

    ISDATE(SUBSTRING())

    ISNULL()

    ISNULL()

    ISNULL()

    ISNUMERIC()

    ISNUMERIC()

    ISNUMERIC(SUBSTRING())

    LEFT()

    LEFT()

    SUBSTRING()

    LEN()

    LEN()

    DATALENGTH()

    LCASE()

    LOWER()

    LOWER(SUBSTRING())

    LTRIM()

    LTRIM()

    LTRIM(SUBSTRING())

    REPLACE()

    REPLACE()

    STUFF()

    RIGHT()

    RIGHT()

    SUBSTRING()

    RTRIM()

    RTRIM()

    RTRIM(SUBSTRING())

    CSTR()

    STR()

    STR(SUBSTRING())

    MID()

    SUBSTRING()

    SUBSTRING()

    UCASE()

    UPPER()

    UPPER(SUBSTRING())

    StrConv()

    n/a

    n/a

    TRIM()

    n/a

    n/a

     

    24、Access里列别名必须使用As进行标记,SQLServer则可要可不要;表的别名则都是可用可不用。

    25、Access的NOT IN速度慢

    在通过VBA的JET引擎调用Access语法时,NOT IN速度非常慢,上千行的数据可能就需要好几分钟。替代方法是:

    SELECT t1.id FROM t1 LEFT JOIN t2 ON t1.id = t2.id WHEREt2.id IS NULL

    26、Currency与Money

    Currency类型的好处是可以使用Format函数去添加货币符号和合适的小数点、千分位位置。但在SQLServer内部做不到这一点,需要先将结果取出然后使用外部函数去实现。

    27、Yes/No与BIT

    对比布尔类型的列,Access中可以使用True/False来比较或赋值,但SQL中最好直接使用整数。

    --Access: 

    [...]WHERE ynColumn = FALSE 

    [...]WHERE ynColumn = 0 

    -- SQLServer: 

    [...]WHERE ynColumn = 0


    展开全文
  • ORACLE与SQL SERVER语法区别 2

    千次阅读 2012-07-11 16:39:27
    ORACLE与SQL SERVER语法区别   一、数据类型 ORACLE与SQL SERVER在数据类型的对比如下:   SQL SERVER ORACLE 数字类型 DECIMAL[(P[, S])] NUMBER[(P[, S])] ...

    ORACLE与SQL SERVER语法区别

     

    一、数据类型

    ORACLE与SQL SERVER在数据类型的对比如下:

     

    SQL SERVER

    ORACLE

    数字类型

    DECIMAL[(P[, S])]

    NUMBER[(P[, S])]

    NUMERIC[(P[, S])]

    NUMBER[(P[, S])]

    FLOAT[(N)]

    NUMBER[(N)]

    INT

    NUMBER

    SMALLINT

    NUMBER

    TINYINT

    NUMBER

    MONEY

    NUMBER[19,4]

    SMALLMONEY

    NUMBER[19,4]

    字符类型

    CHAR[(N)]

    CHAR[(N)]

    VARCHAR[(N)]

    VARCHAR2[(N)]

    日期时间类型

    DATETIME

    DATE

    SMALLDATETIME

    DATE

    其它

    TEXT

    CLOB

    IMAGE

    BLOB

    BIT

    NUMBER(1)

      

    二、表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX)

    在创建表及其主键、外键、CHECK、UNIQUE、DEFAULT、INDEX时,SQL SERVER 与ORACLE的语法大致相同。主要区别如下:

    (1) Oracle定义表字段的default属性紧跟字段类型之后,如下:

        Create table MZ_Ghxx

      ( ghlxh  number primay key ,

        rq     date   default sysdate not null,

      ….

      )

      而不能写成

        Create table MZ_Ghxx

      ( ghlxh  number primay key ,

        rq     date   not null default sysdate,

      ….

      )

     

    三、存储过程/函数

     

    过程与函数的区别

    函数可以返回一个值给调用环境;而过程不能,过程只能通过返回参数(带“OUT”或“IN OUT”)传回去数据。

     

       SQLSERVER中存储过程的结构大致如下

               CREATE PROCEDURE procedure_name

                   /*输入、输出参数的声明部分*/

               AS

                   DECLARE

                   /*局部变量的声明部分*/

               BEGIN

                   /*主体SQL语句部分*/

                  /*游标声明、使用语句在此部分*/

               END

        ORACLE中存储过程的结构大致如下

               CREATE OR REPLACE PROCEDURE procedure_name

                  (  /*输入、输出参数的声明部分*/  )

               AS

                   /*局部变量、游标等的声明部分*/

               BEGIN

                   /*主体SQL语句部分*/

                   /*游标使用语句在此部分*/

               EXCEPTION

                   /*异常处理部分*/

               END ;

     

    ORACLE端FUNCTION语法说明

    CREATE [OR REPLACE] FUNCTION function_name

    [(argument [{IN | OUT | IN OUT }] ) type,

    [(argument [{IN | OUT | IN OUT }] ) type

    RETURN return_type {IS | AS}

    BEGIN

    END;

     

    四、变量赋值

      在SQL SERVER语句中用如下语句对局部变量赋值(初始值或

              数据库表的字段值或表达式):

               “SELECT 局部变量名 =  所赋值(初始值或数据库表的字段值或表达式)”;

              而在ORACLE中,将初始值赋给局部变量时,用如下语句:

               “局部变量名 : =  所赋值(初始值或表达式);” ,

              将检索出的字段值赋给局部变量时,用如下语句:

               “SELECT 数据库表的字段值 INTO 局部变量名 …” 。

     

     五、常用函数比较(以下的exp为expression的缩写)

     

    Sql server

    orcale

    字符类函数

    Ascii(char_exp)

    Ascii(str_exp)

    Char(int_exp)

    Chr(int_exp)

    Datalength(char_exp)

    Length(str_exp)

    Substring(exp, start, length)

    Substr(exp, start, length)

    Upper(char_exp)

    Upper(str_exp)

    Lower(char_exp)

    Lower(str_exp)

    Stuff(char_exp1,start,length,

          Char_exp2)

    Translate(str_exp,from_str,to_str)

    Ltrim(char_exp)

    Ltrim(str_exp1 [,str_exp2])

    Rtrim(char_exp)

    Rtrim(str_exp1 [,str_exp2])

    日期类函数

    Getdate()

    Sysdate

    数学类函数

    Abs(numeric_exp)

    Abs(number_exp)

    Ceiling(numeric_exp)

    Ceil(number_exp)

    Exp(float_exp)

    Exp(number_exp)

    Floor(numeric_exp)

    Floor(number_exp)

    Power(numeric_exp,int_exp)

    Power(number_exp1,number_exp2)

    Round(numeric_exp,int_exp)

    Round(number_exp1 [,number_exp2])

    Sign(int_exp)

    Sign(number_exp)

    Sqrt(float_exp)

    Sqrt(number_exp)

    转换函数

    Convert(datatype[(length)],exp,format)

    To_char(datatype,str_format)

    Convert(datatype[(length)],exp,format)s

    To_date(str_exp,date_format)

    Convert(datatype[(length)],exp,format)

    To_number(str_exp,num_format)

    其它函数

    AVG([ALL | DISTINCT] col)

    AVG([ALL | DISTINCT] col)

    COUNT({[ALL | DISTINCT] col] | *})

    COUNT({[ALL | DISTINCT] col} | *))

    MAX([ALL | DISTINCT] col)

    MAX([ALL | DISTINCT] col)

    MIN([ALL | DISTINCT] col)

    MIN([ALL | DISTINCT] col)

    SUM([ALL | DISTINCT] col)

    SUM([ALL | DISTINCT] col)

    STDEV(col)

    STDDEV(col)

    VAR(col)

    VARIANCE(col)

    ISNULL(check_exp, replace_value)

    NVL(check_exp, replace_value)

    CASE

    DECCODE

    展开全文
  • SQL Server 语法大全

    千次阅读 2017-11-22 14:20:49
    SQL

    SQL Server 语法大全


    --数据操作
    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 =1then e_wage*1.08
    when job_level =2then e_wage*1.07
    when job_level =3then 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:03select * from employee
    --例 等到晚上11 点零8 分后才执行SELECT 语句
    waitfor time ’23:08:00select * 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 *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约束

    ----统计函数----

    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)

    ----日期函数----

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

    ----系统函数----

    APP_NAME() --函数返回当前执行的应用程序的名称
    COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值
    COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值
    COL_NAME(, ) --函数返回表中指定字段的名称即列名
    DATALENGTH() --函数返回数据表达式的数据的实际长度
    DB_ID(['database_name']) --函数返回数据库的编号
    DB_NAME(database_id) --函数返回数据库的名称
    HOST_ID() --函数返回服务器端计算机的名称
    HOST_NAME() --函数返回服务器端计算机的名称
    IDENTITY([, seed increment]) [AS column_name])
    --IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
    
    ISDATE() --函数判断所给定的表达式是否为合理日期
    ISNULL(, ) --函数将表达式中的NULL 值用指定值替换
    ISNUMERIC() --函数判断所给定的表达式是否为合理的数值
    NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值
    NULLIF(, )
    --NULLIF 函数在expression_r1 与expression_r2 相等时返回NULL 值若不相等时则返回expression_r1
    展开全文
  • sql server语法(基础整理)

    千次阅读 2019-11-04 20:16:47
    sql server身份验证 系统内置的数据库用户有 dbo,guest.. 创建新的登录账户 use master go exec sp_addlogin 'xiaozhang','1234' --xiaowang是账户,1234是密码 删除登录账户的方法 use master go --删除登录...
  • [select into]在ms sqlserver 可以直接用select into语法:select * into tableb 在oracle中语法如下:create table tableb_tmpas ( select * from tablea ) [update from]在Oracle中没有update from这样的语法,但
  • SQL SERVER 语法检查方法

    千次阅读 2009-05-13 20:56:00
    1.SET NOEXEC 方式 : 编译但不执行语句 When SET NOEXEC is ON, SQL Server compiles each batch of Transact-SQL statements but does not execute them. When SET NOEXEC is OFF, all batches are executed ...
  • oracle 与 sqlserver 语法大比较

    千次阅读 2018-07-16 10:17:51
    sqlserver 数据库,在查询数据时,都要求在 select 语句中后面跟一个( nolock )或( with nolock )来保证读取大表时不影响其它程序进程的数据操作。 在 oracle 中,目前还不允许脏读的方式,在每次 select 后,...
  • oracle 与 sql server语法函数比较

    千次阅读 2012-09-06 15:38:39
    异种数据库函数和标准SQL语法比较 0 引言  在实际工作当中,常常会遇到同种功能在异种数据库中函数的实现方法和SQL语法的实现方法,时间的累积效应显示,提高这部分的空缺,无疑对使用数据库的人员来说,都有...
  • SQLCE 3.5 SP2 与 SQL SERVER 语法异同

    千次阅读 2014-12-03 17:36:40
    UPDATE STATISTICS (SQL Server Compact) ON <表名> 的语法。 支持 支持 支持 合并更新插入。 不支持 不支持 支持 带“=”的数据库对象名称的别名。 ...
  • 取表其中n到m条记录的语句(SqlServer语法)1.select top m * from tablename where id not in (select top n id from tablename)2.select top m * into 临时表(或表变量) from tablename order by columnname -- 将...
  • Transact-SQL语法规则 规则 描述 |(竖线) 分隔括号或大括号内的语法项目。只能选择一个项目 [](方括号) 可选语法项目。不必...
  • Sqlite基础及其与SQLServer语法差异

    千次阅读 2009-12-18 16:27:00
    sqlite官方站http://www.sqlite.org/ SQL Syntax http://www.sqlite.org/lang.html sqlite中文站http://www.sqlite.com.cn/ http://www.sqlitechina.org/ 建立数据库档案 用sqlite3建立数据库的方法很简单,只要在...
  • –按mySql语法统计按周,月,季,年。income为合计的价格字段,createDate为交易时间。 select sum(income)as revenue,week(createDate) as week,month(createDate) as month, quarter(createDate)as quarter,year...
  • SQL server 基础语法

    万次阅读 多人点赞 2018-06-17 19:45:43
    SQL server 基础语法 SQL server 基础语法 语法简介 select 语句 select distinct 语句 where 语句 and &amp;amp; or 语句 order by 语句 insert into 语句 update 语句 delete 语句 语法简介 ...
  • SQL server2012语法大全

    千次阅读 2016-06-05 21:21:15
    SQL Server 语法大全 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建...
  • sqlserver with 语法

    千次阅读 2019-03-21 00:44:11
    title: sql高级语法-WITH ...- sqlserver description: with 语法 用来实现递归查询,比如当要查询部门时,查询当前部门及下属部门就要采用递归的查询 Id Pid DeptName 1 0 总部 2 1 研发部 3 1 测试...
  • Access和SQL Server语法区别

    千次阅读 2011-10-18 14:42:06
    一、有区别的函数及解决方案 以下所示的解决方案中的函数定义在untDataBase单元中TAdoConn类的方法中。 序号 简述 Access语法 ...SqlServer语法 Oracle语法 DB2语法
  • sql server 与 oracle语法对比

    千次阅读 2014-03-12 11:27:32
    from: ...找到一篇好文章,转载给大家 ORACLE与SQL SERVER语法区别   一、数据类型 ORACLE与SQL SERVER在数据类型的对比如下:   SQL SERVER ORACLE 数字类型 DECI
  • SQL SERVER With语法

    万次阅读 2012-05-30 15:08:08
     看了其中第一条语法,放在SQL SERVER中测试,发现真的列举出所有组合成2美元的方式。  于是仔细研究语法,发现用了With关键字。    发现很长时间没有使用SQL SERVER数据库,真的有点落后了。于是见到那...
  • sql server 与 oracle语法对比.

    千次阅读 2010-04-15 10:19:00
    ORACLE与SQL SERVER语法区别 一、数据类型ORACLE与SQL SERVER在数据类型的对比如下: SQL SERVERORACLE数字类型DECIMAL[(P[, S])]NUMBER[(P[, S])]NUMERIC[(P[, S])]NUMBER
  • MySQL与SQLServer语法区别

    千次阅读 2019-12-05 14:15:03
    MySQL与SQLServer语法区别
  • Sql Server 2008 语法大全

    千次阅读 2012-05-03 10:40:02
    Sql Server 2008语法大全图一 图二 图三 图四 图五 图6 图7 图8 图9 图10 图11 图12 图13 MERGE
  • sql server系列课程t-sql基础语法

    千人学习 2018-11-20 21:21:51
    本课程主要讲解标识符,变量,常量,运算符,表达式,流程控制语句,链接查询,where条件,order by ,group by ,having by 以及关联查询等知识点的详解。
  • SQL Server常用函数 & SQL语法函数

    万次阅读 2020-08-07 09:29:10
    关系型数据库: SQL语法&函数(建议):https://www.w3school.com.cn/sql/index.asp 一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含...
  • SqlServer事务语法及使用方法

    万次阅读 2016-10-22 16:22:07
    SqlServer中的每一条select、insert、update、delete语句都是隐式事务的一部分。即使只发出一条语句,也会把这条语句当做一个事务-或执行语句的所有内容或什么都不执行。但是如果需要的不只是一条,而是多条语句呢?...
  • Sql Server事务语法及使用方法

    千次阅读 2019-04-08 16:34:06
    #本文实例讲述了Sql Server事务语法及使用方法。分享给大家供大家参考,具体如下: 事务是关于原子性的。原子性的概念是指可以把一些事情当做一个不可分割的单元来...SqlServer中的每一条select、insert、update、de...
  • SQLSERVER存储过程语法详解

    千次阅读 2014-05-19 15:27:56
    SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]  [ { @parameter data_type }  [ VARYING ] [ = default ] [ OUTPUT ]  ] [ ,...n ]  [ WITH  { ...
  • sql server语法校验

    千次阅读 2013-10-16 22:45:02
    其实这个题很简单,根本不需要用正则表达式去做语法分析,可以直接使用sql server自带的功能. 不多说,上代码. alter proc sp_checksql @sql varchar(8000), @Error varchar(max)='' output as begin set ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,524
精华内容 72,209
关键字:

sqlserver语法