MySQL一一sql基本語法

sql基礎教程

sql教程

什麼是sql?
  • SQL 指結構化查詢語言
  • SQL 使咱們有能力訪問數據庫
  • SQL 是一種 ANSI 的標準計算機語言
sql能夠作什麼
  • SQL 面向數據庫執行查詢
  • SQL 可從數據庫取回數據
  • SQL 可在數據庫中插入新的記錄
  • SQL 可更新數據庫中的數據
  • SQL 可從數據庫刪除記錄
  • SQL 可建立新數據庫
  • SQL 可在數據庫中建立新表
  • SQL 可在數據庫中建立存儲過程
  • SQL 可在數據庫中建立視圖
  • SQL 能夠設置表、存儲過程和視圖的權限
SQL 是一種標準 - 可是…
  • SQL 是一門 ANSI 的標準計算機語言,用來訪問和操做數據庫系統。SQL 語句用於取回和更新數據庫中的數據。SQL 可與數據庫程序協同工做,好比 MS Access、DB二、Informix、MS SQL Server、Oracle、Sybase 以及其餘數據庫系統。

    不幸地是,存在着不少不一樣版本的 SQL 語言,可是爲了與 ANSI 標準相兼容,它們必須以類似的方式共同地來支持一些主要的關鍵詞(好比 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。sql

    註釋:除了 SQL 標準以外,大部分 SQL 數據庫程序都擁有它們本身的私有擴展!數據庫

在您網站中使用sql
  • RDBMS 數據庫程序(好比 MS Access, SQL Server, MySQL)
  • 服務器端腳本語言(好比 PHP 或 ASP)
  • SQL
  • HTML / CSS
RDBMS
  • RDBMS 指的是關係型數據庫管理系統。

    RDBMS 是 SQL 的基礎,一樣也是全部現代數據庫系統的基礎,好比 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。服務器

    RDBMS 中的數據存儲在被稱爲表(tables)的數據庫對象中。網站

    表是相關的數據項的集合,它由列和行組成。code

sql語法

數據庫表
  • 一個數據庫一般包含一個或多個表。每一個表由一個名字標識(例如「客戶」或者「訂單」)。表包含帶有數據的記錄(行)。orm

    下面的例子是一個名爲 「Persons」 的表:對象

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing
    • 上面的表包含三條記錄(每一條對應一我的)和五個列(Id、姓、名、地址和城市)。
sql語句
  • 您須要在數據庫上執行的大部分工做都由 SQL 語句完成。排序

    下面的語句從表中選取 LastName 列的數據:教程

    SELECT LastName FROM Persons

這是個人可可帬,前面是893中間是241後面是279,歡迎你們!索引

  • 結果集相似這樣:

    LastName
    Adams
    Bush
    Carter
SQL DML 和DDL
  • 能夠把 SQL 分爲兩個部分:數據操做語言 (DML) 和 數據定義語言 (DDL)。

    SQL (結構化查詢語言)是用於執行查詢的語法。可是 SQL 語言也包含用於更新、插入和刪除記錄的語法。

    查詢和更新指令構成了 SQL 的 DML 部分:

    • SELECT - 從數據庫表中獲取數據
    • UPDATE - 更新數據庫表中的數據
    • DELETE - 從數據庫表中刪除數據
    • INSERT INTO - 向數據庫表中插入數據
  • SQL 的數據定義語言 (DDL) 部分使咱們有能力建立或刪除表格。咱們也能夠定義索引(鍵),規定表之間的連接,以及施加表間的約束。

    SQL 中最重要的 DDL 語句:

    • CREATE DATABASE - 建立新數據庫
    • ALTER DATABASE - 修改數據庫
    • CREATE TABLE - 建立新表
    • ALTER TABLE - 變動(改變)數據庫表
    • DROP TABLE - 刪除表
    • CREATE INDEX - 建立索引(搜索鍵)
    • DROP INDEX - 刪除索引

sql select

sql select 語句
  • SELECT 語句用於從表中選取數據。

    結果被存儲在一個結果表中(稱爲結果集)。

  • sql select語法

    SELECT 列名稱 FROM 表名稱
    SELECT * FROM 表名稱
    • 對大小寫不敏感,SELECT 等效於 select。
sql select實例
  • 如需獲取名爲 「LastName」 和 「FirstName」 的列的內容(從名爲 「Persons」 的數據庫表),請使用相似這樣的 SELECT 語句:

    SELECT LastName,FirstName FROM Persons
  • 「Persons」表

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    結果

    LastName FirstName
    Adams John
    Bush George
    Carter Thomas
sql select *實例
  • 如今咱們但願從 「Persons」 表中選取全部的列。

    請使用符號 * 取代列的名稱,就像這樣:

    SELECT * FROM Persons
    • 提示:星號(*)是選取全部列的快捷方式。

    結果

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

sql select distinct

sql select distinct語句
  • 在表中,可能會包含重複值。這並不成問題,不過,有時您也許但願僅僅列出不一樣(distinct)的值。

    關鍵詞 DISTINCT 用於返回惟一不一樣的值。

  • 語法

    SELECT DISTINCT 列名稱 FROM 表名稱
使用distinct關鍵詞
  • 若是要從 「Company」 列中選取全部的值,咱們須要使用 SELECT 語句:

    SELECT Company FROM Orders
    • order 表

      Company OrderNumber
      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

sql where語句

where語句
  • 語法

    SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
  • 下面的運算符可在 WHERE 子句中使用:

    操做符 描述
    = 等於
    <> 不等於
    > 大於
    < 小於
    >= 大於等於
    <= 小於等於
    BETWEEN 在某個範圍內
    LIKE 搜索某種模式
    • 註釋:在某些版本的 SQL 中,操做符 <> 能夠寫爲 !=。
使用where語句
  • 若是隻但願選取居住在城市 「Beijing」 中的人,咱們須要向 SELECT 語句添加 WHERE 子句:

    SELECT * FROM Persons WHERE City='Beijing'
  • persons 表

    LastName FirstName Address City Year
    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

    結果

    LastName FirstName Address City Year
    Carter Thomas Changan Street Beijing 1980
    Gates Bill Xuanwumen 10 Beijing 1985
引號的使用
  • 文本值

    這是正確的:
    SELECT * FROM Persons WHERE FirstName='Bush'
    
    這是錯誤的:
    SELECT * FROM Persons WHERE FirstName=Bush
  • 數值

    這是正確的:
    SELECT * FROM Persons WHERE Year>1965
    
    這是錯誤的:
    SELECT * FROM Persons WHERE Year>'1965'

sql and & or 運算符

  • AND 和 OR 運算符用於基於一個以上的條件對記錄進行過濾。
and和or 運算符
  • AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。

    若是第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。

    若是第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。

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

    LastName FirstName Address City
    Adams John Oxford Street London
    Bush George Fifth Avenue New York
    Carter Thomas Changan Street Beijing
    Carter William Xuanwumen 10 Beijing
and運算符實例
  • 使用 AND 來顯示全部姓爲 「Carter」 而且名爲 「Thomas」 的人:
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

結果

LastName FirstName Address City
Carter Thomas Changan Street Beijing
or運算符實例
  • 使用 OR 來顯示全部姓爲 「Carter」 或者名爲 「Thomas」 的人:

    SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

    結果

    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Carter William Xuanwumen 10 Beijing
結合and和or運算符
  • 咱們也能夠把 AND 和 OR 結合起來(使用圓括號來組成複雜的表達式):

    SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
    AND LastName='Carter'

    結果

    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Carter William Xuanwumen 10 Beijing

sql order by語句

  • order by 語句用於對結果集的行排序
order by語句
  • ORDER BY 語句用於根據指定的列對結果集進行排序。

    ORDER BY 語句默認按照升序對記錄進行排序。

    若是您但願按照降序對記錄進行排序,可使用 DESC 關鍵字。

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

    Company OrderNumber
    IBM 3532
    W3School 2356
    Apple 4698
    W3School 6953
實例1
  • 以字母順序顯示公司名稱:

    SELECT Company, OrderNumber FROM Orders ORDER BY Company

    結果

    Company OrderNumber
    Apple 4698
    IBM 3532
    W3School 6953
    W3School 2356
實例2
  • 以字母順序顯示公司名稱(Company),並以數字順序顯示順序號(OrderNumber):

    SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

    結果

    Company OrderNumber
    Apple 4698
    IBM 3532
    W3School 2356
    W3School 6953
實例3
  • 以逆字母順序顯示公司名稱:

    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

    結果

    Company OrderNumber
    W3School 6953
    W3School 2356
    IBM 3532
    Apple 4698
實例4
  • 以逆字母順序顯示公司名稱,並以數字順序顯示順序號:

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

    結果

    Company OrderNumber
    W3School 2356
    W3School 6953
    IBM 3532
    Apple 4698

sql insert 語句

insertinto語句用於表格中插入新的行
  • 語法

    INSERT INTO 表名稱 VALUES (值1, 值2,....)
  • 咱們也能夠指定所要插入數據的列:

    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
插入新的行
  • persons表

    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
  • sql 語句

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

    結果

    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing
在指定的列中插入數據
  • persons 表

    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing
  • sql語句

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

    結果

    LastName FirstName Address City
    Carter Thomas Changan Street Beijing
    Gates Bill Xuanwumen 10 Beijing
    Wilson Champs-Elysees

sql update語句

update 語句
  • Update 語句用於修改表中的數據。
語法
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
persons表
LastName FirstName Address City
Gates Bill Xuanwumen 10 Beijing
Wilson Champs-Elysees
更新某一行中的一個列
  • 咱們爲 lastname 是 「Wilson」 的人添加 firstname:

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

    結果

    LastName FirstName Address City
    Gates Bill Xuanwumen 10 Beijing
    Wilson Fred Champs-Elysees
更新某一行中的若干列
  • 咱們會修改地址(address),並添加城市名稱(city):

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

    結果

    LastName FirstName Address City
    Gates Bill Xuanwumen 10 Beijing
    Wilson Fred Zhongshan 23 Nanjing

sql delete語句

delete語句
  • DELETE 語句用於刪除表中的行。
語法
DELETE FROM 表名稱 WHERE 列名稱 = 值
person表:
LastName FirstName Address City
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Zhongshan 23 Nanjing
刪除某行
  • fred willson 會被刪除

    DELETE FROM Person WHERE LastName = 'Wilson'

    結果

    LastName FirstName Address City
    Gates Bill Xuanwumen 10 Beijing
刪除全部的行
  • 能夠在不刪除表的狀況下刪除全部的行。這意味着表的結構、屬性和索引都是完整的:

    DELETE FROM table_name

    或者

    DELETE * FROM table_name
相關文章
相關標籤/搜索