日记(2016/5/31)

龙樱 . 2015 / 5 /31

《SQL必知必会》
数据库的概念:

数据库(保存有组织的数据的容器)
数据库管理系统(DBMS)数据库软件
表(table,某种特定的类型数据的结构化清单,同一类型的数据或清单)
列(column,表由列组成,列存储表中某部分的信息)
*数据类型(所允许的数据的类型,每个表列都有相应的数据类型,)
**注意:数据类型及其名称是SQL不兼容的一个主要原因。虽然大多数的基本数据类型得到了一致的支持,但是许多高级的数据类型却没有。更糟的是,偶然会有相同的数据类型在不同的DBMS中具有不同的名称。对此用户毫无办法。
行(row,表中的一个记录)
主键(primary key,一列或一组列,其值能够唯一标识表中的每一行,唯一标识表中每行的这个列(或几列)称为主键)
**主键列中的值不允许修改或更新。主键值不能重用

SQL是什么

SQl是Structured Query Language的缩写。结构化查询语言。

怎么使用SELECT

SQL语句是由简单的英语单词构成的,这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的,
为了使用SELECT,必须至少给出两条信息——想选择什么,以及从什么地方选择
(1)检索单个列:
输入:SELECT prod_name
     FROM Products;
意义:上述语句利用SELECT语句从Products表中检索一个名为prod_name的列,所需的列名写在SELECT关键字后,FROM关键字指向从哪个表中检索数据;
输出:prod_name
     ------------
     Fish bean bag toy
     Bird bean bag toy
     Rabbit bean bag toy
     8 inch teddy bear
     12 inch teddy bear
     18 inch teddy bear
     Raggedy Ann
     King doll
     Queen doll
 提示:如果没有明确排序查询结果,则返回的顺序可能是数据被添加到表中的顺序,也可能不是,只要返回相同数目的行,就是正常的。
      多条SQL语句必须用分号分隔,多数DBMS不需要在单条SQL语句后加分号,但是加上没有坏处。
      SQL语句不区分大小写,但是一般对SQL关键字使用大写,而对列名和表明使用小写。
      空格和\n被忽视

(2)检索多个列:
输入:SELECT prod_id,prod_name,prod_price
      FROM Products;
分析:一个表中检索多个列,仍然使用相同的SELECT语句,唯一的不同的是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔,但是最后一个列名不能加逗号。
输出:prod_id    prod_name           prod_price
     -------    ----------------    -----------
     BNBG01    Fish bean bag toy     34900
     BNBG02    Bird  bean bag toy    34900
     BNBG03    Rabbit bean bag toy   34900

总结:从上述输出可以看到,SQL语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。因此,表示,一般在显示该数据的应用数据中规定。通常很少直接使用实际检索出的数据(没有应用程序提供的格式)

(3)检索所有列:
输入:SELECT *
     FROM Products;
分析:如果给定一个通配符(*),则返回表中所有列。列的顺序一般是列在表定义中出现的物理顺序,但并不总是如此。不过,SQL数据很少这样(通常,数据返回给应用程序,根据需要进行格式化,再表示出来) 
警告:除非需要所有列,不然最好不要使用通配符(*)
提示:使用通配符有一个大优点。由于不明确指定列名(因为*检索每一列),所以能检索出名字未知的列。

(4)检索不同的值
假如输入:SELECT vend_id
     FROM Products;
则会输出:
    vend_id
    -------
    BRS01
    BRS01
    BRS01
    DLL01
    DLL01
    DLL01
    FNG01
    FNG01
检索出不同值输入:SELECT DISTINCT vend_id
                FROM Products;
分析:只返回不同的vend_id
           输出:vend_id
                --------
                  BRS01
                  DLL01
                  FNG01
警告:DISTINCT作用于所有的列  

(5)限制结果
使用关键字来限制返回的多少行,但是不同的数据库中使用方法不同
输入:(SQL Server和Access)
    SELECT TOP 5 prod_name
    FROM Products;
输出:prod_name
    -----------
    8 inch teddy bear
    12 inch teddy bear
    18 inch teddy bear
    Fish bean bag toy
    Bird bean bag toy
分析:使用了SELECT TOP 5,只检索前5行数据

输入:(DB2)SELECT prod_name
    FROM Products
    FETCH FIRST 5 ROWS ONLY

输入:(Oracle)
    SELECT prod_name
    FROM Products
    WHERE ROWNUM <= 5;  --使用行计数器ROWNUM来计算行

输入:(MySQL、MariaDB)
    SELECT prod_name;
    FROM Products
    LIMIT 5;   --返回不超过5行的数据

输入:SELECT prod_name
    FROM Products
    LIMIT 5 OFFSET 5; 
    #第一个数字指从哪儿开始,第二个数字是检索的行数
    #如果总共只有9行,那么就返回4行。
    #从第0行开始算

注释:SELECT prod_name --这是一条注释
    #这是一台注释,该行从开头到行尾都是注释
    /*   */ 概括的范围内都是注释  

【总结 学习如何检索数据 2016/5/31 03:18】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值