郑州公司网站设计,在西宁做网站可以吗,类似淘宝商城网站建设方案,在线制作图片加字合成上一节我们讲述了记录的基本操作#xff0c;这一节我们来单独讲一下查询。
查询基本结构
首先我们来看下查询的基本结构
SELECTcolumn1,column2,...
FROMtable_name
[WHEREcondition]
[GROUP BYcolumn1, column2, ...]
[HAVINGaggregate_function(column) condition]
[ORDE…上一节我们讲述了记录的基本操作这一节我们来单独讲一下查询。
查询基本结构
首先我们来看下查询的基本结构
SELECTcolumn1,column2,...
FROMtable_name
[WHEREcondition]
[GROUP BYcolumn1, column2, ...]
[HAVINGaggregate_function(column) condition]
[ORDER BYcolumn1 [ASC | DESC]];其中中括号包含的部分是非必须的。接下来我们来学习下每个部分的作用。
辅助表创建
为了讲述方便这里我们新增一张课程表建表SQL
CREATE TABLE courses (course_id INT NOT NULL,course_name VARCHAR(100) NOT NULL,instructor VARCHAR(50) NOT NULL,schedule VARCHAR(50) NOT NULL,PRIMARY KEY (course_id)
);
插入数据的SQL如下
INSERT INTO courses (course_id, course_name, instructor, schedule) VALUES
(1, Introduction to Computer Science, Prof. Smith, Mon/Wed 10:00 AM - 11:30 AM),
(2, Database Management, Prof. Smith, Tue/Thu 2:00 PM - 3:30 PM),
(3, Web Development, Prof. Davis, Mon/Wed/Fri 1:00 PM - 2:30 PM),
(4, Mathematics for Computer Science, Prof. Davis, Tue/Thu 10:00 AM - 11:30 AM),
(5, Artificial Intelligence, Prof. White, Wed/Fri 3:00 PM - 4:30 PM); 执行完毕之后我们将拥有2张表 where关键字
where的作用是指定查询条件缩写返回数据的范围。
select * from courses c ;
将得到 这里我们格式化下SQL并加上筛选 我们将得到两条符合条件的数据 group by 语句
group by 语句即分组语句by后边跟上一列或多列表示将数据分组。常和聚合函数配合使用。
举个例子这里我们要获取每个导师授课的课程数量那就需要以导师名称instructor作为分组条件使用count(*)聚合函数进行计数。
selectinstructor ,count(*)
fromcourses c
-- where c.instructor Prof. Smith
group by instructor ;
得到 having语句
如果说where语句是第一层过滤那么having就是第二层过滤。它是对group后的结果进行过滤。
举个例子这里我们要在前一次查询的基础上筛选课程数量为2的导师就可以用having
selectinstructor ,count(*)
fromcourses c
-- where c.instructor Prof. Smith
group by instructor
having count(*)2
;
结果 order by语句
见文知意这个语句是用来对结果集进行排序的。
直接查询课程表可以看到是以id排序的 如果我们想让它根据名称排序
select*
fromcourses c
order by course_name
;
可以看到结果就根据名称进行A-Z的排序了 加 desc 即逆序
select*
fromcourses c
order by course_name desc
;结果 小结
本节我们讲述了查询的基本结构和使用下一节我们将对前面学习的所有内容进行一下小结。