mysql数据库之查询语言(一)

前言

前面学习了mysql的DDL和DML语言,现在记录一下才刚学过的sql查询语言DQL,以加深理解。

1. 构建数据

查询数据的前提是要有数据可查,下面以用网上经典的数据来构造数据
学生表:

#创建学生表
create table students(sid varchar(10),sname varchar(10),sage datetime,ssex varchar(10));
#向学生表添加数据
insert into students values('01' , '赵雷' , '1990-01-01' , '男');
insert into students values('02' , '钱电' , '1990-12-21' , '男');
insert into students values('03' , '孙风' , '1990-12-20' , '男');
insert into students values('04' , '李云' , '1990-12-06' , '男');
insert into students values('05' , '周梅' , '1991-12-01' , '女');
insert into students values('06' , '吴兰' , '1992-01-01' , '女');
insert into students values('07' , '郑竹' , '1989-01-01' , '女');
insert into students values('09' , '张三' , '2017-12-20' , '女');
insert into students values('10' , '李四' , '2017-12-25' , '女');
insert into students values('11' , '李四' , '2012-06-06' , '女');
insert into students values('12' , '赵六' , '2013-06-13' , '女');
insert into students values('13' , '孙七' , '2014-06-01' , '女');

教师表:

#创建教师表
create table teacher(tid varchar(10),tname varchar(10));
#向教师表添加数据
insert into teacher values('01' , '张三');
insert into teacher values('02' , '李四');
insert into teacher values('03' , '王五');

科目表:

#创建科目表
create table course(cid varchar(10),cname nvarchar(10),tid varchar(10));
#向科目表添加数据
insert into course values('01' , '语文' , '02');
insert into course values('02' , '数学' , '01');
insert into course values('03' , '英语' , '03');

成绩表:

#创建成绩表
create table sc(sid varchar(10),cid varchar(10),score decimal(18,1));
#向成绩表添加数据
insert into sc values('01' , '01' , 80);
insert into sc values('01' , '02' , 90);
insert into sc values('01' , '03' , 99);
insert into sc values('02' , '01' , 70);
insert into sc values('02' , '02' , 60);
insert into sc values('02' , '03' , 80);
insert into sc values('03' , '01' , 80);
insert into sc values('03' , '02' , 80);
insert into sc values('03' , '03' , 80);
insert into sc values('04' , '01' , 50);
insert into sc values('04' , '02' , 30);
insert into sc values('04' , '03' , 20);
insert into sc values('05' , '01' , 76);
insert into sc values('05' , '02' , 87);
insert into sc values('06' , '01' , 31);
insert into sc values('06' , '03' , 34);
insert into sc values('07' , '02' , 89);
insert into sc values('07' , '03' , 98);

2. 查询语句

2.1 查询语句的格式

mysql的查询语句一般格式为

select 列名1,列名2,…列名n
from 表名1, 表名2, …表名n
where  条件
group by  列名1[,列名2,…列名n]having()
order by  列名1,列名2,…列名n

2.2 单表查询

单表查询的条件一般有以下几种:

比较:	=,>,<,>=,<=,!=<>,!>,!<,not+以上
范围:between and,not between and
确定集合:in ,not in
字符匹配:like,not like
空值:is null,is not null
多条件:and,or,not

其中字符匹配有两个通配符:
'_':匹配一个字符
%:匹配任意多个字符

2.3 练习
(1)查询所有学生的信息
select * from students;
在这里插入图片描述
(2)查询出id为前5的同学的所有信息
select * from students where sid<6;
在这里插入图片描述
(3)查询出姓赵的同学的所有信息
select * from students where sname like ‘赵%’;
在这里插入图片描述
(4)查询出名字有四个字以上的同学的所有信息
select * from students where sname like ‘____%’;
在这里插入图片描述
(5)查询出性别为空的学生信息
select * from students where ssex is null;
在这里插入图片描述
(6)查询出名字为两个字符且性别不为空的学生id和名字
select sid,sname from students where sname like ‘__’ and ssex is not null;

在这里插入图片描述
注:
部分数据来源于https://blog.csdn.net/woooooood/article/details/85163780

猜你喜欢

转载自blog.csdn.net/qq_44690947/article/details/107288892
今日推荐