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

原文地址:https://www.cnblogs.com/CongLollipop/p/6861861.html