zoukankan      html  css  js  c++  java
  • select语句

    create database 石高峰

    go

    use 石高峰

    go

    create table fruit

    (

    xuliehao int primary key,

    name varchar(20) not null,

    jiage float,

    [type] varchar(20)

    )

    go

    insert into fruit values('1','红富士','578','苹果')

    insert into fruit values('2','高清西瓜','265','西瓜')

    insert into fruit values('3','红提','957','提子')

    insert into fruit values('4','黄蕉','386','香蕉')

    insert into fruit values('5','硬梨','186','梨')

    insert into fruit values('6','鸭梨','586','梨')

    insert into fruit values('7','酸果','359','苹果')

    insert into fruit values('8','青提','789','提子')

    insert into fruit values('9','火龙果','965','火果')

    insert into fruit values('10','酸枣','329','枣类')

    select *from fruit--*代表全部,显示fruit表里全部信息

    选中上面 执行 即出结果

                           

    将列名 显示成中文的三种写法:

    投影

    Select  列名   from   表名  where   列名   关系表达式  值

    上边显示符合某一条件的列 ,称为投影

    投影破坏了实体完整性,不能完整描述一个对象,所以失去了意义。

    筛选

    Select   *   from   表名   where   列名   关系表达式   值

    上边的格式显示符合某一条件的行,称为筛选

    例:

    去重

    Select  distinct 列名from 表名 去除这一列的重复值

    模糊查询

    Select  *  from  表名  where 列名 like‘’

    通配符   % 任意多个字符

      一个下划线代表一个任意字符

    [4,6,7]中括号代表选里面的值其一

    例:’  [3,5]%’可以代替’  3%’or’  5%’

    排序

    Select * from表名 order by 列名 asc(升序)或desc(降序)

    (可以写多个依据条件,用逗号分开,排序前面还可以加where筛选)

    Select  top 3 * from 表名 order by 列名 asc  升序选前三条

    统计

    Select  count(*)from 表名  表里有多少条信息,后可加筛选

    Select  AVG(列名)from 表名  查表中此列的平均值,括号内可为运算式,后可加条件

    同理有最大值max 最小值min和sum

    求平均值时的区别

    Select *,(单价列名*重量列名)as新添加列名  from表名   显示添加新列

    分组

    Select 列名 from 表名 [where筛选]  group by列名 [having筛选]  [排序]

    中括号代表可以有可以没有,显示二选一: 列名 or 列名,统计

    显示的列名必须与分组依据的列名相同

    Having筛选是对分组后的结果进行筛选,不能单独用,只能在group by后

    连接查询(横扩展)

    土方法:(依据为空值时容易丢数据)(筛选条件和连接条件混杂)

    Select * from表名1,表名2… where 表名1.列名=表名2.列名…

    表1 和表2 的列名不同时可以不用写 表名的

    *可以为 表名.列名,…表名.列名as新列名(改列名)

    SQL国际标准化方法:(不容易丢数据)(条件清晰)

    Select *  from表名1

    Join  表名2  on 连接条件

    Join  表名3  on  连接条件

    ……

    Where  筛选条件

     连接

    内连接

    Join前不加任何条件,有对应的显示,无对应不显(丢数据)

     外连接

    全连接

    Join前加Full

    左表右表内容全显,无对应值为空(行增加很多)

    左连接

    Join前加Left

    左表全显,右表中无对应值为空(行增加)

    右连接

    Join前加Right

    右表全显,左表中无对应值为空(行增加)

    Join会产生 笛卡尔积,影响性能,数据大时有可能系统瘫痪,所以join一般不用,如果需要用,一般别超过6个表,每个表别超过5000条记录。

    联合(纵向扩展)

    Union语句

    一个表中:

    Select * from 表名where 条件

    Union

    Select *from 表名where 条件

    两个表:

    Select * from 表1

    Union

    Select * from表2

    *可以是列名……

    子查询

    嵌套查询

    Select * from表1  where 列名=

    Select 列名 from 表2 where 条件

    如果()内的值不是惟一的,等号换成in

    子查询分相关子查询和无关子查询

    无关子查询:内层查询时与外层无关联,可以单独执行语句

    相关子查询:里层查询时单独无法执行,必须内外同时进行

    Exists 经常用在相关子查询(拿内层的条件到外层去筛选一下)

    子查询不光可以在where处用,还可以在select与from之间用

    Select …(select  列名 from 表名 后可加条件语句等)…from 表名…

    子查询应用:

    分页查询(查指定页数数据):

    外层(每页多少条)内层(要找第几页)

    例:取第三页的前三行(每页五行)

    取总页数:

  • 相关阅读:
    Oracle Golden Gate
    DNS
    RMAN 管理
    黄伟-RAC生产库现场调整本分策略实战
    Linux下RAID技术
    OCP之黄伟 2
    About NULL Value
    OCP之黄伟
    Table
    Perl的简单变量
  • 原文地址:https://www.cnblogs.com/wanwuguizong/p/3977504.html
Copyright © 2011-2022 走看看