zoukankan      html  css  js  c++  java
  • SQL笔记一:简单查询之单表查询、多表查询、别名

    一、单表查询语法
    单表查询-SELECT
    1、查询单表所有记录,显示所有字段值

    语法:SELECT * FROM 表名;

    2、查询单表所有记录,显示指定字段值

    语法:SELECT 字段1,字段2,...FROM 表名;

    3、条件查询

    语法:SELECT * FROM 表名 WHERE 条件1 OR|AND 条件2...;

    4、直接查询

    例子:SELECT 1; ---(常量)SELECT 1+2;----(计算器)

    5、调用函数

    例子:SELECT VERSION();  ---(版本)SELECT NOW();----(当前时间)

    查询表达式:

              语法:SELECT select_exp1,select_exp2...
              每个select_exp1表示要显示的一列,至少一个表达式
              多个表达式用逗号分隔
              使用星号(*)可以表示所有列
              使用表名.字段表示该表的指定字段,表名.*表示该表所有字段
              使用AS或者空格可以为查询表达式设置别名,别名可用于GROUP BY、ORDER BY或HAVING子句

    实例如下:


    二、多表查询语法
    多表查询

    SELECT 字段1,字段2... FROM 表1,表2...

    SELECT 字段1,字段2...FROM 表1,表2  WHERE 关联条件 AND|OR 过滤条件...

    先了解下笛卡尔积概念和原理:设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积

    示例:有两个表年级表grade和班级表class,要查出高一年级底下所有的班级信息。
       
    分析过程:
    1.查询涉及到的表:grade,class
    2.查询字段信息:没有特定的即用*表示
    3.关联条件:grade.id=class.grade_id
    4.过滤条件:grade.name="高一年级"
    所以最终得到的sql如下:
    select
      *
    from
      grade,class
    where
      grade.id=class.grade_id
    and
      grade.name="高一年级"
    实例如下:

     

    3、别名的概念与使用别名

    别名,可以理解为另外的名称
    通过别名,可以提高查询的可读性
    MySQL的别名分为列别名和表别名
    可以使用ORDER BY,GROUP BY和HAVING子句中的列别名来引用该列
     

    列别名

    场景
    列的名称是表达式,查询时输出难以理解,通过别名语法给这样的列一个描述性的名称

    列名太长,设置一个简单的别名

    语法
    SELECT [column_1 | expression] AS desc_name FROM table_name;

    给列添加别名,使用AS关键字,后面再跟别名,如果别名有空格,则使用‘’进行引用,如AS ‘desc  name’

    表别名

    可以使用别名为表添加不同的名称
    table_name AS table_alias

    其中AS关键字是可选

    一般在连接查询或者子查询中使用别名

    使用别名
    使用别名可以让查询语句简洁、可读性高

    例子如下:

  • 相关阅读:
    pandas--对axis=0,axis=1的理解
    启动secondarynamenode时报错
    5月27日经历问题(在有框架的情况下从无到有增加一套功能)
    5.21工作记录(修改页面跳转,去掉多余的js;增加图片清除功能)
    工作记录520
    5月14日经历问题
    idea快捷键
    Linux下常用redis指令
    初识lunix
    Redis
  • 原文地址:https://www.cnblogs.com/123blog/p/10238127.html
Copyright © 2011-2022 走看看