• SQL常见语句学习


    应付一下面试应该靠这些够了

    参考书 SQL必知必会

    1.数据选择

    select:

    select keyid from table     选择某一列

    select * from table  选择所有列

    select keyid1,keyid2,..from table  选择几列

    2.排序

    select+order by keyid,

    3.过滤

    select +where  (注意order by 放在where语句之后)

    where子句的操作符 = (相等) <> !=(不等,要根据不同的DBMS来选择,具体使用的时候要查一下)  < ,<=, >, >=(小于,小于等于,大于,大于等于) !<,!>(不小于,不大于) BETWEEN   IS NULL

    例如:

    select keyid from table  where keyid1 between ** and ** 或者是 where keyid =null

    4.高级数据过滤:

    where+and 和or in 以及not

    where not keyid =**; where key id in (**,**)

    通配符过滤:like+ % (匹配多个字符) _(匹配一个) []指定一个子字符集必须匹配指定位置

    5.计算字段拼接:

    + 或者|| 或者concat

    例如:

    select vend_name + '(' +vend_country+')' from Vendors ordered by vend_name;//+可以改成||效果一样

    mysql或者MariaDb需要使用如下:

    select Concat(vend_name,'(',vend_country,')').......;

    6.使用别名:As关键字  

    7.函数处理数据:(不同的DBMS不一样,使用时注意选择合适的)

    提取字符串的组成部分:substring() mid() substr()

    数据类型转换cast() convert()

    提取日期: Now() curdate() date() getdate()

    LTRIM() RIRIM()函数用于去除左右边空格空格。

    日期和时间处理函数:datepart() to_date()

    数值处理:abs() cos()sin() pi() sqrt() tan()

    8 数据汇总

    avg(keyid) as **(使用别名)  返回某列平均值

    count()  返回某列行数  可以联合where来使用

    例如 select count(keyid) as **(别名) form table  where keyid2=**; 

    max() min() 某列最大最小值

    sum() 某列值之和

    9 数据分组

    group by 和 having

    使用分组可以将数据分成多个逻辑组,对每个组进行聚集计算。

    group+having 可以过滤分组  (where 是对行过滤而having是对分组过滤)

    例如:select cust_id,count(*) As orders from Orders group by cust_id having count(*)>=2;

    10. 联结

    根据关系表的联系 来创建 最简单的一种就是where table1.keyid1 = table2.keyid1

    如果不加以联结 会出现笛卡尔积 也就是cross join.

    where创建的是等值联结,基于两个表之间的等值测试。也称为内联结,也可以用以下的方式进行:

    内联结:

    select keyid1 ,keyid2,keyid2 from table1 inner join table2 on table1.keyid =table2.keyid;

    高级联结:自联结 自然联结 外联结

    自联结:where语句 + and来自联结。自联结通常作为外部语句。感觉和子查询差不多

    自然联结:排除多次出现每一列只返回一次。

    用where and +(select *)

    外联结:left(rigth) outer join:外联结的修饰词为right和left ,right指出的是outer join右边的表而left指的是outer join左边的表。

    11. 其他表操作:

    插入:insert into table( *,* ,* , ) values ( *,* ,* ,) 表的列与value值对应就好 

    select * into

    更新数据 update table set ....

    删除:delete from table where..删除一行

    创建表  creat table tablename (keyid ,type,value)

    更新表:alter table

    删除表:drop table tablename

  • 相关阅读:
    Android笔记:数据储存
    Android笔记:管理所有活动
    Android随笔:属性
    Android笔记:限定符
    Android笔记:ninepatch
    Android笔记:获取屏幕信息
    js自动完成
    动态生成实体类
    EF框架学习手记
    js遮罩效果
  • 原文地址:https://www.cnblogs.com/CongLollipop/p/6861861.html
Copyright © 2020-2023  润新知