zoukankan      html  css  js  c++  java
  • SQL常用语句总结

     

      


    1: SQL Select 语句

    distinct: 关键字是查询字段不同的结果集 . select distinct LanType,SongName from TableSong

      distinct 作用于后面跟接的字段,并非只作用于第一个字段。
      eg: 当想要查询LanType 不同的结果集,同时需要Songname 字段时怎么写 ???

    limit : select distinct LanType,SongName from TableSong limit 5 返回结果集前5行
    limit - offset : select * from TableSong limit 4 offset 5 limit4: 输出4行结果 offset:(从第6行处开始输出)
    order by : 必须保证order by 是select 语句的最后一个子语句(否则报错)
       order by 可以跟接多字段排序
      desc (倒叙排列)
      asc (升序排列 默认效果)
      desc,asc 只作用于位于他前面的列,如果想作用于多列可写
      select * from TableSong order by SongName desc ,SongIndex desc
    where: SQL 过滤 应当在服务端进行过滤,在应用端过滤,需要服务端发送所有数据,导致网络宽带浪费   = :等于   <> : 不等于   = : 不等于
      < :小于
      <= :小于等于
      > : 大于
      >= : 大于等于
      !> : 不大于
      between and :指定两个值之间(包含这俩值)
      is null: 为null 值
      where songName= ‘songname’ 需要单引号包裹

    And :
      操作符 跟where 语句附近条件
      eg: select * from TableSong where SongIndex between 10005 and 10010 and SubFileType=4

    Or :
      操作符: 满足其一条件即可
     eg: 查询SongIndex >10010的 Lantype =4 或Lantype=20 的数据

    And or 连用:

       select * from TableSong where LanType=4 or LanType=20 and SongIndex >10010
      上面该语句查询的结果是 select * from TableSong where LanType=4 or ( LanType=20 and SongIndex >10010 )
      原因是: and 在求集 过程中优先级 高
      select * from TableSong where (LanType=4 or LanType=20) and SongIndex >10010


    in :操作符合
      eg: select * from TableSong where LanType in(3,20)
      在有很多合法选项时,IN操作符的语法更清楚,更直观。
      在与其他AND和OR操作符组合使用IN时,求值顺序更容易管理。
      IN操作符一般比一组OR操作符执行得更快
      IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。
      eg: select * from TableSong where LanType in(select distinct LanType from TableSongSinger )


    not:
      eg: select * from TableSong where NOT LanType=4
      not用来否定(排除)后面的判断条件
      eg: not in
      select * from TableSong where LanType not in(select distinct LanType from TableSongSinger )

    like 通配符:

       eg: select * from TableSong where SongName like '%a%'
       % : 在搜索串中,%表示任何字符出现任意次数
       _(下划线): 在搜索串中, _ 表示任何字符出现一次
       [] : 方括号([])通配符用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符
       eg: where cust_contact like '[jm]%' cust_contact 以 j或m开头
       [^ ] 用来否定:

    字段拼接 :

      Access和SQL Server使用 + 号
      DB2、Oracle、PostgreSQL、SQLite和OpenOffice Base使用||
      eg: select SongName||SongIndex as Address from TableSong (将SongName,SongIndex拼接在一起,组成新的字段Address)


    TRIM 函数:

      大多数DBMS都支持RTRIM()(正如刚才所见,它去掉字符串右边的空格)、LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)。
      select SongName||'( ' || trim(SongIndex) || ' )' as address from TableSong

    操作符 + - * /:

    eg: select SubFileType,LanType ,SubFileType*LanType as num from TableSong

    函数使用:

      upper() : 转换值为大写 eg: select upper(SongName) from TableSong
      left() : (或使用子字符串函数) 返回字符串左边的字符
      LENGTH(): (也使用DATALENGTH()或LEN()) 返回字符串的长度
      LOWER():(Access使用LCASE()) 将字符串转换为小写
      LTRIM() :去掉字符串左边的空格
      RIGHT(): (或使用子字符串函数) 返回字符串右边的字符
      RTRIM() 去掉字符串右边的空格
      SOUNDEX() 返回字符串的SOUNDEX值
      UPPER()(Access使用UCASE()) 将字符串转换为大写
      ABS() 返回一个数的绝对值
      COS() 返回一个角度的余弦
       EXP() 返回一个数的指数值
      PI() 返回圆周率
      SIN() 返回一个角度的正弦
      SQRT() 返回一个数的平方根
      TAN() 返回一个角度的正切

    聚集函数:

      avg(LanType): 返回某一列的平均值
      count() : 返回行数
       select count(*) from TableSong where SongIndex>11000
       max(): 返回某一列的最大值,需要指定列名
      min():
      sum():返回指定列的总和

    group by:

      分组
      eg: select count(*) as num, LanType from TableSong group by LanType
      having(): 用来过滤分组
      eg: select count(*) as num, LanType from TableSong group by LanType having count(*)>4



    联结:

    自联结:
      eg:
       select c1.SongIndex, c1.LanType,c1.SongName
      from TableSong as c1,TableSong as c2
      where (c1.LanType=c2.LanType) and c2.[SongName]='Okean'

    组合查询:

      UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔
      UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过,各个列不需要以相同的次序列出)。
      列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含转换的类型、


    2:SQL Insert 语句

    插入完整的行数据:

      eg: insert into HotSong values('2','2','2')
      该insert 语句很简单,但是数据插入依赖表中字段的次序。

      insert into HotSong (SongIndex,Score,Hots) values('4','6','8')
      将表中字段明确给出,values和其对应即可。


       insert into HotSong (SongIndex,Score,Hots) values('4','6','8')
      eg: 如果列定义为允许NULL值(无值或空值)
      在表定义中给出默认值。这表示如果不给出值,将使用默认值可以省略行

    insert select:

      INSERT一般用来给表插入具有指定列值的行。
      INSERT还存在另一种形式,可以利用它将SELECT语句的结果插入表中,
      这就是所谓的INSERT SELECT。顾名思义,它是由一条INSERT语句和一条SELECT语句组成的。
      eg: insert into TableSong(LanType) select LanType from TableSong where SongIndex=1558

    3:SQL delete 语句

      delete from tableName where
      如果想从表中删除所有行,不要使用DELETE。可使用TRUNCATE TABLE语句,它完成相同的工作,而速度更快


    4 SQL create

    create Table testTable (
    name char(10) not null,
    sex char(10) not null,
    age char(10) not null
    );

      create Table if not exists testTable2 (
      id integer primary key autoincrement,
      name char(10) not null,
      sex char(10) not null,
      age char(10) not null
       );

    删除表(不是删除表数据):

      DROP TABLE testTable;

    创建view:

      create view TestTable1 as
      select TableSinger.[SingerIndex],TableSong.[SingerName],TableSong.SongName
      from TableSong left join TableSinger
      on TableSinger.[SingerName]=TableSong.SingerName

  • 相关阅读:
    c# Chart 服务器端动态创建ChartArea
    解决 ASP.NET Chart 控件出错 为 ChartImg.axd 执行子请求时出错
    C# Chart控件,chart、Series、ChartArea曲线图绘制的重要属性
    JSON和JS对象之间的互转
    MAC OS下使用OpenSSL生成私钥和公钥的方法
    iOS 牛人技术博客分享
    iOS开发之头像裁剪
    iOS开发之使用CALayer封装下载进度条
    iOS开发之使用UIimage+ImageEffects实现图片模糊效果
    我的第一个开源项目(Auditory)
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/8686884.html
Copyright © 2011-2022 走看看