当我们使用select查询语句向数据库发送一个查询请求,数据库会根据请求执行查询,并返回一个虚拟表,其数据来源于真实的数据表。
一、查询所有数据:所有的字段、所有的记录
格式:SELECT * FROM 表名;
举例:SELECT * FROM tb_student;
二、查询部分字段:
目的:可以指定查询哪些字段、给数据表或字段取别名。
格式:SELECT <字段名列表> FROM 表名;
说明:<>表示其中的内容是必选项,[]表示其中的内容是可选项,{}表示其中的内容是枚举项。
举例:SELECT student_no AS 学生编号,student_name AS 学生姓名,phone AS 电话号码 FROM tb_student;
别名:使用AS或者空格就可以给数据表或字段取别名,若别名中包含特殊字符,mysql使用单引号包裹,oracle使用双引号,sqlsever使用方括号包裹。
三、查询部分记录:
格式:SELECT <字段名列表|*> FROM 表名 [WHERE <筛选条件列表>];
说明:
1、筛选条件列表中多个条件之间使用OR、AND连接、取反NOT。
2、NULL 使用 IS NULL或IS NOT NULL,不能用=
举例:SELECT * FROM tb_student WHERE student_no = "S01" OR sex = '男';
SELECT * FROM tb_student WHERE email is not NULL ;
SELECT * FROM tb_student WHERE email is NULL ;
SELECT * FROM tb_student WHERE email = '' ;
四、多表联合查询:隐式的内连接查询
当某些数据在一个表中没有时,就需要针对多个表进行联合查询,才能获取到需要的数据,笛卡尔积 举例:-- 在查询tb_student表的同时希望一并查询到grade_name
SELECT * FROM tb_student sd,tb_grade ge WHERE sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
/*两条语句效果一样*/
SELECT * FROM tb_student sd INNER JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
-- 左外连接查询,左边表中的数据会优先全部显示
SELECT * FROM tb_student sd LEFT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
-- 右外连接查询,正好与左外相反
SELECT * FROM tb_student sd RIGHT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
-- 全连接查询(显示左右表中全部数据) 左右中间用union连接
SELECT * FROM tb_student sd LEFT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级'
UNION /*union会去掉重复的数据,而union all会直接显示结果*/
SELECT * FROM tb_student sd RIGHT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级'; -- 将四张表都关联一起查询,
SELECT sj.*,sc.* ,ge.grade_name FROM tb_grade ge,tb_subject sj,tb_student sd,tb_score sc
WHERE ge.grade_id = sj.grade_id
AND ge.grade_id = sd.grade_id
AND sc.subject_id = sj.subject_id
AND sc.student_no = sd.student_no
AND ge.grade_name = "一年级";

mysql 04_章基本查询的更多相关文章

  1. MySQL数据操作与查询笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 第1章 MySQL数据操作与查询笔记 • [第1章 MySQL数据库基础] 第2章 MySQL数据操作与查询笔记 • [第2章 表结构管 ...

  2. 图解|12张图告诉你MySQL的主键查询为什么这么快

    这是图解MySQL的第3篇文章,这篇文章会让大家清楚地明白: 什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而 ...

  3. Mysql多表表关联查询 inner Join left join right join

    Mysql多表表关联查询 inner Join left join right join

  4. mysql多表联合查询

    转自:http://www.cnblogs.com/Toolo/p/3634563.html 多表连接,小分三种(笛卡尔积.内连接.外连接),多分五种 (笛卡尔积.内连接.左连接.右连接.全连接(my ...

  5. mysql中的模糊查询

    转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...

  6. mysql怎么限制某些查询语句的执行?

    mysql怎么限制某些查询语句的执行? 比如某些sql语句执行时间很长,超过10s,怎么样超过10s就不让其执行? 后续更新中...

  7. MySQL如何执行关联查询

    MySQL中‘关联(join)’ 一词包含的意义比一般意义上理解的要更广泛.总的来说,MySQL认为任何一个查询都是一次‘关联’ --并不仅仅是一个查询需要到两个表的匹配才叫关联,索引在MySQL中, ...

  8. mysql 存储过程:提供查询语句并返回查询执行影响的行数

    mysql 存储过程:提供查询语句并返回查询执行影响的行数DELIMITER $$ DROP PROCEDURE IF EXISTS `p_get_select_row_number`$$ CREAT ...

  9. Mysql 连接查询 Mysql支持的连接查询有哪些

    CREATE TABLE `chx` (   `id` VARCHAR(20) NOT NULL,   `name` VARCHAR(50) DEFAULT NULL,   `name2` CHAR( ...

随机推荐

  1. 2.5 webpack 进阶

    配置分离 code splitting 异步加载 理解 webpack chunk webpack 调试 2.5.1 配置分离 在大型项目中,可能 webpack.config.js 会变得越来越臃肿 ...

  2. DLL 调用 对话框 以及 如何获取调用dll 应用程序(窗口程序)的窗口句柄

    1.一般创建需要的窗口,转换成相应的窗口类: 声明一个导出函数,来处理窗口的显示,如: CTest test; extern "C" __declspec(dllexport) v ...

  3. Java 序列化和反序列化(二)Serializable 源码分析 - 1

    目录 Java 序列化和反序列化(二)Serializable 源码分析 - 1 1. Java 序列化接口 2. ObjectOutputStream 源码分析 2.1 ObjectOutputSt ...

  4. <人工智能>人工智能基础

    问题1:扔下圆球的位置(feature特征变量)变化,最终掉落奖项(label结果标签)的变化 feature ----输入 f(x) ----模型,算法 label ----输出 大量已知的数据,训 ...

  5. 「SNOI2019」通信 分治优化费用流建图

    题意: n 个排成一列的哨站要进行通信.第 i 个哨站的频段为 ai. 每个哨站 ii 需要选择以下二者之一: 1.直接连接到控制中心,代价为 W:2.连接到前面的某个哨站 j(j<i),代价为 ...

  6. hdu 3123 2009 Asia Wuhan Regional Contest Online

    以为有啥牛逼定理,没推出来,随便写写就A了----题非常水,可是wa了一次 n>=m  则n!==0 注意的一点,最后 看我的凝视 #include <cstdio> #includ ...

  7. 在SpringBoot 1.5.3上使用gradle引入hikariCP

    在SpringBoot 1.5.3上使用gradle引入hikariCP hikari来源于日语,是“光”的意思,号称“史上最快数据库连接池”,也是springboot2.0最新版默认的连接池.但是s ...

  8. Java Selenium起步

    先将录制的脚本导出来,转成java的格式 在Eclipse中编辑并运行test     2.1 新建一个Java project: File-New-Java Project     2.2 在上一步 ...

  9. Python Faker的使用 及 常用函数的查询

    安装faker  pip install faker faker的使用 引用:from faker import Faker 初始化:f=Faker(locale='zh_CN') # 默认是en_U ...

  10. python_django_中间件

    什么是中间件? 可以介入django的请求和响应的轻量级的底层插件,它其实就是一个python类,我们在settings配置文件中的↓↓↓↓,都是中间件 MIDDLEWARE = [ 'django. ...