MySQL常用語句

来源:http://www.cnblogs.com/phpstudy2015-6/archive/2017/01/21/6336693.html
-Advertisement-
Play Games

一、前言 今天天氣很好,大晴天,心情也好好的。就將MySQL常用的語句總結一下,記錄在隨筆里,也順便分享分享。日後,這篇隨筆我將會持續更新,作為我自己的MySQL語句大全。 二、常用SQL語句 我將由外到里進行編寫(資料庫到表再到數據) 庫層: 1、SHOW DATABASES; 2、CREATE ...


一、前言

  今天天氣很好,大晴天,心情也好好的。就將MySQL常用的語句總結一下,記錄在隨筆里,也順便分享分享。日後,這篇隨筆我將會持續更新,作為我自己的MySQL語句大全。

二、常用SQL語句

  我將由外到里進行編寫(資料庫到表再到數據)

  庫層:

  1、SHOW DATABASES;

  2、CREATE DATABASE dbname;

  3、DROP DABABASE dbname;

  4、ALTER DATABASE dbname set=新字元集 collate=新校對集;

  5、USE dbname;

  6、SHOW CREATE DATABASE dbname;

  表層:

  1、創建表形式:

  CREATE TABLE tabname

  (

           欄位名1,數據類型 [列級別約束條件] [預設值],

       欄位名1,數據類型 [列級別約束條件] [預設值],

     …

      [表級別約束條件]

  );

    a、使用主鍵約束PRIMARY KEY

       兩個地方添加:1、列約束條件位置(PRIMARY KEY)  2、表級別約束條件位置([CONSTRAINT <約束名>]  PRIMARY KEY [欄位名])

    b、使用唯一性約束UNIQUE

       同上兩個地方添加:1、UNIQUE  2、[CONSTRAINT <約束名>]  UNIQUE(<欄位名>)

       與主鍵的區別,兩者同樣要求唯一,但是UNIQUE可以是NULL,主鍵不可以。且一個表中PRIMARY KEY只能是一個,UNIQUE可以存在多個。

    c、使用外鍵約束(InnoDB) FOREIGN KEY

       一個地方添加:1、表級別約束條件位置添加 [CONSTRAINT <外鍵名>]  FOREIGN KEY 欄位名1[,欄位名2,…]  REFERENCES <主表名> 主鍵列 [,主鍵列2,….]

    註意:兩個表之間有了外鍵的聯繫,不能直接刪除主表,否則會出錯!若必須要刪除主表,可以先刪除外鍵,再來刪除主表。

    d、非空約束 NOT NULL

       一個地發添加:1、列約束條件位置  NOT NULL

    e、使用預設約束 DEFAULT

       一個位置添加:1、列約束條件位置  DEFAULT 預設值

    f、設置表的屬性值自動增加  AUTO_INCREMENT

       一個位置添加:1、列約束條件位置  AUTO_INCREMENT

    註意:此時的列必須是主鍵或者唯一鍵!

    索引問題:以下是普通索引、全文索引、空間索引。上面創建約束的同時也是創建相應的索引,主鍵索引、唯一索引等等。

    g、普通索引 INDEX/KEY

       一個位置添加:1、列約束條件位置  INDEX(<欄位名>);

    h、全文索引(MyISAM) FULLTEXT

       一個位置添加:1、列約束條件位置  FULLTEXT KEY [‘名字’] (‘欄位名’);

    i、創建空間索引(MyISAM) SPATIAL

       一個位置添加:1、列約束條件位置  SPATIAL KEY [‘名字’] (‘欄位名’);

  2、DESCRIBE/DESC tabname;

  3、SHOW CREATE TABLE tabname;

  4、DROP TABLE [IF EXISTS] <表名>;

  5、ALTER TABLE <表名> ENGINE=<更改後的存儲引擎>;

  6、ALTER TABLE <舊表名> RENAME [TO] <新表名>;

  7、ALTER TABLE <表名> MODIFY <欄位名> <數據類型>;

  8、ALTER TABLE <表名> CHANGE <舊欄位名> <新欄位名> <新數據類型>;

  9、ALTER TABLE <表名> ADD <新欄位名> <新欄位類型> [約束條件] [FIRST|AFTER 已存在的欄位名];

  10、ALTER TABLE <表名> MODIFY <欄位1> <數據類型> FIRST|AFTER <欄位2>;

  11、ALTER TABLE <表名>DROP <欄位名>;

  #在已有的表上創建索引

  12、ALTER TABLE <表名> ADD INDEX [索引名] (欄位名);

  13、ALTER TABLE <表名> ADD PRIMARY KEY (欄位名);

  14、ALTER TABLE <表名> ADD FOREIGN KEY (欄位名) REFERENCES <主表名> (主鍵欄位);

  15、ALTER TABLE <表名> ADD UNIQUE KEY (欄位名);

  16、ALTER TABLE <表名> ADD FULLTEXT KEY(欄位名);

  17、ALTER TABLE <表名> ADD SPATIAL KEY (欄位名);

  18、ALTER TABLE <表名> ALTER <欄位名> SET DEFAULT 預設值;

  #刪除索引

  19、ALTER TABLE <表名> ALTER <欄位名> DROP DEFAULT;

  20、ALTER TABLE <表名> DROP PRIMARY KEY;

  21、ALTER TABLE <表名> DROP FOREIGN KEY 外鍵名;

  22、ALTER TABLE <表名> DROP INDEX 索引名;

  23、DROP INDEX index_name ON tabname;

  數據層:

  1、插入數據

  INSERT INTO tabname (column_list) VALUES (value_list);

  INSERT INTO tabname (column_list) VALUES (value_list1),(value_list2),….,(value_listn);

  INSERT INTO tabname SET 欄位名1=值1,欄位名2=值2,…..,欄位名n=值n;\

  2、更新數據

  UPDATE tabname SET column_name1=value1,column_name2=value2,…column_namen=valuen WHERE (condition);

  3、刪除數據

  DELETE FROM tabname[WHERE <condition>];

  TRUNCATE [TABLE] tabname;

  DELETE與TRUNCATE的區別:TRUNCATE直接刪除整個表,再創建一個一模一樣的表。

  4、數據查詢

  (1)、SELECT {*|<欄位列表>}

  [

  FROM <表1>,<表2>,…,<表n>

  WHERE <表達式>

  GROUP BY <分組欄位>

  HAVING <expression>

  ORDER BY <排序欄位>

  LIMIT <num>

  ]

  (2)、SELECT [欄位1,欄位2,…,欄位n] from [表|視圖] WHERE [查詢條件];

  (3)、連接查詢

  a、內連接查詢  SELECT tab1.* tab2.* FROM tab1 INNER JOIN tab2 ON <condition>;

  b、左連接查詢  SELECT tab1.* tab2.* FROM tab1 LEFT [OUTER] JOIN tab2 ON <condition>;

  c、右連接查詢  SELECT tab1.* tab2.* FROM tab1 RIGHT [OUTER] JOIN tab2 ON <condition>;

  (4)、合併查詢結果

       SELECT column,… FROM tab1

       UNION [ALL]

       SELECT column,…FROM tab2;

 

