zoukankan      html  css  js  c++  java
  • SQL-基础学习1--SELECT,LIMIT,DISTINCT,注释

    所使用的数据库资料在:数据库资料
    1.1 基础概念
    1.数据库(database)
    保存有组织的数据的容器(通常是一个文件或一组文件)
    注意:常用的mysql,等是数据库管理系统DBMS;由这些软件创建和操作的容器才是数据库;
     
    2.表(table)
    表是一种结构化的文件,可用来存储某种特定类型的数据;可以保存顾客清单,产品目录等其他信息;就像是,把东西往抽屉里放,并不是随便扔在抽屉里就行,而是在抽屉里放一些文件夹,将相关东西放在相关的文件夹里;这里抽屉,便是数据库,是个容器,而文件夹便是 表,是用来存储特定类型的数据;
     
    名称:
    表的名称在一个数据库中应该是唯一的;
     
    模式:
    关于数据库和表的布局及特性的信息。
    比如:定义了数据在表中如何存储,存储什么样的数据,数据如何分解,各部信息如何命名等;
     
    3.列(column)和数据类型
    表由列组成。列存储表中某部分的信息。
    将表想象成一个电子表格,网格中每一列存储着某种特定的信息。例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编码全都存储在各自的列中。
     
    数据类型
    所允许的数据的类型。每个表列都有相应的数据类型,它限制(或允许)该列中存储的数据
     
    4.行(row)
    表中的一个记录。
    表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。
     
    5.主键
    一列(或一组列),其值能够唯一标识表中每一行。
    表中每一行都应该有一列(或几列)可以唯一标识自己。顾客表可以使用顾客编号,而订单表可以使用订单ID。雇员表可以使用雇员ID或雇员社会安全号。
     
    主键满足的条件:
    • 任意两行都不具有相同的主键值
    • 每一行都必须有一个主键值(主键列不允许NULL值)
    • 主键列中的值不允许修改或更新
    • 主键值不能重用(如果某行从表中删除,它的主键值不能赋给以后的新行)
     
    1.2 SQL-Structured Query Language
    任务--提供一种从数据库中读写数据的简单有效的方法。
     
    优点:
    • SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL;
    • SQL简单易学。它的语句全都是由有很强描述性的英语单词组成,而且这些单词的数目不多。
    • SQL虽然看上去很简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
     
    第2课  检索数据
     
    2.1   SELECT语句
    用途是从一个或多个表中检索信息。
    检索一列
    输入:
    SELECT prod_name FROM Products;
    输出:
    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
    分析:上述语句利用SELECT语句从Products表中检索一个名为prod_name的列。所需的列名写在SELECT关键字之后,FROM关键字指出从哪个表中检索数据。
    注意:检索出来的数据是未排序的,因为没有明确排序查询结果;
              多条SQL语句用分号隔开;
     
    在处理SQL语句时,其中的所有空格都会被忽略;包括回车符;SQL语句仅以分号结束
     
    检索多列
    输入:
    SELECT prod_id, prod_name, prod_price
    FROM Products;
    输出:
    prod_id       prod_name                prod_price
    ---------     --------------------     ----------
    BNBG01        Fish bean bag toy        3.4900
    BNBG02        Bird bean bag toy        3.4900
    BNBG03        Rabbit bean bag toy      3.4900
    BR01          8 inch teddy bear        5.9900
    BR02          12 inch teddy bear       8.9900
    BR03          18 inch teddy bear       11.9900
    RGAN01        Raggedy Ann              4.9900
    RYL01         King doll                9.4900
    RYL02         Queen dool               9.4900
    检索所有列
    SELECT *
    FROM Products;
    警告:使用通配符
    一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
    提示:检索未知列
    使用通配符有一个大优点。由于不明确指定列名(因为星号检索每一列),所以能检索出名字未知的列。
     
    2.2   检索不同的值
    即只显示不同的值,相同的只显示一次;
    关键字:DISTINCT
    如:
    输入:
    SELECT vend_id
    FROM Products;
    输出:
    vend_id
    ----------
    BRS01
    BRS01
    BRS01
    DLL01
    DLL01
    DLL01
    DLL01
    FNG01
    FNG01
    而:
    输入:
    SELECT DISTINCT vend_id
    FROM Products;
    输出:
    +---------+
    | vend_id |
    +---------+
    | BRS01   |
    | DLL01   |
    | FNG01   |
    +---------+
    3 rows in set (0.00 sec)
    分析:
    SELECT DISTINCT vend_id告诉DBMS只返回不同(具有唯一性)的vend_id行,所以正如下面的输出,只有3行。如果使用DISTINCT关键字,它必须直接放在列名的前面。
     
    注意:不能部分使用DISTINCT
    DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。
     
    2.3   限制结果
    SELECT语句返回指定表中所有匹配的行,很可能是每一行。如果你只想返回第一行或者一定数量的行,该怎么办呢?这是可行的,但是在各种DBMS中不一样
    在MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT 子句,像这样:
    输入:
    SELECT prod_name
    FROM Products
    LIMIT 5;
    输出:
    prod_name
    -----------------
    8 inch teddy bear
    12 inch teddy bear
    18 inch teddy bear
    Fish bean bag toy
    Bird bean bag toy
    分析▼
    上述代码使用SELECT语句来检索单独的一列数据。LIMIT 5指示MySQL等DBMS返回不超过5行的数据.
     
     
    如果想得到后面5行的数据,像这样:
    输入:
    SELECT prod_name
    FROM Products
    LIMIT 5 OFFSET 5;
    输出:
    prod_name
    -------------------
    Rabbit bean bag toy
    Raggedy Ann
    King doll
    Queen doll
    分析▼
    LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数。
    所以,LIMIT指定返回的行数。带OFFSET的LIMIT指定从哪儿开始。
     
    注意:第0行
    第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1会检索第2行,而不是第1行。
     
    提示:MySQL和MariaDB快捷键
    MySQL和MariaDB支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4。使用这个语法,,之前的值对应LIMIT, ,之后的值对应OFFSET。
     
     
    2.4   使用注释
    SELECT prod_name    -- 这是一条注释
    FROM Products;
    分析▼
    注释使用-- (两个连字符)嵌在行内。-- 之后的文本就是注释,例如,这用来描述CREATE TABLE语句中的列就很不错。
     
    多行注释
    /* SELECT prod_name, vend_id
    FROM Products; */
    SELECT prod_name
    FROM Products;
    注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。这种方式常用于给代码加注释,就如这个例子演示的,这里定义了两个SELECT语句,但是第一个不会执行,因为它已经被注释掉了。
  • 相关阅读:
    vue 传参动态
    a href="tel" 拨打电话
    vue中rem的转换
    请求接口的封装
    http request 请求拦截器,有token值则配置上token值
    node溢出
    vue菜单切换
    vue的table切换
    vue页面初始化
    [论文笔记] Legacy Application Migration to the Cloud: Practicability and Methodology (SERVICES, 2012)
  • 原文地址:https://www.cnblogs.com/Aiapple/p/5279824.html
Copyright © 2011-2022 走看看