数据库 SQL常用语句

文章目录

  • 数据库 SQL常用语句
    • 一、前言
    • 二、相关知识点实用性介绍
      • 1、常用查询格式
      • 2、WHERE子句常用的查询条件
      • 3、多表连接查询
      • 4、嵌套查询
      • 5、字符匹配查询
      • 6、其他常用指令
        • 排序
        • 聚集函数
        • GROUP BY分组
        • EXIST 子查询
        • 外连接

一、前言

在做的时候有些不是很流畅,特意记录一下,该实验主要练习查询操作。

二、相关知识点实用性介绍

1、常用查询格式

SELECT 属性名
FROM 表名
WHERE 限制条件

2、WHERE子句常用的查询条件

查询条件 谓词
比较 =,>,<,>=,<=,!=,<>,!>,!<; NOT加上述的比较运算符
确定范围 BETWEEN AND,NOT BETWEEN AND
确定集合 IN ,NOT IN
字符匹配 LIKE, NOT LIKE
空值 IS NULL,IS NOT NULL
多重条件 AND,OR,NOT
量词 EXISTS

简单栗子:

  • 比较:WHERE Sname=“风落”
  • 确定范围:WHERE Sage BETWEEN 18 AND 23
  • 确定集合:多用与嵌套查询,WHERE IN (SELECT Sname FROM SPJ WHERE Sage>18)
  • 字符匹配:查询字符串,如所有姓刘的学生。WHERE Sname LIKE “刘%”
    • %表示任意个数的任意字符、_ 表示一个任意字符 “杨_” 就表示第一个字是杨,第二位为其他字的两位字符串。
  • 空值:多用于提取空值或去掉:WHERE Sname IS NULL
  • 多重条件:这个也比较常见,将多个条件联动起来。比如一位21岁,名字是杨灏的男生。WHERE Sage=21 AND Sname=“杨灏” AND Smale=“男生”

3、多表连接查询

SELECT 属性名中的属性名可以来自不同的表
例子:

SELECT S.SNAME,P.PNAME,J.JNAME,SPJ.QTY
FROM SPJ,S,P,J
WHERE SPJ.PNO=P.PNO AND SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO;

多表连接的通俗解释:查询的属性名来自二个或二个以上的表。

4、嵌套查询

定义:一个SELECT-FROM-WHERE 语句被称为一个查询块,将一个查询块套在另一个查询快的WHERE字句或HAVING短语的条件中被称为嵌套查询。

SELECT DISTINCT SPJ.JNO
FROM S,SPJ
WHERE SPJ.JNO NOT IN (SELECT SPJ.JNO FROM S,SPJ WHERE S.CITY="天津" AND S.SNO=SPJ.SNO);

5、字符匹配查询

谓词 LIKE 可以用来进行字符串的匹配。

SELECT *
FROM Student
WHERE Sname LIKE "杨%";

6、其他常用指令

排序

用户可以用ORDER BY 子句对查询结果按照一个或多个属性列升序(ASC)或降序(DESC)排序,默认升序。

SELECT Sname,Grade
FROM Student
WHERE WHERE Sage>20
ORDER BY Grade DESC;
  • 按多个项排序
SELECT Sname,Grade
FROM Student
WHERE WHERE Sage>20
ORDER BY Grade DESC,Sage DESC;

聚集函数

  • COUNT(*)
  • SUM()
  • AVG()
  • MAX()
  • MIN()

注:功能如名字,SUM(Smoney)就是将钱都叠加起来。聚集函数里面放置的就是属性名,或只有一列的查询结果(嵌套查询)

GROUP BY分组

将查询结果按某一列或多列进行分组

  • 按一列分组
SELECT Color,COUNT(Snum)
FROM S
GROUP BY Color;
  • 按两列分组
SELECT Color,COUNT(Snum)
FROM S
GROUP BY Color,Money;

EXIST 子查询

Exists子查询就是用来判断某些条件是否满足(跨表),Exists是接在where之后,Exists返回的结果只有0和1

 SELECT * FROM t_studentWHERE EXISTS(SELECT * FROM t_TinKe WHERE t_student.id=t_TinKe .id );

