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关键字是可选

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

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

例子如下:

 

posted @ 2019-01-08 11:43  吃个鱼丸  阅读(1324)  评论(0编辑  收藏  举报