mysql基础(七)select语句
admin
2023-05-18 11:22:11
0
单表查询:
    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('123@qq.com',10);
    mysql> INSERT INTO test2 values('456@qq.com',15);
    mysql> INSERT INTO test2 values('789@qq.com',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


相关内容

热门资讯

河南深夜通报:查实作弊 针对近期备受关注的2026年河南省“三支一扶”计划招募相关舆情,河南省“三支一扶”领导小组协调办公室...
高通机器人演示翻车,DeepM... 人形机器人领域正呈现出截然不同的两面性。一端是高通(Qualcomm)机器人的尴尬演示:在展示搭载最...
小米多款主力手机涨价,店员:很... 8月2日,小米商城显示,多款手机主力机型价格上调300元至500元不等。其中,REDMI Turbo...
主持人陈璇采访《奥德赛》主创人... 诺兰新片《奥德赛》周四举行北京首映礼,上海外语频道主持人陈璇采访外籍主创人员时半蹲弯腰,背对镜头,向...
初创公司推Arm架构AI服务器... 由前谷歌和Meta工程师于2023年创立的Majestic Labs,近日发布了一款旨在挑战英伟达G...
日元跌跌不休,美国罕见出手,外... 【环球时报驻日本特约记者 王军】在日元跌至近40年来最低水平后,日本政府和日本银行连续出手干预汇市,...
特朗普再提珍珠港事件 据朝日电视台8月3日报道,美国总统特朗普表示,美国政府出手买入日元实施汇率干预,目的是帮扶日本。2日...
火焰山中,重大发现! 几乎没有一块壁画是完整的,尤其是佛像脸,要么被铲掉,要么被戳坏,有些双目被精准地戳中,伤痕累累。这里...
莫斯科咖啡馆爆炸案:传俄军高官... 综合法媒BFM、Franceinfo新闻台报道,当地时间8月1日晚,俄罗斯首都莫斯科市中心知名高档意...
特朗普:霍尔木兹海峡已有协议,... 财联社8月3日电,美国总统特朗普表示,霍尔木兹海峡已有协议,无核化也将达成协议。正在以谈判的形式与伊...