常用的SQL语句

一、简单查询语句 DQL

select

1.如何查看某个表中的所有字段

select * from 表名;从一个表中查询所有数据。如下图所示:

在这里插入图片描述

不看表中的数据,只看表的结构
desc 表名;

在这里插入图片描述

2.查询一个字段

(1)select 字段名 from 表名; ,如下图所示
缺点 :效率低,可读性差,实际开发中不建议
(2)select A,B,C,D,… from 表名;

在这里插入图片描述

3.查询多个字段

select 字段名,字段名 from 表名; , 如下图所示:

在这里插入图片描述

4.给查询的列起别名

(1)select 字段名 as 别名 from 表名; : 如下图所示
(2)注意 :只是将查询显示的列名显示为rrid,原表列名还是:rid。
select语句永远都不会进行修改操作,只负责查询。
(3)select rid rrid from t_roleselect rid ‘r rid’ from t_role,:也可以起别名
(4)注意:在所有数据库中,字符串统一使用单引号括起来,单引号是标准。
(5)别名是中文的话,需要用单引号括起来

在这里插入图片描述

5.查询用户名并且给用户密码+1

select 用户名,密码+1 from 表名;,:如下所示

在这里插入图片描述

二、条件查询

select 字段名 from 表名 where 条件;

1.都有哪些条件

在这里插入图片描述

(1)between and 使用时必须遵循左小右大,且是闭区间,包含两端的值

(2)null的使用

(1)查询哪个用户的电话号码为空
select username from t_user where phonenumber is null;
(2)若查询电话号码不为空的情况下,就用is not null
(3)注意:数据库中的null代表的是什么都没有,不是一个值,所以不能用等号

(3)and的使用

(1)查询工资大于3000并且年龄小于30的员工姓名
select rolename from t_role where age<30 and salay>3000;
(2)or:的使用与and类似
(3)当 andor 同时使用时:and的优先级比or高,所以可以考虑加括号

(4)in的使用

(1)查询在北京读书和上海读书的同学姓名
select username from student where city in(‘上海’,‘北京’);
(2)in表示的不是区间

(5)like的使用

(1)找出员工姓名中含有伟的员工姓名
select username from t_user where username like ‘%伟%’;
(2)找出姓名中有_的学生
select name from student where name like ‘%_%’;
这样是不可以的:select name from student where name like ‘%_%’;

三、排序(order by)

1.查询所有员工薪资并排序

(1)select name,salay from emplyee order by salay;:默认是升序

2.指定降序

select name,salay from emplyee order by salay desc;

3.指定升序

select name,salay from emplyee order by salay asc;

4.多个字段排序

(1)查询员工姓名和薪资,要求按照薪资升序,若薪资一样,再按照姓名升序排列
select name,salay from emplyee order by salay asc,name asc;

5.找出工资在2000到10000之间的员工信息,要求按照薪资降序排列

select name,salay from emplyee where salay between 2000 and 10000 order by salay desc;

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 60); 10、查询没有学全所有课的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course); 11、查询至

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cw旧巷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值