yui 发表于 2018-10-9 06:44:30

mysql基础(七)select语句

单表查询:  
    SELECT
  
      [ DISTINCT ]
  
      
  
      select_expr [,select_expr ...]
  
      
  
      
  ]
  

  

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

  
    WHERE子句:指定条件,实现过滤功能
  过滤条件:
  算数运算:+   -   *   /   %><>=   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 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


页: [1]
查看完整版本: mysql基础(七)select语句