SQL基础教程学习(三)SELECT基础查询

来源:互联网 发布:苏州聚合数据招聘 编辑:程序博客网 时间:2024/06/05 22:53

版本声明:本文为作者原创文章,转载请注明出处! http://blog.csdn.net/AndroidXiXi

本文根据《SQL基础教程第二版》(作者:[日本]MICK)的部分内容实践、整理得出,旨在对所学知识进行梳理

全面系统学习请参考原著书籍http://product.dangdang.com/25094702.html



数据库将数据进行保存之后,可以通过查询语句对数据进行查询。现实中的数据库中的表有时比较复杂,但是SQL语句可以在查询的时候附加指定的条件进行筛选、排序,从海量的数据中查出其中关注的数据,很方便


列的查询

可以通过SELECT语句选取出表中的数据,通过SELECT语句查询并选出必要数据的过程称为匹配查询或查询(query)

    -- 查询语句语法    SELECT <列名>,...    FROM <表名>;    -- 从Product中查询product_name和purchase_price    -- 可以查询多列,通过逗号分割    -- 查询结果的顺序和SELECT子句中指定列的顺序相同    SELECT         product_name,purchase_price    From Product;

通过MySQL光标拖动,选中上面的代码,点击执行,结果:
这里写图片描述

子句:SQL语句的组成要素,是以SELECT,FROM等作为起始的短语
如上,最简单的SELECT语句包含两个部分:

  • SELECT子句 希望从表中查出的列的名称
  • FROM子句 选取出数据的表的名称


查询所有的列

可以通过星号(*)可以查询出所有的列,但是就无法设定查询结果的顺序了,会根据CREATE TABLE的时候定义的顺序显示,准确的说,查询结果和最后一次对表进行创建或者定义变更(ALTER TABLE)之后的结构相同

    -- 使用星号(*)    SELECT *    FROM <表名>;    -- 查看表中所有数据    SELECT *     FROM shop.product;

执行结果:
这里写图片描述



有时服务器工作人员负责对数据库表的建立,对列的命名需要符合编程规范,但是其他工作人员也需要从数据库中查询数据,例如product_id这样的列名就不便于非技术人员分析了,可以使用AS关键字修改查询结果的显示,使用AS关键字也称为为列设置别名

    -- AS关键字使用语法    <列名> AS 希望的显示的名称    -- 为列设定别名    -- 别名可以使用中文,使用中文时需要用单引号('')    SELECT        product_id AS id,        product_name AS name,        purchase_price AS '购进价格'    From product;

执行结果:
这里写图片描述


常数的查询

在SELECT子句中除了指定列名,也可以指定常数,如下:

    -- 常数的查询    SELECT        '商品' AS String,        38 AS Number,        '2009-09-21' AS date,        product_id,        product_name    FROM product;

执行结果:
这里写图片描述
结果可以看出,指定的常数填充所有数据行之中,填充的那一列就用AS关键字之后的别名


查询数据去重

现实中,即使经过条件筛选后,查询结果也可能有很多条数据,可以通过DISTINCT关键字去除查询结果的重复数据

    -- 1、查询product_type    SELECT product_type      From Product;    -- 2、去重查询product_type    SELECT DISTINCT product_type     FROM Product;

1执行结果:
这里写图片描述

2去重后:

这里写图片描述

注意:

  • 如果对多行进行DISTINCT查询,那就要将多个列一起比较,所有指定的列数据都相同才认为需要去重
  • NULL也是一条数据,DISTINCT对多行NULL也会生效,合并为一行


WHERE子句

通过SELECT、FROM子句可以指定查询数据的条件,还有其他子句可以进一步缩小范围,实现更准确的查询,WHERE子句可以指定查询的条件。

    -- WHERE子句的语法    SELECT <列名>,...    FROM <表名>    WHERE <条件表达式>;    -- 根据WHERE语句来选择记录    SELECT product_name,product_type    FROM product    WHERE product_type ='衣服';

执行结果:
这里写图片描述

特别注意,顺序是先执行WHERE子句,筛选出符合条件表达式的数据,再进一步执行SELECT子句。了解子句的执行顺序对SQL语句执行效率有帮助

原创粉丝点击