zoukankan      html  css  js  c++  java
  • 数据库查询语句研究

    重点研究查询数据,其他语句只做了解!!!
    """
    一些最重要的 SQL 命令:
        select - 从数据库中提取数据
        update - 更新数据
        delete - 删除数据
        insert - 插入数据
        create database - 创建新数据库
        alter database - 修改数据库
        create table - 创建表
        alter table - 变更数据库表
        drop table - 删除表
        create index - 创建索引(搜索键)
        drop index - 删除索引
    """


    第一:select语句
    #select - 从数据库中提取数据,结果被存储在一个结果表中,称为结果集
    #column_name(s):数据库表中所有列的名称
    #column_name:列名称
    #group by:分组
    #table_name:表名
    select key from 表名
    select key,where from 表名
    select * from 表名
    select key from 表名 where 条件1 and|or 条件2

    #列名位于两者之间的数据
    select 列名(s) from 表名 where 列名 between value1 and value2
    #合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句
    select 列名1, SUM(列名2) from 表名 group by 列名1

    select 列名(s) from 表名 where 列名 IN(value1, value2,..)


    第二:select distinct语句
    #distinct关键词用于返回唯一不同的值,起到去重的作用
    SELECT DISTINCT column_name,column_name FROM table_name


    第三:where
    1)含义:子句用于过滤记录
    #column_name operator value 表达式还包含:like,以及各种运算符号,<,>=等等
    where 子句用于提取那些满足指定标准的记录。
    table_name:表名
    column_name:列名
    column_name operator value:列名的表达式
    select column_name,column_name from table_name where column_name operator value
    示例:
    SELECT * FROM Customers WHERE Country='Mexico'
    SELECT * FROM Customers WHERE CustomerID=1


    第四:and & or 运算符用于基于一个以上的条件对记录进行过滤。
    1)and,需要2个条件同时满足方可输出结果
    2)or,只需要2个条件满足1个即可
    3)示例:
        SELECT * FROM 表名 WHERE 列名1='Germany' and 列名2='Berlin'
        SELECT * FROM 表名 WHERE 列名1='Berlin' OR 列名2='München'
        SELECT * FROM 表名 WHERE 列名1='Germany' and (列名2='Berlin' or 列名2='München'),含义为:从表中查找列名1='Germany'的数据且(列名2='Berlin' or 列名2='München'满足其一的数据)


    第五:order by
    1)含义:关键字用于对结果集按照一个列或者多个列进行排序
    1)默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 desc 关键字
    2)语法:SELECT 列名1,列名2 FROM 表名 ORDER BY 列名1,列名2 ASC|DESC
    3)示例
        SELECT * FROM 表名 ORDER BY Country               #默认升序
        SELECT * FROM 表名 ORDER BY Country ESC            #降序
        SELECT * FROM 表名 ORDER BY Country , CustomerName        #按照2个列名的判断条件来排序


    第六:规定要返回的记录的数目(不同服务器类型语句会有一定区别)
    1)SELECT TOP number|percent column_name(s) FROM table_name
    2)SELECT column_name(s) FROM table_name limit number
        number:要返回的数据条数
    3)示例:
        SELECT * FROM Persons limit  5
        SELECT TOP 2 * FROM Customers    选取头2条记录
        SELECT TOP 50 percent * FROM Customers   从表Customers中选取前50%的记录



    第七:like
    1)含义:操作符用于在 where 子句中搜索列中的指定模式
    1)语法:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
    2)示例:
        SELECT * FROM 表名 WHERE City like 's%'           选取 City 以字母 "s" 开始的所有客户,
        SELECT * FROM 表名 WHERE City like '%s'              选取 City 以字母 "s" 结尾的所有客户
        SELECT * FROM 表名 WHERE City like '%Enshi%'        选取 City 包含模式 "Enshi" 的所有客户
        SELECT * FROM 表名 WHERE City not like '%Enshi%'    选取 City 不包含模式 "Enshi" 的所有客户
    3)%:定义通配符



    第八:通配符研究
    1)%                     替代 0 个或多个字符
    2)_                     下划线替代一个字符
    3)[charlist]                 字符列中的任何单一字符
    4)[^charlist] or [!charlist]         不在字符列中的任何单一字符
    5)示例:
        SELECT * from Customers WHERE City LIKE 'ber%'
        SELECT * from Customers WHERE City LIKE '%es%'
        SELECT * from Customers WHERE City LIKE '_erlin'      选取City以一个任意字符开始,然后是 "erlin" 的所有客户
        SELECT * FROM Customers WHERE City LIKE 'L_n_on'
        SELECT * FROM Customers WHERE City LIKE '[bsp]%'    选取 City 以 "b"、"s" 或 "p" 开始的所有客户
        SELECT * FROM Customers WHERE City LIKE '[a-c]%'    选取 City 以 "a"、"b" 或 "c" 开始的所有客户
        SELECT * FROM Customers WHERE City LIKE '[!bsp]%'    选取 City 不以 "b"、"s" 或 "p" 开始的所有客户



    第九:IN 操作符
    1)允许您在 where 子句中规定多个值
    2)语法:select column_name(s) from table_name where column_name IN (value1,value2,...)
    3)示例:
        SELECT * FROM Customers WHERE City IN ('Paris','London')    选取 City 为 "Paris" 或 "London" 的所有客户
        从表中查找city的数据,这个city有限定在paris火london之类



    第十:between
    1)含义:between 操作符用于选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期
    2)语法:select column_name(s) from table_name where column_name between value1 and value2
    3)示例:
        SELECT * FROM 表名 WHERE Price between 10 AND 20    选取价格介于 10 和 20 之间的所有产品
        SELECT * FROM 表名 WHERE Price NOT between 10 AND 20    不在范围内的产品,用 NOT between
        SELECT * FROM 表名 WHERE (Price BETWEEN 10 AND 20) AND NOT CategoryID IN (1,2,3)  选取价格介于 10 和 20 之间但 CategoryID 不为 1、2 或 3 的所有产品
        SELECT * FROM 表名 WHERE ProductName NOT BETWEEN 'C' AND 'M'   选取 ProductName 不以介于 'C' 和 'M' 之间字母开始的所有产品
        SELECT * FROM 表名 WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#   选取 OrderDate 介于 '04-July-1996' 和 '09-July-1996' 之间的所有订单
    4)注意事项:是否包含临界值本身,需要根据情况测试


    第十一:别名
    1)含义:使用 SQL,可以为表名称或列名称指定别名(Alias),基本上,创建别名是为了让列名称的可读性更强
    2)用途:
        在查询中涉及超过一个表
        在查询中使用了函数
        列名称很长或者可读性差
        需要把两个列或者多个列结合在一起
    3)语法:
        SELECT column_name AS alias_name FROM table_name    列名创建别名
        SELECT column_name(s) FROM table_name AS alias_name    表名创建别名
    4)示例:
        SELECT CustomerName AS Customer, ContactName AS [Contact Person] FROM Customers;
        #CustomerName 列的别名,ContactName 列的别名。提示:如果列名称包含空格,要求使用双引号或方括号
        SELECT CustomerName, Address+', '+City+', '+PostalCode+', '+Country AS Address FROM Customers
        #把四个列(Address、City、PostalCode 和 Country)结合在一起,并创建一个名为 "Address" 的别名:

  • 相关阅读:
    菜鸟学习Spring Web MVC之二
    菜鸟学习Spring Web MVC之一
    Internet Explorer 6 的15个讨厌的bug和简单的解决方法
    前端遇到的跨域问题及解决方案二
    前端遇到的跨域问题及解决方案一
    第六 添加文字
    第五章、使用预绘制图片
    第四、渐变和图案
    第三 画曲线
    第二、画线和路径
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/5351541.html
Copyright © 2011-2022 走看看