欢迎光临散文网 会员登陆 & 注册

数据库原理与应用(6)查询语句、模糊查询、聚合函数、分组查询、结果排序、结果筛选

2022-04-28 14:13 作者:洛溪い  | 我要投稿

【查询基础和语句】

在查询分析器中,查询的显示结果也可以保存,并且扩展名为.SQL

查询窗口的编辑器窗口是一个文本编辑器,可以在这里输入SQL语句,执行返回的结果集显示在结果窗口中。

空值不同于空字符串或数值零,通常表示未填写、未知(Unknow)、不可用将在以后添加的数据

select * from books LIMIT 10语句中的LIMIT 10表示连续的10条,也就是1-10条。

关于where语句的null,可以写成以下三种形式:

SQL语句中,“AGE IN (10,20)”的语义是AGE=10 OR AGE =20。

SQL语句通常被称为结构化查询语言

SQL的查询语句中,重命名目标列的方式包括在重命名对象后用as表示出新的名称、在重命名对象后空格加新的名称、在重命名对象前用等号表示且等号前为新的名称。下面举一个例子。

SQL语言中,SELECT语句的执行结果是

SQL语言中,条件“年龄betWEEN 20 AND 30”表示年龄在20至30之间,包括20岁和30岁。

数据操纵语句(DML)的基本操作是插入、修改、查找

数据操纵语句(DML)的对应指令有insert、update、delete

SQL的比较运算符有<= / <> / !=,其中!=和<>语义相同,均表示不等于。

关系模型的数据操纵即是建立在关系上的数据操纵,一般有 删除、添加、查询和修改四种操作。

数据库对象包括表、索引、视图、图表、缺省值、规则、触发器、用户、函数,不包括select语句。


【例】

(1)中途误用分号,下面的代码中间不可以用分号,分号只出现在语句结尾,表示结束。正确的改法是将中间的分号改为英文状态下的逗号,在语句结尾处添加一个英文状态的分号。

错误语句:

正确语句:

(2)from后未接表名。正确改法是from后跟上表的名字,再在结尾加分号。

错误语句:

正确语句:

(3)where语句中使用了聚集函数。正确改法是将聚集函数写在having语句中,having语句跟在group by语句后。

错误语句:

正确语句:

顺序为select……from……where……group by……having……order by……asc/desc

【模糊查询、条件查询】

如果想要查询结果中不显示重复的数据,可以使用DISTINCT关键字,distinct关键字的作用是仅筛选不重复的数据

在stu表中查询所有姓名中有“嘉”的学生,在WHERE子句中应使用LIKE '% 嘉 % '通配符进行查询。

*关于SQL中的通配符:SQL语言的通配符必须和like连用。%表示零或多个数量不确定的字符,_仅表示一个字符,[charlist]表示字符串中的任意单一字符,[^charlist]或[!charlist]表示不在字符串中的任意单一字符。

【例1】已知关系student (sno,sname,age,gender,place), 查询姓名中含有”小”字的同学姓名,年龄的SQL语句,正确的是Select sname 姓名, age 年龄 From student Where sname like '%小%';

【聚合函数、分组查询、结果排序、结果筛选】

SELECT语句中的ORDER BY子句中,如果有多个排序标准,它们之间用逗号分隔,查询结果与排序标准的先后顺序无关

ORDER BY子句仅对检索数据的显示有影响,并不改变表中行的内容顺序

SQL语句中,聚合函数COUNT(列名) 的功能是对一列中的非空值计算个数

聚合函数中不忽略空值(NULL)的是count(*)

在SQL语言的SELECT语句中,用于对查询结果元组进行排序的是order by子句

关于select count(*) select count(column)的区别,count(*)对行的所有数目进行计算,包含NULL值的行;count(column)对特定的列的值具有的行数进行计算,不包含NULL值的行。

count (column) 对特定的列的值具有的行数进行计算,不包含NULL值。 count (1) 这个用法和 count (*) 的结果是一样的。

WHERE子句中可以使用的查询条件有许多,其中用于确定范围的操作符有between and和not between and

在要排序的列表后使用order by语句,通过asc指明为升序,desc指明为降序,忽略则默认为升序,order by语句在where语句之后。

除count(*)函数外,其他聚合函数均忽略空值

聚合函数出现在select之后,不可以出现在where子句中。

在没有使用group by子句分组的情况下,聚合函数作用于整张表中满足where条件的所有记录,在查询结果中一个聚合函数只返回单一的值

SELECT语句中的条件可以用WHERE或HAVING引出,但HAVING必须在GROUP BY之后使用。

now()函数返回当前的日期和时间

【例】购买时间字段是btime,商品编号字段是gno,统计2020年之前被购买次数超过2次的商品,显示商品编号和购买次数,对应的SQL语句是:

SELECT 语句的完整语法较复杂,FROM,表示来自于哪些表;WHERE,表示筛选的条件;ORDER BY ,表示根据哪些列排序;HAVING,表示分组后筛选的条件。

group by可以和聚集函数连用,但不可以用来过滤数据。

聚合函数介绍(所有聚合函数均可以添加distinct关键字以实现去除重复值的效果

(1)count(*)返回行数。

(2)count(<列名>) 返回指定列中非NULL值个数。

(3)sum(<列名>) 返回指定列中非NULL值的和。

(4)avg(<列名>) 返回指定列中非NULL值的平均值。

(5)max(<列名>) 返回指定列中非NULL值的最大值。

(6)min(<列名>) 返回指定列中非NULL值的最小值。

数据库原理与应用(6)查询语句、模糊查询、聚合函数、分组查询、结果排序、结果筛选的评论 (共 条)

分享到微博请遵守国家法律