SQL入門

來源:互聯網
上載者:User

標籤:

資料庫簡介

  所謂安裝資料庫伺服器,只是在機器上裝了一個資料庫管理程式,這個管理程式可以管理多個資料庫,一般開發人員會針對每一個應用建立一個資料庫。
為儲存應用中實體的資料,一般會在資料庫建立多個表,以儲存程式中實體的資料。
資料庫伺服器、資料庫和表的關係:

  資料在資料庫中的儲存方式:

SQL文法

  建立資料庫語句:CREATE DATABASE [IF NOT EXISTS] database_name [create_specification [, create_specification] ...];

                create_specification:   

                [DEFAULT] CHARACTER SET charset_name 
                  [DEFAULT] COLLATE collation_name

                CHARACTER SET:指定資料庫採用的字元集

                COLLATE:指定資料庫字元集的校對規則

  顯示資料庫語句:  SHOW DATABASES;

  顯示資料庫建立語句:SHOW CREATE DATABASE db_name;

  資料庫刪除語句:DROP DATABASE  [IF EXISTS]  db_name ;

  修改資料庫字元集及校對規則語句:ALTER  DATABASE  [IF NOT EXISTS] db_name [alter_specification [, alter_specification] ...] 

                 alter_specification:    

                  [DEFAULT] CHARACTER SET charset_name  

                  [DEFAULT] COLLATE collation_name

   備份資料語句(準備好資料庫及表格後在Windows命令視窗下執行):mysqldump -u 使用者名稱 -p 資料庫名 > 檔案名稱.sql

       恢複資料庫語句(備份完後資料庫並刪除資料庫後):     方式1:(1)建立庫:create database 資料庫名; (2)選擇建立的資料庫use database; (3)Source 檔案名稱.sql

                                                                           方式2:mysql -uroot -p mydb1<c:\test.sql  (window命令)

 

    建立表語句(注意:建立表前,要先使用use db語句使用庫):

            CREATE TABLE table_name
            (   field1 datatype,
              field2 datatype,
              field3 datatype,
            )character set 字元集 collate 校對規則
            field:指定列名 datatype:指定列類型  

   建立表時,要根據需儲存的資料建立相應的列,並根據資料的類型定義相應的列類型,MySQL常用資料類型如下:

  修改表語句(ALTER TABLE ):

             追加一列:ALTER TABLE table-name  ADD  (column datatype [DEFAULT expr] [, column datatype]...);

             修改一列:ALTER TABLE table-name MODIFY (column datatype [DEFAULT expr][, column datatype]...);

             刪除一列:ALTER TABLE table-name DROP (column);

  修改表的名稱:Rename table 表名 to 新表名

 

  修改表的字元集:alter table student character set utf8;

資料庫CRUD語句

  Insert語句: INSERT INTO table [(column [, column...])] VALUES (value [, value...]);

      (1)插入的資料應與欄位的資料類型相同。

      (2)資料的大小應在列的規定範圍內,例如:不能將一個長度為80的字串加入到長度為40的列中。

      (3)在values中列出的資料位元置必須與被加入的列的排列位置相對應。

      (4)字元和日期型資料應包含在單引號中。

      (5)插入空值,不指定或insert into table value(null)

  Update語句: update tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] 

       (1)UPDATE文法可以用新值更新原有表行中的各列。

       (2)SET子句指示要修改哪些列和要給予哪些值。

       (3)WHERE子句指定應更新哪些行。如沒有WHERE子句,則更新所有的行。

     Delete語句: delete from tbl_name [WHERE where_definition] 

      (1)如果不使用where子句,將刪除表中所有資料。

      (2)Delete語句不能刪除某一列的值(可使用update)

      (3)使用delete語句僅刪除記錄,不刪除表本身。如要刪除表,使用drop table語句。

      (4)同insert和update一樣,從一個表中刪除記錄將引起其它表的參照完整性問題,在修改資料庫資料時,頭腦中應該始終不要忘記這個潛在的問題。

      (5)刪除表中資料也可使用TRUNCATE TABLE 語句,它和delete有所不同,參看mysql文檔。

     Select語句:SELECT [DISTINCT] *|{column1, column2. column3..} FROM table;

      (1)Select 指定查詢哪些列的資料。

      (2)column指定列名。

      (3)*號代表查詢所有列。

      (4)From指定查詢哪張表。

      (5)DISTINCT可選,指顯示結果時,是否剔除重複資料

      (6)在select語句中可使用運算式對查詢的列進行運算:SELECT *|{column1|expression, column2|expression,..} FROM table;

      (7)在select語句中可使用as語句:SELECT column as 別名 from 表名;

  使用where子句,進行過濾查詢,在where子句中經常使用的運算子:


  使用order by 子句排序查詢結果:SELECT column1, column2. column3..FROMtable order by column asc|desc

              (1)Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 語句後指定的列名。
              (2)Asc 升序、Desc 降序
              (3)ORDER BY 子句應位於SELECT語句的結尾。

  Count(列名)返回某一列,行的總數:Select count(*)|count(列名) from tablename [WHERE where_definition]

      Sum函數返回滿足where條件的行的和: Select sum(列名){,sum(列名)…} from tablename [WHERE where_definition]  

  AVG函數返回滿足where條件的一列的平均值: Select avg(列名){,avg(列名)…} from tablename [WHERE where_definition]  

  Max/min函數返回滿足where條件的一列的最大/最小值: Select max(列名) from tablename [WHERE where_definition] 

  使用group by 子句對列進行分組: SELECT column1, column2. column3.. FROM table group by column

表的約束

    定義主鍵約束 :  primary key (不允許為空白,不允許重複)

           刪除主鍵:alter table tablename drop primary key ;

           定義主鍵自動成長: auto_increment

           定義唯一約束:unique

           定義非空約束:not null

           定義外鍵約束:constraint ordersid_FK foreign key(ordersid) references orders(id),

MySQL字元集

    mysql有六處使用了字元集,分別為:client 、connection、database、results、server 、system。
    client是用戶端使用的字元集。
    connection是串連資料庫的字元集設定類型,如果程式沒有指明串連資料庫使用的字元集類型就按照伺服器端預設的字元集設定。
    database是資料庫伺服器中某個庫使用的字元集設定,如果建庫時沒有指明,將使用伺服器安裝時指定的字元集設定。
    results是資料庫給用戶端返回時使用的字元集設定,如果沒有指明,使用伺服器預設的字元集。
    server是伺服器安裝時指定的預設字元集設定。
    system是資料庫系統使用的字元集設定。

SQL入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.