zoukankan      html  css  js  c++  java
  • 【T_SQL】 基础 续


    五、通配符      

        通配符 解释 示例 
        '_'一个字符 A Like 'C_' 
        % 任意长度的字符串 B Like 'CO_%' 
        [ ] 括号中所指定范围内的一个字符 C Like '9W0[1-2]' 

        [^] 不在括号中所指定范围内的一个字符 D Like '%[A-D][^1-2]' 


    六、插入数据 

    INSERT 表名(列名)  VALUES   (插入的列值) 
    insert  stuinfo(stuname,stuno,stuage,stuid,stuaddress) 
    values('张三',001,20,100,'hello') 

    1、注意事项 

            A、每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将
    按照整行的完整性的要求来检验。  
            B、每个数据值的数据类型、精度和小数位数必须与相应的列匹配。 
            C、不能为标识列指定值,因为它的数字是自动增长的。 
            D、如果在设计表的时候就指定了某列不允许为空,则必须插入数据。 
            E、插入的数据项,要求符合检查约束的要求。 
            F、具有缺省值的列,可以使用 DEFAULT(缺省)关键字来代替插入的数值。 

    2、插入多行数据 

    (1)对象表存在 
    INSERT INTO <表名>(列名)   
    SELECT <列名>  FROM <源表名>   
    INSERT INTO stuinfobak (stuname,stuno,stuage) 
        SELECT stuname,stuno,stuage FROM stuinfo  
    (Stuinfobak 表必须在数据库中存在) 


    (2)对象表不存在 
    SELECT (列名)  INTO <表名>  FROM <源表名>             
        SELECT stuname,stuno,stuage  INTO stuinfobak1  FROM stuinfo 
    (Stuinfobak1 表必须在数据库中不存在) 


    (3)插入新的标识列 
    IDENTITY(数据类型,标识种子,标识增量) 
    SELECT IDENTITY(数据类型,标识种子,标识增长量) AS 列名 
    INTO 新表 FROM 原始表 
    SELECT Students,SName,Students,SAddress,Students,SEmail, 
    IDENTITY(int,1,1) As StudentID  
    INTO TongXunLuEX FROM Students 


    (4)插入多行内容 
    INSERT INTO <表名>(列名) 
    SELECT 列内容 UNION 
    SELECT 列内容 UNION 


    七、更新数据行 

    UPDATE <表名> SET <列名 = 更新值>  
    [WHERE <更新条件>] 
    UPDATE Students  
    SET SAddress ='某社区 22#楼 4 单元 45 号'  
    WHERE SAddress = '某社区 22#楼 4 单元 45 号' 
    UPDATE Scores 
    SET Scores = Scores + 5 
    WHERE Scores <= 95 


    八、删除数据行 

    1、删除指定的行 

    DELETE  FROM <表名> [WHERE <删除条件>] 

    注意:DELETE  FROM 不会只删单个字段,要删就是整行 


    2、删除所有记录 

    TRUNCATE  TABLE <表名> 
    其实,我通常也用  
    DELETE Table<>

    注意:不能用于有外键约束引用的表。删除后,表的结构、列、约束、索引不变。 


    九、查询 

    SELECT <列名>  
    FROM <表名>  
    [WHERE <查询条件表达式>]  
    [ORDER BY <排序的列名>[ASC(升)或 DESC(降)] ]  --默认为升序 

     1、查询全部的行和列 
    SELECT * FROM Students  

     2、查询部分行 
    SELECT <列名> 
    FROM <表名> 
    WHERE <查询条件表达式> 

     3、自定义命名查询结果中的列名 
    (1)使用 AS 来命名列  
    SELECT 原表中列名 AS 查询结果中显示的列名 
    FROM <表名> 
    WHERE <查询条件表达式> 
    SELECT Stuno AS 学员编号,StuName AS 学员姓名,StuAddress AS 学员地址 
    FROM stuinfo 
    WHERE  SAddress  like  '地址不详' 


    (2)合并两列数据,以规定格式输出查询结果 
    SELECT  原表中列名+ '.' +原表中列名  AS  查询结果中显示的列名 
    FROM  表名 


    (3)使用“=”来命名列

    SELECT 查询结果中显示的列名 = 原表中列名 
    FROM <表名> 
    WHERE <查询条件表达式> 
    SELECT  查询结果中显示的列名 = 原表中列名+ '.' +原表中列名 
    FROM  表名 


    (4)查询某几列为空的行 
    SELECT 列名 A  
    FROM 表名  
    WHERE 条件列名 B  IS NULL 
        显示结果:B 列为空的 A 列内容。 

    (5)显示结果中加入常量列 
    SELECT 列 A = SName,列 B = SAddress,'常量列内容'AS 常量列名称 
    FROM  Students 
    SELECT 姓名=SName,地址= SAddress,'72 中' AS 学校名称 
    FROM  Students 

    (6)限制查询结果输出的行数 
    SELECT TOP 5 列名 
    FROM 表名  
    WHERE 条件 
    --显示结果:符合条件的前五行。 


    (7)返回百分之多少行 
    SELECT TOP 20 PERCENT 列名 
    FROM 表名  
    WHERE 条件 
    显示结果:符合条件的行数的前 20%行。

     
    (8)升序排列(默认)ASC 
    SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩 
    FROM Score 
    WHERE (Score*0.9+5)>60 
    ORDER BY Score 


    (9)降序排列 DESC 
    SELECT  Au_Lname +'.' +Au_fName  AS  EMP  
    From 表 A Union 
    SELECT  fName +'.'+ LName  AS  EMP  
    From  表 B 
    ORDER  BY  EMP  DESC 
    显示结果:混合查找两张表中的列,并按格式输出到新列中,并按新列排序输出。 


    (10)按多列排序 

    SELECT  StudentID As 学员编号, Score As 成绩 
    FROM  表名 
    WHERE  Score>60 
    ORDER BY Score,studentID 

     显示结果:先按 Score 排序,再按 studentID 排序。 


    摘自http://vdisk.weibo.com/s/d0C3jikrGIj1N

  • 相关阅读:
    MySQL 5.6 Windows 安装 配置 试用
    abp Could not cast or convert from System.Int64 to System.Collections 对不起,在处理你的请求期间,产生了一个服务器内部错误!
    using Volo.Abp.Application.Services;中 没有IAsyncCrudAppService 方法
    ComponentModel.DataAnnotations.Schema 找不到
    VS2017--无法启动程序dotnet.exe ........web 502
    Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
    重绘 提示 DockedBarControl Dev控件
    GetHtml
    C# 相似对象赋值 通过table 互转 另辟蹊径 垃圾简单代码
    数据库 无表 获取时间列表
  • 原文地址:https://www.cnblogs.com/DoubleEggs/p/5747147.html
Copyright © 2011-2022 走看看