1. 首页 > MySQL教程 > 正文

sql语句学习教程03_select_select查询_select语句_sql查询语句

1.select语法与表达式

select查询是SQL语言中的基础,但也往往最复杂的SQL语句也是查询语句,掌握好了各种条件下的查询,也就能写出复杂的过程、函数,也就能快速掌握复杂条件下的新增、更新、删除等语句,一个完整的SQL语法框架,参考如下:
SELECT  [表名|视图名].字段名
FROM   表名|视图名
WHERE  查询条件
GROUP BY  分组
HAVING     分组后再过滤筛选
LIMIT  限制显示多少行记录
ORDER BY [ASC | DESC] 排序,升序|降序

2.SELECT查询列

用select语句开头,后面跟着需要显示的列,列可以来自于在from中指定的表或视图的字段,也可以是表达式、函数、甚至是子查询,但表达式、函数或者是子查询,当做查询列使用时,在同一行记录中,只能返回单一属性值。如果是多表查询,在查询列中出现的列在多个表中都存在,就必须明确指明是哪个表的列,案例如下:

fgedu.net@mysql> select 10+20, 10*20;
+——-+——-+
| 10+20 | 10*20 |
+——-+——-+
|    30 |   200 |
+——-+——-+
1 row in set (0.00 sec)

fgedu.net@mysql> select NOW(),UNIX_TIMESTAMP();
+———————+——————+

| NOW()               | UNIX_TIMESTAMP() |

+———————+——————+

| 2019-09-01 09:08:57 |       1567300137 |

+———————+——————+

1 row in set (0.05 sec)

fgedu.net@mysql> select yg.department_id from yg, bm where yg.department_id=bm.department_id limit 1;

+—————+
| department_id |
+—————+
|            10 |
+—————+

1 row in set (0.01 sec)

3.FROM子句及别名

From字句是用来指定查询的数据源,可以是表、视图,也可以是一个查询结果集,如果是一个子查询,那必须给这个子查询设置一个别名,别名是一种代号,可以为列、表、视图、子查询设置别名,设置之后,就可以用别名来指代原来的对象(仅在当前SQL语句中有效),好处是便于理解、引用,简化SQL复杂度。

案例1:在需要设置的对象后面 加上“as 别名”即可,“as 也可以省略”。
fgedu.net@mysql> select * from (select last_name from yg limit 5) a;
+———–+
| last_name |
+———–+
| Abel      |
| Ande      |
| Atkinson  |
| Baer      |
| Baida     |
———–+
5 rows in set (0.00 sec)

案例2:为列设置别名后,就以别名的形式显示列标题
fgedu.net@mysql> select a.department_id dept from yg a, bm b where a.department_id=b.department_id limit 1;
+——+
| dept |
+——+
|   60 |
+——+

1 row in set (0.00 sec)

4.虚拟表DUAL

DUAL表是一个虚拟的表,意思就是不是真实存在的,可以理解成是为了让语法结构更加完整而杜撰出来的,实际上在MySQL中不像在ORACLE中那么严谨,MySQL中完全可以省略掉from dual这一部分语句,例如:下面两句语句在MySQL中是一样的。
select NOW() from dual;
select NOW();

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息