Mysql单表和多表查询基础

使用关键字:select

select:按需要,按标准,按条件在对应关系上挑选对就字段或对就行的工具或指令。

查询语句的3种类型:1.简单查询;2.多表查询;3.子查询(嵌套查询)

select语句和用法:

SELECT * FROM tb_name;  ‘*’表示所有字段。

SELECT field1,field2,... FROM tb_name;查询指定的字段(投影方式)

SELECT [DISDINCT]* FROM tb_name WHERE qualification;通过WHERE过滤搜索码,找出符合条件的行(选择方式)

    DISTINCT:表示相同的值只显示一次

子句:

   FROM:后面可以是单个表,多个表或其他SELECT语句。

   WHERE:后面是‘布尔关系表达式’,如

      关系操作:>,<,>=,<=  ,=,!=,<=>(NULLsafe equal to)

逻辑操作:AND ,OR,NOT

BETWEEN num1 AND num2:等同于(>=num1 AND <=num2);

         注意:在做数值比较时不需加‘’,而字符比较时则需“”或‘’。

LIKE ‘‘:‘%‘表示任意多个字符,‘_’表示任意单个字符。

         RLIKE RegExp:以正则表达式作模式匹配。

        IN (value1,value2,...):select取值与在(value1,value2,...)范围内的值作比较

        IS NULL,IS NOT NULL:在判断是否为空值时不能用‘=’号,而应用‘IS’.

ORDER BY field_name{DESC|ASC}:降序和升序排序

   LIMIT [offset,] count:只显示count以前的行,或从‘offset+1’至count行之间的内容。

   AS:select field_name1 AS field_name2 from ...用作字段别名 。

   聚合运算:AVG(field),SUM(field),MAX(field),MIN(field),COUNT(field)

   GROUP BY field:根据字段内容进行分组,分组一般用来做聚合运算

         HAVING where_condition:对GROUP BY的结果再次进行过滤,判断条件同WHERE。

SELECT AVG(field) FROM tb_name GROUP BY qualification HAVING ‘exp‘

  

时间: 2024-11-20 22:25:58

Mysql单表和多表查询基础的相关文章

MySQL单表的CRUD及多表查询

数据库表的增删改查操作: 增.删.改 查: 单表查询 简单查询.where约束.group by分组.聚合查询.having过滤.order by排序.limit限制.正则匹配 多表查询 连表查询:交叉查询.>內连查询.左外连接查询.右外连接查询.全外链接查询.连接结果筛选查询 子查询 :带关键字in的子查询.带比较运算符的子查询.带关键字exists的布尔判断结果查询 表记录增删改总结: MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包

【知了堂学习笔记】SQL查询基础语句(单表查询、多表查询)

SQL查询基础 1.单表查询 从数据库中查找数据 专业的称谓又称为投影 基本查询语句结构 select 列 from 表 * 所有列不是所有其他东西 查询所有数据 例:SELECT * FROM t_studen 需要执行比较细的操作  加上条件筛选:查询id为2号的学生信息 SELECT * FROM t_student WHERE id=2; 筛选的执行步骤 例:SELECT * FROM t_student WHERE id=2; SELECT *          (3) 再查询  筛选

0x06 MySQL 单表查询

一 单表查询语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键字执行优先级(重点) 重点中的重点:关键字的执行优先级 1)from 2)where 3)group by 4)having 5)select 6)distinct 7)order by 8)limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一

mysql 增删改查,表查询(重点)

十一.数据的增删改: 本节重点: 插入数据 INSERT 更新数据 UPDATE 删除数据 DELETE 再来回顾一下之前我们练过的一些操作,相信大家都对插入数据.更新数据.删除数据有了全面的认识.那么在mysql中其实最重要的不是这三大操作,而是查数据最重要,下节课知晓 一. 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 1.使用INSERT实现数据的插入 2.UPDATE实现数据的更新 3.使用DELETE实现数据的删除 4.使用SELECT查询数据以及.

MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?

MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计? 昨天面试新人的时候,遇到了这么一个问题,按照自己的想法大体聊了一些,但大多是感性的,并没有完整的了解why and how. 今天查了一些相关的资料,包括<MySQL性能调优与架构设计>.<高性能Mysql>,慢慢的整体理解,请大家指正. 之一,为什么要分表? 分表,按形式,有水平分表和主附分表.水平分表常见于按ID取模或者按日期将相同表结构的内容散列到不同的表上,主附分表常见于有对应关系的多张表,通过

单表和多表查询

单表和多表查询 一.增删改查完整语句 增 格式:insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ..., (数据1[, ..., 数据n])]; 查 格式:delete from [数据库名.]表名 [条件]; 改 格式:updata [数据库名.]表名 set 字段1=值1[, ..., 字段n=值n] [条件]; 查 格式:select [distinct] 字段1 [[as] 别名1],...,字段

mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表

之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表,我是按月分的,每个月一张表,这时候的问题是 数据库有多张同样的分表如何根据条件查询? 在进行分页的时候如何计算总记录数?如何查询出所有分表? 每个月的新表是如何创建?系统如何自动创建? 不确定哪个分表的情况如何查询某一条详细记录? 分表查询分表查询可以用union或者union all进行查询uni

MySQL单表百万数据记录分页性能优化

原文地址:http://www.cnblogs.com/lyroge/p/3837886.html MySQL单表百万数据记录分页性能优化 背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行. 测试环境: 先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息 use infomation_schemaSELECT * FROM TABLES WHERE TABLE_SCHEMA = 'dbna

MySQL - 建库、建表、查询

本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程.mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果.mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容.使用mysql的两个方法都在这里涉及. 为了看清由mysql提供的一个选择项目表了,用--help选项调用它: shell> mysql --help 本章假定mysql已经被安装在你的机器上,并

mysql四-2:多表查询

一.介绍 本节主题: 多表连接查询 复合条件连接查询 子查询 准备表: #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); #插入数据 i