网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

SQL所有语法归类

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:本文主要为网学会员提供SQL所有语法归类,希望对需要SQL所有语法归类网友有所帮助,学习一下!


    SQL语句的基本语法
    一.Select语句的完整语法为:
    Select[ALL|DISTINCT|DISTINCTROW|TOP]
    {*|talbe.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,…]]}
    FROMtableexpression[,…][INexternaldatabase]
    [Where…]
    [GROUPBY…]
    [HAVING…]
    [ORDERBY…]
    [WITHOWNERACCESSOPTION]
    说明:
    用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。
    一.1FROM子句
    FROM子句指定了Select语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或由INNERJOIN、LEFTJOIN或RIGHTJOIN得到的复合结果。如果表或查询存储在外部数据库,在IN子句之后指明其完整路径。
    例:下列SQL语句返回所有有定单的客户:
    SelectOrderID,Customer.customerID
    FROMOrdersCustomers
    WhereOrders.CustomerID=Customers.CustomeersID
    一.2ALL、DISTINCT、DISTINCTROW、TOP谓词
    (1)ALL返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。
    例:SelectALLFirstName,LastName
    FROMEmployees
    (2)DISTINCT如果有多个记录的选择字段的数据相同,只返回一个。
    (3)DISTINCTROW如果有重复的记录,只返回一个
    (4)TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用TOPNPERCENT子句(其中N表示百分比)
    例:返回5%定货额最大的定单
    SelectTOP5PERCENT*
    FROM[OrderDetails]
    ORDERBYUnitPrice*Quantity*(1-Discount)DESC
    一.3用AS子句为字段取别名
    如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。
    例:返回FirstName字段取别名为NickName
    SelectFirstNameASNickName,LastName,City
    FROMEmployees
    例:返回新的一列显示库存价值
    SelectProductName,UnitPrice,UnitsInStock,UnitPrice*UnitsInStockASvalueInStock
    FROMProducts
    二.Where子句指定查询条件
    二.1比较运算符
    比较运算符含义
    =等于
    >大于
    <小于
    >=大于等于
    <=小于等于
    <>不等于
    !>不大于
    !<不小于
    例:返回96年1月的定单
    SelectOrderID,CustomerID,OrderDate
    FROMOrders
    WhereOrderDate>#1/1/96#ANDOrderDate<#1/30/96#
    注意:
    McirosoftJETSQL中,日期用‘#'定界。日期也可以用Datevalue()函数来代替。在比较字符型的数据时,要加上单引号'',尾空格在比较中被忽略。
    例:
    WhereOrderDate>#96-1-1#
    也可以表示为:
    WhereOrderDate>Datevalue(‘1/1/96')
    使用NOT表达式求反。
    例:查看96年1月1日以后的定单
    WhereNotOrderDate<=#1/1/96#
    二.2范围(BETWEEN和NOTBETWEEN)
    BETWEEN…AND…运算符指定了要搜索的一个闭区间。
    例:返回96
    年1月到96年2月的定单。
    WhereOrderDateBetween#1/1/96#And#2/1/96#
    二.3列表(IN,NOTIN)
    IN运算符用来匹配列表中的任何一个值。IN子句可以代替用OR子句连接的一连串的条件。
    例:要找出住在London、Paris或Berlin的所有客户
    SelectCustomerID,CompanyName,ContactName,City
    FROMCustomers
    WhereCityIn(‘London','Paris','Berlin')
    二.4模式匹配(LIKE)
    LIKE运算符检验一个包含字符串数据的字段值是否匹配一指定模式。
    LIKE运算符里使用的通配符
    通配符含义
    ?任何一个单一的字符
    *任意长度的字符
    #0~9之间的单一数字
    [字符列表]在字符列表里的任一值
    [!字符列表]不在字符列表里的任一值
    -指定字符范围,两边的值分别为其上下限
    例:返回邮政编码在(171)555-0000到(171)555-9999之间的客户
    SelectCustomerID,CompanyName,City,Phone
    FROMCustomers
    WherePhoneLike‘(171)555-####'
    LIKE运算符的一些样式及含义
    样式含义不符合
    LIKE‘A*'A后跟任意长度的字符Bc,c255
    LIKE'5
    '5*5555
    LIKE'5?5'5与5之间有任意一个字符55,5wer5
    LIKE'5##5'5235,50055kd5,5346
    LIKE'[a-z]'a-z间的任意一个字符5,%
    LIKE'[!0-9]'非0-9间的任意一个字符0,1
    LIKE'[[]'1,*
    三.用ORDERBY子句排序结果
    ORDER子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL语句的最后。
    ORDER子句中定义了多个字段,则按照字段的先后顺序排序。
    例:
    SelectProductName,UnitPrice,UnitInStock
    FROMProducts
    ORDERBYUnitInStockDESC,UnitPriceDESC,ProductName
    ORDERBY子句中可以用字段在选择列表中的位置号代替字段名,可以混合字段名和位置号。
    例:下面的语句产生与上列相同的效果。
    SelectProductName,UnitPrice,UnitInStock
    FROMProducts
    ORDERBY1DESC,2DESC,3
    四.运用连接关系实现多表查询
    例:找出同一个城市中供应商和客户的名字
    SelectCustomers.CompanyName,Suppliers.ComPany.Name
    FROMCustomers,Suppliers
    WhereCustomers.City=Suppliers.City
    例:找出产品库存量大于同一种产品的定单的数量的产品和定单
    SelectProductName,OrderID,UnitInStock,Quantity
    FROMProducts,[OrderDeails]
    WhereProduct.productID=[OrderDetails].ProductID
    ANDUnitsInStock>Quantity
    另一种方法是用MicrosofJETSQL独有的JNNERJOIN
    语法:
    FROMtable1INNERJOINtable2
    ONtable1.field1comparisiontable2.field2
    其中comparision就是前面Where子句用到的比较运算符。
    SelectFirstName,lastName,OrderID,CustomerID,OrderDate
    FROMEmployees
    INNERJOINOrdersONEmployees.EmployeeID=Orders.EmployeeID
    注意:
    INNERJOIN不能连接MemoOLEObjectSingleDouble数据类型字段。
    在一个JOIN
    语句中连接多个ON子句
    语法:
    Selectfields
    FROMtable1INNERJOINtable2
    ONtable1.field1compoprtable2.field1AND
    ONtable1.field2compoprtable2.field2OR
    ONtable1.field3compoprtable2.field3
    也可以
    Selectfields
    FROMtable1INNERJOIN
    (table2INNERJOIN[(]table3
    [INNERJOER][(]tablex[INNERJOIN]
    ONtable1.field1compoprtable2.field1
    ONtable1.field2compoprtable2.field2
    ONtable1.field3compoprtable2.field3
    外部连接返回更多记录,在结果中保留不匹配的记录,不管存不存在满足条件的记录都要返回另一侧的所有记录。
    FROMtable[LEFT|RIGHT]JOINtable2
    ONtable1.field1comparisiontable.field2
    用左连接来建立外部连接,在表达式的左边的表会显示其所有的数据
    例:不管有没有定货量,返回所有商品
    SelectProductName,OrderID
    FROMProducts
    LEFTJOINOrdersONProducts.PrductsID=Orders.ProductID
    右连接与左连接的差别在于:不管左侧表里有没有匹配的记录,它都从左侧表中返回所有记录。
    例:如果想了解客户的信息,并统计各个地区的客户分布,这时可以用一个右连接,即使某个地区没有客户,也要返回客户信息。
    空值不会相互匹配,可以通过外连接才能测试被连接的某个表的字段是否有空值。
    Select*
    FROMtalbe1
    LEFTJOINtable2ONtable1.a=table2.c
    四.1连接查询中使用Iif函数实现以0值显示空值
    Iif表达式:Iif(IsNull(Amount,0,Amout)
    例:无论定货大于或小于¥50,都要返回一个标志。
    Iif([Amount]>50,?Bigorder?,?Smallorder?)
    五分组和总结查询结果
    在SQL的语法里,GROUPBY和HAVING子句用来对数据进行汇总。GROUPBY子句指明了按照哪几个字段来分组,而将记录分组后,用HAVING子句过滤这些记录。
    GROUPBY子句的语法
    Selectfidldlist
    FROMtable
    Wherecriteria
    [GROUPBYgroupfieldlist[HAVINGgroupcriteria]]
    注:MicrosoftJet数据库Jet不能对备注或OLE对象字段分组。
    GROUPBY字段中的Null值以备分组但是不能被省略。
    在任何SQL合计函数中不计算Null值。
    GROUPBY子句后最多可以带有十个字段,排序优先级按从左到右的顺序排列。
    例:在‘WA'地区的雇员表中按头衔分组后,找出具有同等头衔的雇员数目大于1人的所有头衔。
    SelectTitle,Count(Title)asTotal
    FROMEmployees
    WhereRegion=‘WA'
    GROUPBYTitle
    HAVINGCount(Title)>1
    JETSQL中的聚积函数
    聚集函数意义
    SUM()求和
    AVG()平均值
    COUNT()表达式中记录的数目
    COUNT(*)计算记录的数目
    MAX最大值
    MIN最小值
    var方差
    STDEV标准误差
    FIRST第一个值
    LAST最后一个值
    六用Parameters声明创建参数查询
    Parameters声明的语法:
    PARAMETERSnamedatatype[,namedatatype[,…]]
    其中name是参数的标志符,可以通过标
    志符引用参数.
    Datatype说明参数的数据类型.
    使用时要把PARAMETERS声明置于任何其他语句之前.
    例:
    PARAMETERS[Lowprice]Currency,[Beginningdate]datatime
    SelectOrderID,OrderAmount
    FROMOrders
    WhereOrderAMount>[lowprice]
    ANDOrderDate>=[Beginningdate]
    七功能查询
    所谓功能查询,实际上是一种操作查询,它可以对数据库进行快速高效的操作.它以选择查询为目的,挑选出符合条件的数据,再对数据进行批处理.功能查询包括更新查询,删除查询,添加查询,和生成表查询.
    七.1更新查询
    Update子句可以同时更改一个或多个表中的数据.它也可以同时更改多个字段的值.
    更新查询语法:
    Update表名
    SET新值
    Where准则
    例:英国客户的定货量增加5%,货运量增加3%
    UpdateOEDERS
    SETOrderAmount=OrderAmount*1.1
    ,Freight=Freight*1.03
    WhereShipCountry=‘UK'
    七.2删除查询
    Delete子句可以使用户删除大量的过时的或冗于的数据.
    注:删除查询的对象是整个记录.
    Delete子句的语法:
    Delete[表名.*]
    FROM来源表
    Where准则
    例:要删除所有94年前的定单
    Delete*
    FROMOrders
    WhereOrderData<#94-1-1#
    七.3追加查询
    Insert子句可以将一个或一组记录追加到一个或多个表的尾部.
    INTO子句指定接受新记录的表
    valueS关键字指定新记录所包含的数据值.
    Insert子句的语法:
    INSETRINTO目的表或查询(字段1,字段2,…)
    valueS(数值1,数值2,…)
    例:增加一个客户
    InsertINTOEmployees(FirstName,LastName,title)
    valueS(‘Harry','Washington','Trainee')
    七.4生成表查询
    可以一次性地把所有满足条件的记录拷贝到一张新表中.通常制作记录的备份或副本或作为报表的基础.
    SelectINTO子句用来创建生成表查询语法:
    Select字段1,字段2,…
    INTO新表[IN外部数据库]
    FROM来源数据库
    Where准则
    例:为定单制作一个存档备份
    Select*
    INTOOrdersArchive
    FROMOrders
    八联合查询
    UNION运算可以把多个查询的结果合并到一个结果集里显示.
    UNION运算的一般语法:
    [表]查询1UNION[ALL]查询2UNION…
    例:返回巴西所有供给商和客户的名字和城市
    SelectCompanyName,City
    FROMSuppliers
    WhereCountry=‘Brazil'
    UNION
    SelectCompanyName,City
    FROMCustomers
    WhereCountry=‘Brazil'
    注:
    缺省的情况下,UNION子句不返回重复的记录.如果想显示所有记录,可以加ALL选项
    UNION运算要求查询具有相同数目的字段.但是,字段数据类型不必相同.
    每一个查询参数中可以使用GROUPBY子句或HAVING子句进行分组.要想以指定的顺序来显示返回的数据,可以在最后一个查询的尾部使用OREERBY子句.
    九交*查询
    交*查询可以对数据进行总和,平均,计数或其他总和计算法的计算,这些数据通过两种信息进
    行分组:一个显示在表的左部,另一个显示在表的顶部.
    MicrosoftJetSQL用TRANSFROM语句创建交*表查询语法:
    TRANSFORMaggfunction
    Select语句
    GROUPBY子句
    PIVOTpivotfield[IN(value1[,value2[,…]])]
    Aggfounction指SQL聚积函数,
    Select语句选择作为标题的的字段,
    GROUPBY分组
    说明:
    Pivotfield在查询结果集中创建列标题时用的字段或表达式,用可选的IN子句限制它的取值.
    value代表创建列标题的固定值.
    例:显示在1996年里每一季度每一位员工所接的定单的数目:
    TRANSFORMCount(OrderID)
    SelectFirstName&;''&;LastNameASFullName
    FROMEmployeesINNERJOINOrders
    ONEmployees.EmployeeID=Orders.EmployeeID
    WhereDatePart(“yyyy”,OrderDate)=‘1996'
    GROUPBYFirstName&;''&;LastName
    ORDERBYFirstName&;''&;LastName
    POVOTDatePart(“q”,OrderDate)&;'季度'
    十.子查询
    子查询可以理解为套查询.子查询是一个Select语句.
    十.1表达式的值与子查询返回的单一值做比较
    语法:
    表达式comparision[ANY|ALL|SOME](子查询)
    说明:
    ANY和SOME谓词是同义词,与比较运算符(=,<,>,<>,<=,>=)一起使用.返回一个布尔值True或False.ANY的意思是,表达式与子查询返回的一系列的值逐一比较,只要其中的一次比较产生True结果,ANY测试的返回True值(既Where子句的结果),对应于该表达式的当前记录将进入主查询的结果中.ALL测试则要求表达式与子查询返回的一系列的值的比较都产生True结果,才回返回True值.
    例:主查询返回单价比任何一个折扣大于等于25%的产品的单价要高的所有产品
    Select*FROMProducts
    WhereUnitPrice>ANY
    (SelectUnitPriceFROM[OrderDetails]WhereDiscount>0.25)
    十.2检查表达式的值是否匹配子查询返回的一组值的某个值
    语法:
    [NOT]IN(子查询)
    例:返回库存价值大于等于1000的产品.
    SelectProductNameFROMProducts
    WhereProductIDIN
    (SelectPrdoctIDFROM[OrderDEtails]
    WhereUnitPrice*Quantity>=1000)
    十.2检测子查询是否返回任何记录
    语法:
    [NOT]EXISTS(子查询)
    例:用EXISTS检索英国的客户
    SelectComPanyName,ContactName
    FROMOrders
    WhereEXISTS
    (Select*
    FROMCustomers
    WhereCountry=‘UK'AND
    Customers.CustomerID=Orders.CustomerID)
    VBSQL命令全
    A
    Abs求绝对值
    ActiveControl得到焦点的对象
    ActiveForm得到焦点的表单
    Array指定数组
    App得知程序信息
    AppActivate激活执行中的应用程序
    Asc求字符的内码
    AscB求字符的ASCII
    AscW求字符的UniCode
    Atn求Tan-1
    B
    Beep发出预设的警示声
    C
    Call调用子程序
    Calendar选择月历
    Choose取出一列值的某个值
    CBool数值转成布尔数
    CByte数值转成位元格式
    CCur数值转成货币格式
    CDate数据转成时间
    CDbl数值转成双精度浮点数
    CDec数据转成十进数
    ChDir改
    变目前路径缓充的路径
    ChDrive改变目前磁盘缓充的磁盘
    Chr由内码求得一字符
    ChrB由ASCII求得一字符
    ChrW由UniCode求得一字符
    CInt数据转成Integer
    CLng数据转成Long
    Command读出程序的参数
    Const定义常数
    CosCOSCSng数值转成单精度浮点数
    CurDir得知目前路径缓充的路径
    CVar数值转成可变变量
    D
    Date得到目前电脑的时间
    Date$得到目前电脑时间字符串
    DateAdd日期加法得日期
    DateDiff日期相减得数值
    DatePart日期部份资讯
    DateSerial字符串转日期
    DateValue数字转日期
    Day得知日期变量内是几号
    DDB折旧的计算
    DeleteSetting删除系统登录内的数据
    Dir得知目前路径内的文件名
    DoEvents闲置函数
    E
    End结束程序
    Environ取得环境变量的数据
    EOF某个文件缓冲的指标是否到档尾
    Erase重新初始化数组
    Err错误资讯Error错误代码信息
    Exp得到自然对数
    F
    Fix去除小数
    FileCopyTo复制文件
    FileAttr文件开启模式
    FileDateTime文件存档日期
    FileLen文件长度
    Filter筛选数组
    Format数据格式化输出
    FreeFile空的文件编号
    FV求得定期、定额支付且固定利率下之年金的值
    G
    GetAllSetting得到所有系统登录的资讯
    GetAttr得知文件属性
    GetSetting得到系统登录的资讯
    H
    Hex将数值转成16进数表示的字符串
    Hour得知日期变量内是几时
    I
    If.Then.Else判断结构
    IMEStatus得知IME输入法状态
    InStr寻找字符串里的字符串InStrB寻找字符串里的ASCII
    IntStrRev由字符串右边开始寻找字符串里的字符串
    Int取整数
    J
    Join将数组数据加入分隔字符后组合成一新字符串
    K
    Kill删除文件
    L
    LBound得知数组最小起始范围
    LCase字符串转小写
    Left截取字符串左边几个字
    Len得知字符串的字数
    LenB得知变量占用记忆体几个Byte
    LoadPicture载入图形
    Log求对数值LSet字符串向左对齐
    LTrim移除字符串最左边的空白字符
    M
    Mid截取字符串里某些字符串
    Minute得知日期变量内是几分
    MkDir建立新的数据颊
    Month得知日期变量内是第几月
    N
    NameAs更改文件名
    Now得知目前点脑的日期与时间
    OOct字符转成八进制的字符串
    OptionVB内部一些选项设定
    P
    PopupMenu跳出菜单
    Print列印数据
    Q
    QBColor设定颜色(16色)
    R
    Randomize随机数初始化声明
    Replace取代字符串中某些字符串VB6提供
    RGB设定颜色(255*255*255色)
    RmDir移除数据颊
    Rnd得到一个随机数
    RSet字符串向右对齐
    RTrim去除字符串最右边的空白字符
    S
    SavePicture储存图形
    Screen得知屏幕简易资讯
    Second得知日期变量内是几秒
    SetAttr设定文件属性
    Sgn得知是整数还是负数v
    Shel
    l执行外部程序
    Sin得知SinSpace填入数个空白字符
    Split以某字符串将字符串拆解成数组VB6提供
    Sqr求平方根
    Str数值转字符串
    StrComp比较字符串
    StrConv改变字符串型态
    String设定一个重覆的字符串
    StrReverse字符串反转VB6提供
    T
    Tab列印n个制表符
    Tan得知Tan
    Time得知、设定电脑时间
    Time$得知、设定时间字符串
    Timer得知今天电脑总秒数
    TimeSerial字符串转时间
    TimeValue数字转时间
    Trim去除字符串首尾的空白字符
    TypeName得知变量类别的名称
    U
    UBound得知数组的最值
    UCase字符串转大写
    V
    Val将字符串转成数字
    VarType得知变量的类型
    W
    WeekDay得知日期变量内是星期几
    WeekdayName将WeekDay传回值改成文字显示VB6提供
    Y
    Year得知日期变量内是几年
    SQLcode--语句功能
    --数据操作
    SELECT--从数据库表中检索数据行和列
    INSERT--向数据库表添加新数据行
    DELETE--从数据库表中删除数据行
    UPDATE--更新数据库表中的数据
    --数据定义
    CREATETABLE--创建一个数据库表
    DROPTABLE--从数据库中删除表
    ALTERTABLE--修改数据库表结构
    CREATEVIEW--创建一个视图
    DROPVIEW--从数据库中删除视图
    CREATEINDEX--为数据库表创建一个索引
    DROPINDEX--从数据库中删除索引
    CREATEPROCEDURE--创建一个存储过程
    DROPPROCEDURE--从数据库中删除存储过程
    CREATETRIGGER--创建一个触发器
    DROPTRIGGER--从数据库中删除触发器
    CREATESCHEMA--向数据库添加一个新模式
    DROPSCHEMA--从数据库中删除一个模式
    CREATEDOMAIN--创建一个数据值域
    ALTERDOMAIN--改变域定义
    DROPDOMAIN--从数据库中删除一个域
    --数据控制
    GRANT--授予用户访问权限
    DENY--拒绝用户访问
    REVOKE--解除用户访问权限
    --事务控制
    COMMIT--结束当前事务
    ROLLBACK--中止当前事务
    SETTRANSACTION--定义当前事务数据访问特征
    --程序化SQL
    DECLARE--为查询设定游标
    EXPLAN--为查询描述数据访问计划
    OPEN--检索查询结果打开一个游标
    FETCH--检索一行查询结果
    CLOSE--关闭游标
    PREPARE--为动态执行准备SQL语句
    EXECUTE--动态地执行SQL语句
    DESCRIBE--描述准备好的查询
    ---局部变量
    declare@idchar(10)
    --set@id='10010001'
    select@id='10010001'
    ---全局变量
    ---必须以@@开头
    --IFELSE
    declare@xint@yint@zint
    select@x=1@y=2@z=3
    if@x>@y
    print'x>y'--打印字符串'x>y'
    elseif@y>@z
    print'y>z'
    elseprint'z>y'
    --CASE
    usepangu
    updateemployee
    sete_wage=
    case
    whenjob_level=’1’thene_wage*1.08
    whenjob_level=’2’thene_wage*1.07
    whenjob_level=’3’thene_wage*1.06
    elsee_wage*1.05
    end
    --WHILECONTINUEBREAK
    declare@xint@yint@cint
    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语句
    waitfordelay’01:02:03’
    select*fromemployee
    --例等到晚上11点零8分后才执行SELECT语句
    waitfortime’23:08:00’
    select*fromemployee
    ***SELECT***
    select*(列名)fromtable_name(表名)wherecolumn_nameoperatorvalue
    ex:(宿主)
    select*fromstock_informationwherestockid=str(nid)
    stockname='str_name'
    stocknamelike'%findthis%'
    stocknamelike'[a-zA-Z]%'---------([]指定值的范围)
    stocknamelike'[^F-M]%'---------(^排除指定范围)
    ---------只能在使用like关键字的where子句中使用通配符)
    orstockpath='stock_path'
    orstocknumber<1000
    andstockindex=24
    notstocksex='man'
    stocknumberbetween20and100
    stocknumberin(10,20,30)
    orderbystockiddesc(asc)---------排序,desc-降序,asc-升序
    orderby1,2---------by列号
    stockname=(selectstocknamefromstock_informationwherestockid=4)
    ---------子查询
    ---------除非能确保内层select只返回一个行的值,
    ---------否则应在外层where子句中用一个in限定符
    selectdistinctcolumn_nameformtable_name---------distinct指定检索独有的列值,不重复
    selectstocknumber,"stocknumber+10"=stocknumber+10fromtable_name
    selectstockname,"stocknumber"=count(*)fromtable_namegroupbystockname
    ---------groupby将表按行分组,指定列中有相同的值
    havingcount(*)=2---------having选定指定的组
    select*
    fromtable1,table2
    wheretable1.id*=table2.id--------左外部连接,table1中有的而table2中没有得以null表示
    table1.id=*table2.id--------右外部连接
    selectstocknamefromtable1
    union[all]-----union合并查询结果集,all-保留重复行
    selectstocknamefromtable2
    ***insert***
    insertintotable_name(Stock_name,Stock_number)value("xxx","xxxx")
    value(selectStockname,StocknumberfromStock_table2)---value为select语句
    ***update***
    updatetable_namesetStockname="xxx"[whereStockid=3]
    Stockname=default
    Stockname=null
    Stocknumber=Stockname+4
    ***delete***
    deletefromtable_namewhereStockid=3
    truncatetable_name-----------删除表中所有行,仍保持表的完整性
    droptabletable_name---------------完全删除表
    ***altertable***---修改数据库表结构
    altertabledatabase.owner.table_nameaddcolumn_namechar(2)null.....
    sp_helptable_name----显示表已有特征
    createtabletable_name(namechar(20),agesmallint,lnamevarchar(30))
    insertintotable_nameselect.........-----实现删除列的方法(创建新表)
    altertabletable_namedropconstraintStockname_default----删除Stockname的default约束
    ***function(/*常用函数*/)***
    ----统计函数----
    AVG--求平均值
    COUNT--统计数目
    MAX--求最大值
    MIN--求最小值
    SUM--求和
    --AVG
    usepangu
    selectavg(e_wage)asdept_avgWage
    fromemployee
    groupbydept_id
    --MAX
    --求工资最高的员工
    usepangu
    selecte_name
    fromemployee
    wheree_wage=
    (selectmax(e_wage)
    fromemployee)
    --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()--函数返回被特定字符括起来的字符串
    /*selectquotename('abc','{')quotename('abc')
    运行结果如下
    ----------------------------------{
    {abc}[abc]*/
    REPLICATE()--函数返回一个重复character_expression指定次数的字符串
    /*selectreplicate('abc',3)replicate('abc',-2)
    运行结果如下
    ----------------------
    abcabcabcNULL*/
    REVERSE()--函数将指定的字符串的字符排列顺序颠倒
    REPLACE()--函数返回被替换了指定子串的字符串
    /*selectreplace('abc123g','123','def')
    运行结果如下
    ----------------------
    abcdefg*/
    SPACE()--函数返回一个有指定长度的空白字符串
    STUFF()--函数用另一子串替换字符串指定位置长度的子串
    ----数据类型转换函数----
    CAST()函数语法如下
    CAST()(AS[length])
    CONVERT()函数语法如下
    CONVERT()([length],[,style])
    selectcast(100+99aschar)convert(varchar(12),getdate())
    运行结果如下
    ------------------------------------------
    199Jan152000
    ----日期函数----
    DAY()--函数返回date_expression中的日期值
    MONTH()--函数返回date_expression中的月份值
    YEAR()--函数返回date_expression中的年份值
    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([,seedincrement])[AScolumn_name])
    --IDENTITY()函数只在SELECTINTO语句中使用用于插入一个identitycolumn列到新表中
    /*selectidentity(int,1,1)ascolumn_name
    intonewtable
    fromoldtable*/
    ISDATE()--函数判断所给定的表达式是否为合理日期
    ISNULL(,)--函数将表达式中的NULL值用指定值替换
    ISNUMERIC()--函数判断所给定的表达式是否为合理的数值
    NEWID()--函数返回一个UNIQUEIDENTIFIER类型的数值
    NULLIF(,)
    --NULLIF函数在expression1与expression2相等时返回NULL值若不相等时则返回expression1的值
    --------------------------------------------------------------------------------
    sql中的保留字
    actionaddaggregateall
    alterafterandas
    ascavgavg_row_lengthauto_increment
    betweenbigintbitbinary
    blobboolbothby
    cascadecasecharcharacter
    changecheckchecksumcolumn
    columnscommentconstraintcreate
    crosscurrent_datecurrent_timecurrent_timestamp
    datadatabasedatabasesdate
    datetimedayday_hourday_minute
    day_seconddayofmonthdayofweekdayofyear
    decdecimaldefaultdelayed
    delay_key_writedeletedescdescribe
    distinctdistinctrowdoubledrop
    endelseescapeescaped
    enclosedenumexplainexists
    fieldsfilefirstfloat
    float4float8flushforeign
    fromforfullfunction
    globalgrantgrantsgroup
    havingheaphigh_priorityhour
    hour_minutehour_secondhostsidentified
    ignoreinindexinfile
    innerinsertinsert_idint
    integerintervalint1int2
    int3int4int8into
    ifisisamjoin
    keykeyskilllast_insert_id
    leadingleftlengthlike
    lineslimitloadlocal
    locklogslonglongblob
    longtextlow_prioritymaxmax_rows
    matchmediumblobmediumtextmediumint
    middleintmin_rowsminuteminute_second
    modifymonthmonthnamemyisam
    naturalnumericnonot
    nullonoptimizeoption
    optionallyororderouter
    outfilepack_keyspartialpassword
    precisionprimaryprocedureprocess
    processlistprivilegesreadreal
    referencesreloadregexprename
    replacerestrictreturnsrevoke
    rlikerowrowssecond
    selectsetshowshutdown
    smallintsonamesql_big_tablessql_big_selects
    sql_low_priority_updatessql_log_offsql_log_updatesql_select_limit
    sql_small_resultsql_big_resultsql_warningsstraight_join
    startingstatusstringtable
    tablestemporaryterminatedtext
    thentimetimestamptinyblob
    tinytexttinyinttrailingto
    typeuseusingunique
    unlockunsignedupdateusage
    valuesvarcharvariablesvarying
    varbinarywithwritewhen
    whereyearyear_monthzerofill
    
  • 上一篇资讯: sql手写作业2
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师