SQL-查询(一)

查询机制

  1. 打开mysql命令行工具,使用用户名和密码登陆
  2. 一旦服务器通过用户名和密码的验证,则为用户成立一个数据库链接
  • 该连接从应用程序发出请求后一直保持,直到应用程序释放连接
  • 数据库服务器会为每个连接赋予一个标识符(ID),当发生异常情况时,ID可以提供帮助(手动结束有问题的查询)。
  1. 执行查询语句,每个查询会进行以下检查:

用户是否有权限执行该语句?
用户是否有权限访问目标数据?
语句的语法是否正确?

  1. 通过测试后,查询会被传递给查询优化器,负责为查询找到最有效率的执行方式。

如何建立索引、分析执行方案等。


查询语句

query子句
select:确定结果集中应该包含那些列
from: 指明所要提取数据的表,以及这些表是如何连接的
where:过滤不需要的数据
group by:用于对具有相同列值的行进行分组
having:过滤掉不需要的组
order by:按一个或多个列,对最后结果集中的行进行排序


SELECT
  1. 列的别名:mysql命令行工具为查询所返回的每个列提供了默认标签,但是可以使用自定义标签。
    1)在每个查询的列后面直接加空格和别名(mysql)
    2)在每个别名前面使用as关键字(java、c#)
  2. 去除重复的行:使用dinsinct去除重复的行,但是需要先排序(会十分耗时)

SELECT DISTINCT columns FROM table_name;

FROM

一般包含三种类型的表:
1)永久性表(create table创建的);
2)临时表(子查询所返回的表);
3)虚拟表(create view子句所创建的视图)。

视图是存储在数据字典中的查询,行为像一张表,但实际上并不拥有任何数据
CREATE VIEW table_view AS SELECT ... ...;
SELECT ... FORM table_view;

定义表别名:与列的命名方式类似

Group By

对数据库在返回结果前对数据进行提炼,一种方式是group by,用于根据列值对数据进行分组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值