将t_student中的每一行,如果满足(SELECT * FROM t_TinKe WHERE t_student.id=t_TinKe .id ) 则加入结果集合

最终返回所有在这个班的听课的学生信息

外连接

SELECT Student.*,Food.*
FROM Student
LEFT OUTER JOIN Food ON (Student.eat=Food.eat);

数据库 SQL常用语句相关推荐

  1. SQL常用语句一览(增删改查Easy)

    SQL常用语句一览 (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*fro ...

  2. SQL常用语句(基础篇)

    SQL常用语句(基础篇) 说明:创建数据库 CREATE DATABASE database-name 说明:删除数据库 drop database dbname 说明:备份sql server -创 ...

  3. 【SQL常用语句或函数】

    SQL常用语句或函数 –查询字符串的长度 select length('北京市东城区王府井大街1188799号') from dual; –查询当前时间 values current date –查询 ...

  4. WordPress 常用数据库SQL查询语句大全

    https://www.wpdaxue.com/wordpress-sql.html 在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容 ...

  5. ADO+MFC数据库编程常用语句

    设在OnInitDialog()函数中,已经完成了初始化COM,创建ADO连接等操作,即 [cpp] view plaincopy // 初始化COM,创建ADO连接等操作 if (!AfxOleIn ...

  6. Teradata sql 常用语句总结

    工作使用TD数据库,转载常用语句方便查看 从参考文章中截取工作中经常的语句,不定时更新 参考文章1:https://blog.csdn.net/u010020099/article/details/8 ...

  7. SQL常用语句 笔记

    https://github.com/QInzhengk/Math-Model-and-Machine-Learning SQL笔记 1.常用MySQL命令 2.语法规范 3.语句分类 MySQL索引 ...

  8. Mysql数据库——sql基本语句

    SQL基本语句 1.登录退出及快捷键: (1)快捷键: ----快速回到行首 ctrl + a ----回到行末 ctrl + e ----清屏 ctrl + l ----结束 ctrl + c + ...

  9. [数据库] SQL查询语句表行列转换及一行数据转换成两列

    本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同 ...

最新文章

  1. 大脑只需单个神经元就可进行XOR异或运算,Science新研究揭开冰山一角,引发热议...
  2. C# 时间格式(血淋淋的教训啊。。。)
  3. java游戏暂停弹出字体_小白写了个java的小游戏 想加个暂停的功能 无从下手 求大佬们帮...
  4. Qt文档阅读笔记-ToolBar QML Type
  5. Bootstrap-学习系列
  6. python第一周作业--------模拟登录
  7. epub电子书--目录结构介绍
  8. 【每天学点心理学第七期】人性定理:人都是以服务于他自己为目的的!
  9. 数学常识--两点之间距离公式
  10. 程序员的键盘使用指南
  11. 智能优化算法:侏儒猫鼬优化算法-附代码
  12. win10实时防护彻底关掉
  13. 大学生python心得1000字_大学生心得体会1000字
  14. 估值470亿美元的WeWork,到底是什么?
  15. 开关电源雷击浪涌整改_开关电源之雷击浪涌大解剖
  16. 成都玖益科技:店铺流量提升的意义
  17. 2019_KDD_Social Recommendation with Optimal Limited Attention
  18. sonar-scanner 历史版本下载地址
  19. FPGA入门板子的选购
  20. Python随堂练习

热门文章

  1. 解决TypeError: Descriptors cannot not be created directly报错!
  2. java calendar 日期差_java利用Calendar如何计算两个日期只差?
  3. 安装算量软件识别风管操作方法
  4. matlab画雪花,使用C++ OpenGL,完成Konx 雪花绘图
  5. Matlab叠加阶梯图和线图
  6. windows Server 2016点击服务管理器无响应解决办法
  7. 如何手动清除常见的小病毒
  8. python xls转换为xlsx格式
  9. C++ 不能通过给字符数组名赋值的方法给字符数组赋值
  10. 个人信息非法流出助长电信网络犯罪