zoukankan      html  css  js  c++  java
  • SQL快速入门基础篇

    SQL SELECT 语句

     

    如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:

    SELECT LastName,FirstName FROM Persons
    

    "Persons" 表:

    IdLastNameFirstNameAddressCity
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    结果:

    LastNameFirstName
    Adams John
    Bush George
    Carter Thomas

    SQL SELECT DISTINCT 语句

    在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

    关键词 DISTINCT 用于返回唯一不同的值。

    语法:

    SELECT DISTINCT 列名称 FROM 表名称

    使用 DISTINCT 关键词

    如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:

    SELECT Company FROM Orders

    "Orders"表:

    CompanyOrderNumber
    IBM 3532
    W3School 2356
    Apple 4698
    W3School 6953

    结果:

    Company
    IBM
    W3School
    Apple
    W3School

    请注意,在结果集中,W3School 被列出了两次。

    如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句:

    SELECT DISTINCT Company FROM Orders 

    结果:

    Company
    IBM
    W3School
    Apple

    WHERE 子句

    如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

    语法

    SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

    下面的运算符可在 WHERE 子句中使用:

    操作符描述
    = 等于
    <> 不等于
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    BETWEEN 在某个范围内
    LIKE 搜索某种模式

    注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。

    使用 WHERE 子句

    如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:

    SELECT * FROM Persons WHERE City='Beijing'

    "Persons" 表

    LastNameFirstNameAddressCityYear
    Adams John Oxford Street London 1970
    Bush George Fifth Avenue New York 1975
    Carter Thomas Changan Street Beijing 1980
    Gates Bill Xuanwumen 10 Beijing 1985

    结果:

    LastNameFirstNameAddressCityYear
    Carter Thomas Changan Street Beijing 1980
    Gates Bill Xuanwumen 10 Beijing 1985

    引号的使用

    请注意,我们在例子中的条件值周围使用的是单引号。

    SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

    ORDER BY 语句用于对结果集进行排序。

    ORDER BY 语句

    ORDER BY 语句用于根据指定的列对结果集进行排序。

    ORDER BY 语句默认按照升序对记录进行排序。

    如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

    原始的表 (用在例子中的):

    Orders 表:

    CompanyOrderNumber
    IBM 3532
    W3School 2356
    Apple 4698
    W3School 6953

    实例 1

    以字母顺序显示公司名称:

    SELECT Company, OrderNumber FROM Orders ORDER BY Company

    结果:

    CompanyOrderNumber
    Apple 4698
    IBM 3532
    W3School 6953
    W3School 2356

    实例 2

    以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):

    SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

    结果:

    CompanyOrderNumber
    Apple 4698
    IBM 3532
    W3School 2356
    W3School 6953

    实例 3

    以逆字母顺序显示公司名称:

    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

    结果:

    CompanyOrderNumber
    W3School 6953
    W3School 2356
    IBM 3532
    Apple 4698

    实例 4

    以逆字母顺序显示公司名称,并以数字顺序显示顺序号:

    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

    结果:

    CompanyOrderNumber
    W3School 2356
    W3School 6953
    IBM 3532
    Apple 4698

    注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

    INSERT INTO 语句

    INSERT INTO 语句用于向表格中插入新的行。

    语法

    INSERT INTO 表名称 VALUES (值1, 值2,....)

    我们也可以指定所要插入数据的列:

    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

    插入新的行

    "Persons" 表:

    LastNameFirstNameAddressCity
    Carter Thomas Changan Street Beijing

    SQL 语句:

    INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

    结果:

    LastNameFirstNameAddressCity
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing

    在指定的列中插入数据

    "Persons" 表:

    LastNameFirstNameAddressCity
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing

    SQL 语句:

    INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

    结果:

    LastNameFirstNameAddressCity
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing
    Wilson   Champs-Elysees  

    Update 语句

    Update 语句用于修改表中的数据。

    语法:

    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

    Person:

    LastNameFirstNameAddressCity
    Gates Bill Xuanwumen 10 Beijing
    Wilson   Champs-Elysees  

    更新某一行中的一个列

    我们为 lastname 是 "Wilson" 的人添加 firstname:

    UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 

    结果:

    LastNameFirstNameAddressCity
    Gates Bill Xuanwumen 10 Beijing
    Wilson Fred Champs-Elysees  

    更新某一行中的若干列

    我们会修改地址(address),并添加城市名称(city):

    UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
    WHERE LastName = 'Wilson'

    结果:

    LastNameFirstNameAddressCity
    Gates Bill Xuanwumen 10 Beijing
    Wilson Fred Zhongshan 23 Nanjing
     

    DELETE 语句

    DELETE 语句用于删除表中的行。

    语法

    DELETE FROM 表名称 WHERE 列名称 = 值

    Person:

    LastNameFirstNameAddressCity
    Gates Bill Xuanwumen 10 Beijing
    Wilson Fred Zhongshan 23 Nanjing

    删除某行

    "Fred Wilson" 会被删除:

    DELETE FROM Person WHERE LastName = 'Wilson' 

    结果:

    LastNameFirstNameAddressCity
    Gates Bill Xuanwumen 10 Beijing

    删除所有行

    可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

    DELETE FROM table_name

    或者:

    DELETE * FROM table_name
  • 相关阅读:
    微软经典面试笔试题
    Websense一面、二面及Offer
    微软2014年技术岗位在线笔试题
    2013年微软面试经历 – 终究离他们的要求还是有一定距离
    Mesos:数据库使用的持久化卷
    Mesos和Docker的集成
    可扩展架构取舍
    组织架构适配下的敏捷开发
    TensorFlow与主流深度学习框架对比
    Pokémon Go呼应设计:让全世界玩家疯狂沉迷
  • 原文地址:https://www.cnblogs.com/joannacode/p/4428694.html
Copyright © 2011-2022 走看看