(以上是自己的一些見解,若有不足或者錯誤的地方請各位指出)

作者:壹葉隨風

聲明:本博客文章為原創,只代表本人在工作學習中某一時間內總結的觀點或結論。轉載時請在文章頁面明顯位置給出原文鏈接。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 伴著6S的發佈,iOS 9.0開始支持3D Touch功能。使用場景來分一共有三種情況。 一、基於UIViewController的擴展 1. 首先要註冊需要監聽重按手勢的 source view: 2. 重按手勢識別出來之後需要按照 協議去處理 peek 和 pop 事件,這個協議有兩個方法 3. ...
  • 作者:Antonio Leiva 時間:Jan 19, 2017 原文鏈接:https://antonioleiva.com/anko-background-kotlin-android/ Anko是由Jetbrains用Kotlin開發的Android庫,它可以用於很多不同的方面。它的主要特性是使 ...
  •    受人所托,做一個類似於qq賬號信息里的一個動畫,感覺挺有意思,也沒感覺有多難,就開始做了,結果才發現學的數學知識都還給體育老師了,研究了大半天才做出來。    先看一下 "動畫效果" : 用到的知識點: (1)三角函數 (2)CALayer (3)CAT ...
  • 博客也開了挺長時間了,一直都沒有來寫博客,主要原因是自己懶~~~此篇博客算是給2017年一個好的開始,同時也給2016年畫上一個句點,不留遺憾。 那就讓我們正式進入今天的主題:貝塞爾曲線。 首先,讓我們來瞭解下什麼是貝塞爾曲線。 貝塞爾曲線(Bézier curve),又稱貝茲曲線或貝濟埃曲線,是應 ...
  • /*可以更改列的大小,只要將滑鼠指針懸停到該列標題的右邊界,再單擊並拖動該列邊界到合適的位置。雙擊右邊界使得該列自動調整大小如果選擇幾個單元,然後將其剪切並複製到其他網格,則這幾個單元可作為單獨的單元處理(如果選擇"以文本格式顯示結果"選項,剪切的數據會全部粘帖到一個單元格中)可以從多行只選擇一列或 ...
  • Java代碼 Java代碼 關註流行國外網站 facebook:http://www.fb-on.com facebook官網:http://www.facebookzh.com facebook:http://www.cn-face-book.com youtube:http://www.yout ...
  • AlwaysOn是在SQL Server 2012中新引入的一種高可用技術,從名稱中可以看出,AlwaysOn的設計目標是保持資料庫系統永遠可用。AlwaysOn利用了Windows伺服器故障轉移集群(Windows Server Failover Clustering,簡稱WSFC)的健康檢測和自 ...
  • /*僅返回一個結果集,且該結果只有很窄的幾列想要以單個文本文件來保存返回結果返回多個結果集,但該結果比較小,且不需要使用多個滾動條就可以在同一頁面上查看多個結果集。*/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...