• SQL 必知必会


    主键(primary key)

      唯一标识表中每行的这个行称为主键。主键列中的值不允许修改或更新。

    SQL:

      Structured Query Language,结构化查询语言。

      不区分大小写。为了便于阅读,SQL关键字大写,对所有列和表名小写。

      忽略空格,所以SQL可以分成很多行。

    SELECT

      检索数据

    SELECT prod_id, prod_name, prod_price
    FROM Products;
    --使用SELECT语句从表Products中选择数据,指定了3个列名,列名之间用逗号分隔。

    输出:

    prod_id    prod_name        prod_price
    ----------------------------------------------------    
    BNBG01     Fish bean bag toy   3.4900 
    ...

    FROM 关键字指出从其中检索数据的表名。

    排序检索数据

    子句(clause)通常由一个关键字和数据组成。

    ORDER BY

    顺序:应保证是SELECT语句中最后一条子句。

    多个列排序:

    先按其中两个列对结果进行排序,先价格,后名称。

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY prod_price, prod_name;

    按列位置排序:

    SELECT prod_id, prod_price, prod_name
    FROM Products
    ORDER BY 23

    降序排列:

    ORDER BY prod_price DESC, prod_name; 

    升序是默认的。

    过滤数据

    WHERE

    SELECT prod_name, prod_price
    FROM Products
    WHERE prod_price = 3.49;

    BETWEEN AND 组合

    高级数据过滤

    WHERE  a OR b AND c

    有计算次序,a 或者 b+c

    AND 比 OR 的计算次序优先级高。

    IN

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id IN ('DLL01', 'BRS01')
    ORDER BY prod_name;

    IN 较OR的好处,直观,执行快,可以包含(SELECT语句)

    not

    WHERE NOT

    MySQL 中的NOT没有这种用法。

    用通配符进行过滤

      通配符(wildcard)、搜索模式(search pattern)

    谓词:LIKE

    SELECT prod_id, prod_name
    FROM Products 
    WHERE prod_name LIKE 'Fish%';

    接受Fish 后的任意字符

    搜索是区分大小写的 'fish%' 与Fish 将不匹配

    下划线 (_) 通配符

    类似填空题。。。 _ 总是匹配一个字符

    方括号 ([] )通配符

      [] 用来指定一个字符集

    SELECT cust_contact
    FROM Customers
    WHERE cust_contact LIKE '[JM]%'
    ORDER BY cust_contact;

    输出:

    cust_contact
    ----------------
    Jim Jones
    John Smith
    Michelle Green

    [JM],单个字符,意为开头为J或M

    [^JM],否定的意思

    创建计算字段

      字段(field),基本上等于列(column),用在计算字段的连接上。

      

      拼接(concatenate),将值联结到一起构成单个值。

      Access、SQL Server、Sybase 使用+号

      DB2、Oracle、PostagreSQL、Sybase 使用||号

    SELECT vend_name + '(' + vend_country + ')'
    FROM Vendors
    ORDER BY vend_name;
    ---------------------------
    Bear Emporium         (USA  )

    MySQL 中的拼接,不支持 + 或 || 的拼接,它使用CONCAT() 函数。

    RTRIM(),格式化数据,去掉值右边的空格。

    LTRIM(),去掉左边的空格

    TRIM(), 去掉两边的空格

      SELECT RTTIM(vend_name) + '(' + RTRIM(vend_country) + ')'

      ...

    AS,使用别名

    例如:

    SELECT RTRIM(vend_name) + '(' + RTRIM(vend_country)+')' AS vend_title

    ...

    意为将 vend_name替换为vend_title

  • 相关阅读:
    dubbo zookeeper报错failed to connect to server , error message is:No route to host
    linux的ssh命令
    linux的/etc/hosts的作用
    linux如何查看某个pid的进程?
    Nginx配置详解
    nginx基本配置与参数说明以及Nginx中的upstream轮询机制介绍
    Nginx配置upstream实现负载均衡
    nginx简单的nginx.conf配置
    API Gateway性能比较:NGINX vs. ZUUL vs.Cloud Gateway vs. Linkerd[译]
    RabbitMQ 入门【精+转】
  • 原文地址:https://www.cnblogs.com/IDRI/p/5791403.html
Copyright © 2020-2023  润新知