《用实例学习SQL》系列
killeri
Python的自学者,时间很宝贵,我选择Python
展开
-
《用实例学习SQL》相关表
Student表:Course表:Sc表:该系列文章借鉴了数据库系统概论,王珊和数据库系统概念,均可在两本书中找到相关概念,如果想系统学习数据库基本知识建议使用这两本书。...原创 2019-02-17 11:05:58 · 304 阅读 · 0 评论 -
《用实例学习SQL》第二篇:单表查询(1)
一、选择表中的若干列alterselect Sno, Snamefrom Student;#1.选择两列alterselect Sno, Sname, Sdeptfrom Student;#2. 选择三列alterselect *from Student;#3. 选择所有列进行输出,这个通常查看一个table中所有数据时使用。alter二、选择表中若干列并查询计算的值sele...原创 2019-02-14 17:15:07 · 179 阅读 · 0 评论 -
《用实例学习SQL》第二篇: 单表查询(2)
常见的查询谓词比较:=,>, <, >=, <=, !=(<>)确定范围:(not) between A and B – 其中包含A,B。确定集合:(not) in字符匹配:(not) like空值:is (not) null连接谓词: and, or, not(1)、比较谓词简单,除了‘=’外,其他的都只能使用在数值之间(2)、确定范围:原创 2019-02-14 19:35:27 · 235 阅读 · 1 评论 -
《用实例学习SQL》第二篇:单表查询(3)
介绍order by、group by 和聚集函数(count,avg,sum, max,min)(1)、order by子句:排序子句,对整个表或者group by分的组进行排序。不能再嵌套查询中使用order byselect *from Scwhere Sno = 3order by Grade desc, Sno asc;# 将结果表按grade 的降序排序,如果有grade...原创 2019-02-14 19:54:04 · 213 阅读 · 0 评论 -
《用实例学习SQL》第三篇:表的连接查询
在一个查询中同时涉及两个及两个以上的表(当然,自身连接查询也算)称之为表的连接查询分为:等值连接查询,非等值连接查询,自然连接查询,自身连接查询和符合条件的连接查询在where子句中用来连接两个表的条件称之为连接条件或连接谓词(1)、等值连接查询和非等值连接查询当连接运算符为‘=’时,称为等值连接,使用其它的运算符称为非等值连接。(连接运算符见上篇)select Student.*, S...原创 2019-02-15 11:06:52 · 221 阅读 · 0 评论 -
《用实例学习SQL》第四篇:嵌套查询
在SQL语言中,一个select-from-where语句称为一个查询块,将一个查询块嵌套在另外一个查询块的where或having的条件中的查询称为嵌套查询, 外层的查询称为父查询,内层的查询称为子查询;在sql语句中的嵌套查询的深度是没有限制的,也就是说,可以在子查询中再任意设置子查询。select Snamefrom Studentwhere Sno in (select Sno fr...原创 2019-02-15 23:42:11 · 1849 阅读 · 0 评论 -
《用实例学习SQL》专题篇:带有(not)exists 谓词的子查询(1)
作为一个存在谓词,exists在条件筛选结果中返回的结果只有True和False。exists的用法select * from table1where exists (select * from table2);#当子查询的结果不是空时,exists返回True,否则返回Falsenot exists的用法select *from table1where exists...原创 2019-02-16 10:31:44 · 489 阅读 · 1 评论 -
《用实例学习SQL》专题篇:带有(not)exists 谓词的子查询(2)
这次我们要通过存在量词来表述SQL中没有的全称量词。上篇中我们讲到的题目是:选修了所有课程的学生姓名当然我们可以通过嵌套查询写出来,如下:select Snamefrom Student join (select Sno from Sc group by Sno having count(*) = ...原创 2019-02-16 11:32:02 · 348 阅读 · 0 评论 -
《用实例学SQL》第五篇:集合查询和基于派生表的查询
一、集合查询我们知道,对于集合的操作有三个:并,交,差在SQL中,在表之间进行集合操作,要求进行操作的表有相同的列的数目和对应列的类型相同(1)、并操作(union)union会自动取出重复元组,而union all不会select * from Studentwhere Sdept = 'CS'union (all)select *from Studentwhere Sag...原创 2019-02-16 23:47:07 · 1501 阅读 · 0 评论 -
《用实例学习SQL》第五篇:数据更新
在SQL中数据查询才是大头,当然,对于insert,delete,update这些更新操作也是要熟悉的。SQL字符串常量(英文字符)用单引号括起来(1)、插入操作(insert)用于向表中添加记录,有两种方式:①后面接values关键字,直接添加输入数值INSERT INTO table_name[(field1, field2,...)] VALUES (value1, value...原创 2019-02-17 09:46:42 · 187 阅读 · 0 评论 -
《用实例学习SQL》第六篇:空值的讨论
(一)我们首先讲一下空值的定义:在数据库中,null代表空值,其是指“不知道”,“不存在”,**“不确定”**的值,其中请重点注意这个空值是一个“不确定”的值。我们知道要判断表中一个数据是不是空值用“is null”和“is not null”而不能用“=”,那这个是为什么?很简单,上面说过,null是一个不确定的值,也就是说它可能是任意一个值也可能什么值都不是,这是一个不确定的,随时可以改...原创 2019-02-17 10:00:22 · 431 阅读 · 0 评论 -
《用实例学习SQL》第七篇:视图的建立和使用
(一)、视图的定义:视图是从一个或者几个基本表中导出来的一个虚表,和基本表不同在于,视图定义的表并不实际存在。CREATE VIEW view_name [(field1, field2,...)]AS <子查询>[WITH CHECK OPTION]以上是定义视图的语句,其中子查询可以是任意的子查询用于在基本表中提取数据组成视图表。从定义我们可以看出,视图表并不存在。在...原创 2019-02-17 10:43:51 · 485 阅读 · 0 评论 -
《用实例学习SQL》第一篇:建表
第一步:create database StudentDB;创建数据库, 每个表达的结束都是用分号第二步:use StudentDB;使用数据库第三步: 使用数据库并插入数据create table Student(Sno varchar(10) primary key,Sname varchar(10),Ssex varchar(10),Sage int,Sdept va...原创 2019-02-14 16:47:09 · 176 阅读 · 0 评论