sql查询

一.基础查询

--查询所有列所有行

select *from 表名

--查询指定列(姓名)(显示中文列名)

select ZD1 AS 姓名 from 表名

--把查询出来的数据去掉重复的

--distinct:去重

select distinct(列名)from 表名

二.条件查询

sql常用运算符

=:等于,比较是否相等或者赋值

!=:比较不等于

<>:比较不等于,sql语句中尽量使用<>来做不等判断

.>:比较大于

<:比较小于

>=:比较大于等于

<=:比较小于等于

is null:比较为空

is not nul:比较不为空

in:比较是否在其中

like:模糊查询

between...and...:比较是否在两者之间

and:逻辑与(两个条件同时成立,则表达式成立)

or:逻辑或(两个条件有一个成立,则表达式成立)

not:逻辑非(条件成立,则表达式不成立;条件不成立,则表达式成立)

--查询性别为女的员工信息

select *from People where sex='女'

--查询工资大于等于1000元的员工信息

select *from people where salary>=1000

--查询月薪在1000-2000之间的员工信息

(1)select *from people where salary>=1000 and salary<=2000

(2)select *from People where salary between 1000 and 2000

--查询地址在武汉或者北京的员工信息

select *from people where address in('武汉','北京')

--查询所有员工信息,根据工资排序,降序

--asc升序          desc降序

select *from people order by salary desc

--根据名字长度排序

select *from people order by len(name) desc

--查询工资最高的那10%的员工信息

--percent:代表 %

select top 10 percent *from people order by salary desc

--查询出地址没有填写的员工信息

select *from people where address is null

--查询80后的员工信息

--year(时间字段)        取年份

(1)select*from people where birth>='1980-1-1' and birth<'1990-1-1' 

(2)select *from people where year(birth) between 1980 and 1989

--查询星座是巨蟹座的员工信息(6.22-7.22)

--month(时间字段)        取月份

--day(时间字段)        取日

select *from People where (month(Birth)=6 and day(Birth)>=22)

or (month(Birth)=7 and day(Birth)<=22)

--查询所有员工信息,添加一列显示生肖

--鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪

--4   5   6   7  8   9 10 11  0  1   2   3 (这是余数)

--年数除以12的余数

select *,

(case

        when year(时间字段)%12=4  then '鼠'

        when year(时间字段)%12=5  then '牛'

        when year(时间字段)%12=6  then '虎'

        。。。。。。

        else  '' end) 生肖 from People

三.模糊查询

%:代表匹配0个字符,1个字符或多个字符。

_: 代表匹配只有一个字符

[]:代表匹配范围内的

[^]: 代表匹配不在范围内的

格式:

select *from 表名 where 列名 like '%%'

四:分组查询

--group by 分组  注:先查询,后分组

select *from 表名 group by 字段名

--根据员工所在地区分组,1985年及以后出身的员工不参与统计

select *from 表名 where Birth<'1985-1-1' group by 字段名

--因为聚合函数不能放在where后面,where后面一般是放普通的查询条件,放在group by 前面,但如果你需要使用聚合函数,那就得使用having关键字,放在group by 后面

例:

select *from 表名 where 普通条件 group by 要分组的字段 having 聚合函数

五.多表查询

迪卡尔乘积

例:

select *from 表1               (查出了3条数据)

select *from 表2               (查出了19条数据)

select *from 表1,表2        (查出了3*19=57条数据)

所以:

查询结果将表1所有记录和表2所有记录,依次排列组合形成新的结果

基本格式:

select *from 表1,表2  where  表1.主键=表2.外键

或        --内连接:不符合主外键关系的不会被显示

select *from    表1     inner join 表2 on 表1.主键=表2.外键

或        --外连接:左连接,右连接,全连接

           --左连接:以左表为主表进行数据显示,主外键关系找不到的数据用null取代

select *from    表1     left  join 表2 on 表1.主键=表2.外键

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值