mysql基础(六)select语句

单表查询:
    SELECT
        [ DISTINCT ]
        [SQL_CACHE | SQL_NO_CACHE]
        select_expr [,select_expr ...]
        [FROM table_references [ WHERE where_condition ]
        [GROUP BY {col_name | expr |}] [HAVING where_condition] 
	[ORDER BY [ASC | DESC]]
  

	DISTINCT:数据去重
	SQL_CACHE:指定存入缓存
	SQL_NO_CACHE:指定进行缓存

    WHERE子句:指定条件,实现过滤功能
	过滤条件:
	    算数运算:+   -   *   /   %  >  <  >=  <=
	    逻辑运算:AND:与运算  OR:或运算  NOT:非运算
	    字符比较:=  !=    
	    列表元素比较:IN (元素1,元素2,元素3,...)
	    IS NULL:空
	    IS NOT NULL:非空
	    LIKE:模糊匹配,能不用尽量不用
	    RLIKE:基于正则的模糊匹配,能不用尽量不用

    GROUP BY子句:更具指定的条件把匹配的结果进行分组,实现"聚合"运算
        常用函数:
	    sum(条件)		#求和	    
            max(条件)		#最大值	    
	    min(条件)		#最小值	    
	    avg(条件)		#平均值	    
	    count(条件)		#统计记录数
	    HAVING:对GROUP BY之后的结果进行过滤

示例:
    mysql> CREATE DATABASE mydb;		#创建测试数据库
    mysql> USE mydb;
    mysql> CREATE TABLE test (id int(50),name varchar(50),qq int(15),gender char(2));#创建测试表

    mysql> INSERT INTO test VALUES(1,‘zhangshan‘,12345,‘F‘);    #插入测试数据
    mysql> INSERT INTO test VALUES(2,‘lisi‘,123142,‘F‘);
    mysql> INSERT INTO test VALUES(3,‘zsf‘,124312,‘M‘);
    mysql> INSERT INTO test VALUES(4,‘yyy‘,124312,‘F‘);
    mysql> INSERT INTO test VALUES(5,‘ytt‘,124312,‘M‘);

    单表查询示例:
    mysql> SELECT * FROM test WHERE id>2 AND id<5;		#查询ip大于2小于5的数据
    mysql> SELECT * FROM test WHERE id>2 GROUP BY gender;	#对性别进行分组
    mysql> SELECT sum(id),gender FROM test GROUP BY gender;	#对性别进行分组,并求他们的id之和
    mysql> SELECT * FROM test GROUP BY gender HAVING id>2;	#对性别进行分组,显示id大于2的组
    		

    多表关联查询:
    mysql> CREATE TABLE test2 (emain varchar(200),age int(10));		#创建测试环境
    mysql> INSERT INTO test2 values(‘[email protected]‘,10);
    mysql> INSERT INTO test2 values(‘[email protected]‘,15);
    mysql> INSERT INTO test2 values(‘[email protected]‘,20);

    mysql> SELECT test.id,test2.age FROM test,test2 WHERE test.id>2 AND test2.age>10;
    	test.id			#第一章表的id字段
	test2.age		#第二章表的age字段
	test			#第一章表 表名
	test2			#第二章表 表名
	test.id>2 AND test2.age
#拼接显示test的id字段和test2的age字段,但是test的id字段必须大于2并且test2的age字段必须大于10

    mysql> SELECT * FROM test,test2 WHERE test.id>2 AND test2.age>10;
    #拼接显示test,test2的所有字段,但是test的id字段必须大于2并且test2的age字段必须大于10
时间: 2024-11-05 14:45:32

mysql基础(六)select语句的相关文章

mysql基础篇 - SELECT 语句详解

基础篇 - SELECT 语句详解 SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELECT 语句的用法. 二.实验准备 在正式开始本实验内容之前,需要先下载相关数据库表,搭建好一个名为mysql_shiyan 的数据库(有三张表:department,employee,project),并向其中插入数据. 具体操作如下,首先输入命令进入 /home/shiyanlou/Desktop 目录: cd /

Mysql基础入门-SQL_DDL语句

一.mysql数据库介绍: mysql数据库属于关系型数据库,关系型数据库是指采用关系模型来组织数据的数据库,似于Excel函数关系表.保持数据的一致性是关系型数据库的最大优势 关系型数据库瓶颈: 1.高并发读写硬盘I/O瓶颈; 2.对于关系型数据来说在一张海量数据表中查询效率是非常低的: 3.横向扩展困难,当一个应用系统用户量访问与日俱增的时候数据库没有办法像web server那样简单的通过添加更多的硬件或者节点来扩展和提供负载能力. 对于并发量不高及数据量较小的应用系统mysql还是占有很

SQL 基础:Select语句,各种join,union用法

一.基本的SELECT语句 1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯. 虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多.相应的,也会降低应用程序的性能及网络性能. 良好的规则是只选所需. 2. join子句 join是用来定义如何从多个表中选取数据并组合成一个结果集. join必需是因为(1)我们所要获取的所有信息并不都在一个表中,或者(2)所要返回的信息都在一个表中,但是其上设置的条件信息却在另一个表中. join的共同点

SQL基础语法—select语句

1 select语句介绍 select语句是值从现存的一个或多个表中查看满足条件的数据,其基本语法如下: Syntax: SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [

MySQL—基础(SQL语句)

SQL语句: DDL(Data Definition Languages)语句:数据定义语言:操作对象:数据段.数据库.表.列.索引等. 数据库: 创建:CREATE DATABASE dbname; 删除:DROP DATABASE dbname; 表: 创建:CREATE TABLE tablename( id INT(5) auto_increment(自增关键词) PRIMARY KEY, name VARCHAR(20) NOT NULL); 删除:DROP TABLE tablena

MySQL基础六

1 变量 1.1 变量的分类 系统变量: 全局变量: 会话变量: 自定义变量: 用户变量: 局部变量: 1.2 系统变量 1.2.1 系统变量的基本介绍 变量是由系统提供的,不是用户定义,属于服务器层面. 1.2.2 系统变量的使用 查看所有的系统变量 -- global表示全局 -- session表示回话 show global|session variables; 查看满足条件的部分变量 -- global表示全局 -- session表示回话 show global|session va

Mysql基础之DML语句

增 1 给表的所有字段插入数据 INSERT INTO 表名 VALUES(值1,值2,值3,...,值n): 2 给表的指定字段插入数据 INSERT INTO 表名(属性1,属性2,...,属性n) VALUES(值1,值2,值3,...,值n): 3 同时插入多条记录 INSERT INTO 表名[(属性列表)] VALUES(取值列表1),(取值列表2)...(取值列表n): 删 DELETE FROM 表名 WHERE 条件表达式 改 UPDATE 表名 SET 属性名1=取值1,属性

MySql基础架构以及SQL语句执行流程

01. mysql基础架构 SQL语句是如何执行的 学习一下mysql的基础架构,从一条sql语句是如何执行的来学习. 一般我们写一条查询语句类似下面这样: select user,password from mysql.user; 这样就可以返回一个结果,但却不知这条语句的内部执行流程. 如下是mysql的逻辑架构图: Mysql可以分为Server层和存储引擎层二部分. Server层有连接器/缓存/分析器/优化器/执行器,涵盖了mysql的很多核心功能. 存储引擎层负责数据的存储和读取,支

oracle sql 基础(二):select 语句

为了从数据库中查询数据,你需要用SQL语言中使用最多的SELECT语句.我们分别介绍SELECT语句的基础语法.子查询.从多表中查询数据,然后再进行实例解析. 一.SELECT语句的基础语法 SELECT语句就像叠加在数据库表上的过滤器,即选择查询用于定位数据库特定的列和行.下面是SELECT语句的基础语法.  SELECT [ALL|DISTINCT SELECT_LIST FROM {table_name|view_name} [WHERE search_condition] [GROUP

MYSQL:基础—存储过程

快速入门 理解:  迄今为止,我们学过的大多数SQL语句都是针对一个或多个表的单条语句.但是并不是所有的操作都是可以用一条语句来完成的,经常有一些操作是需要多条语句配合才能完成.我们引入的存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 简单来说,存储过程就是为以后使用而保存的一条或多条SQL语句.可将其视为增强版的批处理文件. 使用存储过程的好处: ? 通过把处