zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mongo 语法总结
    关系型数据库和非关系型数据库
    navicat for mongodb激活 工具和 激活流程
    理财的重要性
    【日常记录】【unity3d】 OnTriggerEnter 和 OnCollisionEnter (2D) 的区别
    【日常记录】【unity3d】 2D跳跃过快导致角色某帧陷入地面
    【日常记录】【unity3d】 获取手柄轴的输入
    【Java】java 中的泛型通配符——从“偷偷地”地改变集合元素说起
    【日常记录】用 vs2015 编译 love2d 引擎时出现 依赖项目luajit编译失败的解决办法
    【翻译&转载】shader的导数函数介绍
  • 原文地址:https://www.cnblogs.com/CongLollipop/p/6861861.html
Copyright © 2011-2022 走看看