初識Mysql之基本簡單文法總結

來源:互聯網
上載者:User

標籤:esc   引擎   完整   分屏顯示   dba   mysql   ble   not   系統   

 

一、  DDL(data definition language)語句:資料定義語言 (Data Definition Language)。

這些語句定義了不同的資料區段、資料庫、表、列、索引等資料庫物件。常用語句關鍵字:create、drop、alter等。

  1. 建立資料庫:CREATE DATABASE dbname     (eg:     mysql>create database test1;      查看系統中所有的資料庫:mysql>show databases;     )
  2. 選擇資料庫:USE dbname                                (eg:     mysql>use test1;          查看test1裡所有的資料表:mysql>show tables;      )
  3. 刪除資料庫:drop database dbname;         (eg:     mysql>drop database test1;        
  4. 建立表:CREATE TABLE tablename(column_name_1 column_type_1 constraints, 

                                                                           column_name_1 column_type_1 constraints, 

                                                                           ...);                                                         查看錶的定義:desc tablename

      5.有時需要查看建立表的SQL語句,

中除了可以看到staff表定義以外,還可以看到表的engine(儲存引擎)和charset(字元集)等資訊。“\G”選項含義是使記錄能夠按照欄位豎向排列,以便更好地顯示內容較長的記錄。

      6.刪除表:DROP TABLE tablename                                           (eg:     mysql>drop test;)

      7.修改表:

                    (1)修改表類型,ALTER TABLE tablename MODIFY[COLUMN] column_definition [FIRST|AFTER col_name]

                             eg:修改表emp的ename欄位定義,將varchar(10)改為varcahr(20)

                             

                           (2)增加表欄位,ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST|AFTER col_name]

                             eg:在表emp中新增欄位age,類型為int(3)

                             

                            (3)刪除表欄位,ALTER TABLE tablename DROP [COLUMN] col_name

                             eg:將欄位age刪除

                             

                            (4)欄位改名,ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]

                             eg:將age改名為age1,同時修改類型為int(4)

                            

                            (5)修改欄位排列順序,欄位增加和修改(ADD|CHANGE|MODIFY)文法中,可選項first|after column_name,可以修改欄位在表中的位置。(ADD預設加在最後,CHANGE/MODIFY預設不改變位置)

                            eg:新增欄位birth date(birth的類型)加在ename之後

                            

                            eg:修改欄位age,放在最前

                            

        8.更改表名:ALTER TABLE tablename RENAME [TO] new_tablename

           eg:將表enp改名為emp1

           

 

二、DML(data manipulation language)語句:資料操縱語句。

用於添加、刪除、更新和查詢資料庫記錄,並檢查資料完整性。常用語句關鍵字:insert、delete、update和select等。

       1.插入記錄:INSERT INTO tablename(filed1,filed2,...,filedn) VALUES(values1,values2,...,valuesn);

          eg:

          也可以不用指定欄位名稱,但是values後面的順序應該和欄位的排列順序一致

          

          插入多條記錄:INSERT INTO tablename(filed1,filed2,...,filedn) 

                                  VALUES

                                  (values1,values2,...,valuesn),

                                  (values1,values2,...,valuesn),

                                  (values1,values2,...,valuesn); 

 

 

       2.更新記錄:UPDATE tablename SET filed1=value1,filed2=value2,...,filedn=valuen [WHERE CONDITION]

          eg:將表emp中ename為‘lisa‘的薪水(sal)更改為4000:

          

               (多表更新一般用在根據一個表的欄位來動態地更新另一個表的欄位)

       3.刪除記錄:DELETE FROM tablename [WHERE CONDITION]

          eg:在emp中將ename為‘dony‘的記錄全部刪除

                 

          在mysql中可以一次刪除多個表的資料:DELETE t1,t2,...,tn FROM t1,t2,...,tn [WHERE CONDITION]    (不管單表還是多表,不加where條件將會把表的所有記錄刪除)

       4.查詢記錄:SELECT * FROM tablename [WHERE CONDITION]

          查詢不重複記錄關鍵字distinct

          

          排序和限制,關鍵字:ORDER BY   文法:SELECT * FROM tablename [WHERE CONDITION] [ORDER BY filed1 [DESC/ASC],filed2 [DESC/ASC],...,filedn [DESC/ASC]]

          不寫排序次序關鍵字預設是 升序排列 ASC。

          ◆ 排序後的記錄,LIMIT限制顯示部分:SELECT ...[LIMIT offset_start,row_count]               其中,offset_start表示記錄的起始位移量,row_count表示顯示的行數(limit和order by配合使用做記錄的分屏顯示)

          彙總

                     SELECT [filed1,filed2,...,filedn] fun_name

                 FROM tablename

                 [WHERE where_contition]

                 [GROUP BY filed1,filed2,...,filedn [WITH ROLLUP]]

                 [HAVING where_contition]

                 參數說明:fun_name:表示要做的彙總操作(彙總函式),sum(求和)、count(*)(記錄數)、max、min.....

                                  GROUP BY:表示要進行分類彙總的欄位,比如要按照部門分類統計員工數量,部門就應該寫在group by 後面。

                                  WITH ROLLUP:可選語句,表示是否對分類彙總後的結果進行再匯總。

                                  HAVING關鍵字表示對分類後的結果在進行條件的過虐。

          表串連:左串連,右串連。(複雜,詳情後續)

          子查詢:關鍵字 in、not in、=、!=、exists、not exists 等  (放後)

          記錄聯合:將兩個表的資料按照一定的查詢條件查詢出來以後,將結果合并到一起顯示出來。關鍵字, union、union all

                           SELECT * FROM t1

                           UNION/UNION ALL

                           SELECT * FROM t2

                           ...

                           UNION/UNION ALL

                           SELECT * FROM tn;

                           UNION ALL 是把結果集直接合并在一起,UNION 是將UNION ALL 後的結果進行一次DISTINCT,去除重複記錄後的結果。

 

三、DCL(data control language)語句:資料控制語句。

用於控制不同資料區段直接的許可和存取層級的語句,這些語句定義了資料庫、表、欄位、使用者的存取權限和安全層級。主要語句關鍵字:grant、revoke等。

主要是DBA用來管理系統中的對象許可權時使用,一般開發人員很少使用。

初識Mysql之基本簡單文法總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.