zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    扯蛋的密码规则
    【转】mysql安全基线设置
    阿里云安全基线 记录如下 不定时更新
    解决Apache的错误日志巨大的问题以及关闭Apache web日志记录
    cms如何绑定二级域名
    宝塔面板定时/同步备份网站及数据库至FTP存储空间完整教程
    宝塔部署项目报Warning: require(): open_basedir restriction in effect的解决方案
    git学习笔记(一)—— git环境搭建
    vim学习笔记(一)—— vim安装方法
    Intel Edison学习笔记(二)—— 入门环境配置
  • 原文地址:https://www.cnblogs.com/IDRI/p/5791403.html
Copyright © 2011-2022 走看看