欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

MySQL學習筆記一

系統 2125 0

一、數據庫簡單介紹

1、 按照數據庫的發展時間順序,主要出現了以下類型數據庫系統:

? 網狀型數據庫

? 層次型數據庫

? 關系型數據庫

? 面向對象數據庫

上面4中數據庫系統中,關系型數據庫使用最為廣泛。面向對象數據庫則是由面向對象語言催生的新型數據庫,目前的一些數據庫系統,如:SQL Server 2005、Oracle10g等都開始增加面向對象的特性。

?

二、常用基本SQL語句/語法

?? SQL 語句基礎理論

SQL是操作和檢索關系型數據庫的標準語言,標準SQL語句可用于操作然后關系型數據庫。

標準的 SQL 語句通常劃分為以下類型:

查詢語句: 主要由于select關鍵字完成,查詢語句是SQL語句中最復雜,功能最豐富的語句。

DML (Data Munipulation Language,數據操作語言)語句,這組DML語句修改后數據將保持較好的一致性;操作表的語句,如插入、修改、刪除等;

DDL (Data Definition Language,數據定義語言)語句,操作數據對象的語言,有create、alter、drop。

DCL (Data Control Language,數據控制語言)語句,主要有grant、revoke語句。

事務控制語句: 主要有commit、rollback和savepoint三個關鍵字完成

DDL 語句

DDL語句是操作數據庫對象的語句,包括創建create、刪除drop、修改alter數據庫對象。

常見數據庫對象

對象名稱

對應關鍵字

描述

table

表是數據庫存儲的邏輯單元,以行和列的形式存在;列是字段,行就是一條數據記錄

數據字典

?

就是系統表,存儲數據庫相關信息的表,系統表里的數據通常有數據庫系統維護。系統表結構和數據,開發人員不應該手動修改,只能查詢其中的數據

視圖

view

一個或多個數據表里的數據的邏輯顯示,視圖就是一張虛擬的表,并不真正存儲數據

約束

constraint

執行數據檢驗規則,用于保證數據完整性的規則

索引

index

用于提高查詢性能,相當于書的目錄

函數

function

用于完成一個特定的計算,具有返回值和參數

存儲過程

procedure

完成某項完整的業務處理,沒有返回值,但可通過傳出參數將多個值傳個調用環境

觸發器

trigger

相當于一個事件的監聽器,當數據庫發生特定的事件后,觸發器被觸發,完成響應處理

上面的對象都可以通過用create、alter、drop完成相關的創建、修改、刪除操作。

常用數據類型

列類型

說明

tinyint/smallint/mediumint int(integer)/bigint

1字節、2字節、3字節、4字節、8字節整數,又可分有符號和無符號兩種。這些整數類型的區別僅僅表現范圍不同

float/double

單精度、雙精度浮點類型

decimal(dec)

精確小數類型,相當于float和double不會產生精度丟失問題

date

日期類型,不能保存時間。當Java里的Date對象保存到該類型中,時間部分丟失

time

時間類型,不能保存日期。當Java的Date對象的保存在該類型中,日期部分丟失

datetime

日期、時間類型

timestamp

時間戳類型

year

年類型,僅保存年份

char

定長字符串類型

varchar

可變長度字符串類型

binary

定長二進制字符串類型,它以二進制形式保存字符串

varbinary

可變長度的二進制字符串類型,二進制形式保存字符串

tingblob/blob

mediumblob/longblob

1字節、2字節、3字節、4字節的二進制大對象,可存存儲超圖片、音樂等二進制數據,分別可存儲:255/64K/16M/4G的大小

tingtext/text

mediumtext/longtext

1字節、2字節、3字節、4字節的文本對象,可存儲超長長度的字符串,分別可存儲:255/64K/16M/4G的大小的文本

enum(‘val1’, ‘val2’, …)

枚舉類型,該列的值只能是enum括號中出現的值的之一

set(‘value1’, ‘value2’, …)

集合類型,該列的值可以是set中的一個或多個值

? 常用查詢

        MySQL結束符是“;”結束。
      
        ?
      
        1、    顯示所有數據庫
      
        show databases;
      
        ?
      
        2、    刪除數據庫
      
        
          drop
        
        
          database
        
         dbName;
      
        ?
      
        3、    創建數據庫
      
        
          create
        
        
          database
        
         [
        
          if
        
        
          not
        
        
          exists
        
        ] dbName;
      
        中括號部分可選的,判斷該數據不存在就創建
      
        ?
      
        4、    切換、使用指定數據庫
      
        
          use
        
         dbName;
      
        ?
      
        5、    顯示當前使用數據庫所有的表對象
      
        show tables;
      
        ?
      
        6、    顯示表結構describe(
        
          desc
        
        
          desc
        
         tableName;
      
        ?
      
        7、    創建一張表
      
        
          create
        
        
          table
        
        
          user
        
         (
      
                --
        
          int
        
         整型
      
                uId 
        
          int
        
        ,
      
                --小數
      
                uPrice 
        
          decimal
        
        ,
      
                --普通長度文本,default設置默認值
      
                uName 
        
          varchar
        
        (255) 
        
          default
        
         ‘zhangsan’,
      
                --超長文本
      
                uRemark text,
      
                --圖片
      
                uPhoto 
        
          blob
        
        ,
      
                --日期
      
                uBirthday datetime
      
        );
      
        ?
      
        8、    子查詢建表方法
      
        部分列名匹配模式:
      
        
          create
        
        
          table
        
         userInfo (
      
        name 
        
          varchar
        
        (20),
      
        sex 
        
          char
        
      
        ) 
      
        
          as
        
      
        
          select
        
         name, sex 
        
          from
        
        
          user
        
        ;
      
        上面的列名和子查詢的列名以及類型要對應
      
        ?
      
        全部列名模式:
      
        
          create
        
        
          table
        
         userInfo
      
        
          as
        
      
        
          select
        
         * 
        
          from
        
        
          user
        
        ;
      
        直接將整個表的類型和數據備份到新表userInfo中
      
        ?
      
        9、    添加表字段
      
        添加單列
      
        
          alter
        
        
          table
        
        
          user
        
        
          add
        
         tel 
        
          varchar
        
        (11) 
        
          default
        
         ‘02012345678’;
      
        ?
      
        添加多列
      
        
          alter
        
        
          table
        
        
          user
        
      
        
          add
        
         ( 
      
        photo 
        
          blob
        
        ,
      
        birthday 
        
          date
        
      
        );
      
        上面就同時增加了多列字段
      
        ?
      
        10、    修改表字段
      
        修改tel列
      
        
          alter
        
        
          table
        
        
          user
        
        
          modify
        
         tel 
        
          varchar
        
        (15) 
        
          default
        
         ‘02087654321’;
      
        修改tel列的位置,在第一列顯示
      
        
          alter
        
        
          table
        
        
          user
        
        
          modify
        
         tel 
        
          varchar
        
        (15) 
        
          default
        
        
          '02087654321'
        
        
          first
        
        ;
      
        修改tel列的位置,在指定列之后顯示
      
        
          alter
        
        
          table
        
        
          user
        
        
          modify
        
         tel 
        
          varchar
        
        (15) 
        
          default
        
        
          '02087654321'
        
        
          after
        
         age;
      
        注意:
        
          alter
        
         modify不支持一次修改多個列,但是Oracle支持多列修改
      
        但是MySQL可以通過多個modify的方式完成:
      
        
          alter
        
        
          table
        
        
          user
        
      
        
          modify
        
         tel 
        
          varchar
        
        (15) 
        
          default
        
        
          '02087654321'
        
        
          first
        
        , 
      
        
          modify
        
         name 
        
          varchar
        
        (20) 
        
          after
        
         tel;
      
        ?
      
        11、    刪除指定字段
      
        
          alter
        
        
          table
        
        
          user
        
        
          drop
        
         photo;
      
        ?
      
        12、    重命名表數據
      
        表重命名
      
        
          alter
        
        
          table
        
        
          user
        
         rename 
        
          to
        
         users;
      
        ?
      
        字段重命名
      
        
          alter
        
        
          table
        
         users change name u_name 
        
          varchar
        
        (10);
      
        
          alter
        
        
          table
        
         users change sex u_sex 
        
          varchar
        
        (10) 
        
          after
        
         u_name;
      
        如果需要改變列名建議使用change,如果需要改變數據類型和顯示位置可以使用modify
      

13、 刪除表

        
          drop
        
        
          table
        
         users;
      
        drop刪除表會刪除表結構,表對象將不存在數據中;數據也不會存在;表內的對象也不存在,如:索引、視圖、約束;
      
        ?
      
        truncate刪除表
      
        truncate都被當成DDL出來,truncate的作用就是刪除該表里的全部數據,保留表結構。相當于DDL中的delete語句,
      
        但是truncate比delete語句的速度要快得多。但是truncate不能帶條件刪除指定數據,只會刪除所有的數據。如果刪除的表有外鍵,
      
        刪除的速度類似于delete。但新版本的MySQL中truncate的速度比delete速度快。
      

? 約束

MySQL中約束保存在information_schema數據庫的table_constraints中,可以通過該表查詢約束信息;

        約束主要完成對數據的檢驗,保證數據庫數據的完整性;如果有相互依賴數據,保證該數據不被刪除。
      
        ?
      
        常用五類約束:
      
        
          not
        
        
          null
        
        :非空約束,指定某列不為空
      
        
          unique
        
        : 唯一約束,指定某列和幾列組合的數據不能重復
      
        
          primary
        
        
          key
        
        :主鍵約束,指定某列的數據不能重復、唯一
      
        
          foreign
        
        
          key
        
        :外鍵,指定該列記錄屬于主表中的一條記錄,參照另一條數據
      
        
          check
        
        :檢查,指定一個表達式,用于檢驗指定數據
      
        MySQL不支持check約束,但可以使用check約束,而沒有任何效果;
      
        ?
      
        根據約束數據列限制,約束可分為:
      
        單列約束:每個約束只約束一列
      
        多列約束:每個約束約束多列數據
      
        ?
      
        MySQL中約束保存在information_schema數據庫的table_constraints中,可以通過該表查詢約束信息;
      
        1、    
        
          not
        
         null約束
      
        非空約束用于確保當前列的值不為空值,非空約束只能出現在表對象的列上。
      
        Null類型特征:
      
        所有的類型的值都可以是null,包括int、float等數據類型
      
        空字符串“”是不等于null,0也不等于null
      
        
          create
        
        
          table
        
         temp(
      
                id 
        
          int
        
        
          not
        
        
          null
        
        ,
      
                name 
        
          varchar
        
        (255) 
        
          not
        
        
          null
        
        
          default
        
         ‘abc’,
      
                sex 
        
          char
        
        
          null
        
      
        )
      
        上面的table加上了非空約束,也可以用alter來修改或增加非空約束
      
        增加非空約束
      
        
          alter
        
        
          table
        
         temp
      
        
          modify
        
         sex 
        
          varchar
        
        (2) 
        
          not
        
        
          null
        
        ;
      
        ?
      
        取消非空約束
      
        
          alter
        
        
          table
        
         temp 
        
          modify
        
         sex 
        
          varchar
        
        (2) 
        
          null
        
        ;
      
        ?
      
        取消非空約束,增加默認值
      
        
          alter
        
        
          table
        
         temp 
        
          modify
        
         sex 
        
          varchar
        
        (2) 
        
          default
        
         ‘abc’ 
        
          null
        
        ;
      
        ?
      
        2、    
        
          unique
        
      
        唯一約束是指定table的列或列組合不能重復,保證數據的唯一性。雖然唯一約束不允許出現重復的值,但是可以為多個null
      
        同一個表可以有多個唯一約束,多個列組合的約束。在創建唯一約束的時候,如果不給唯一約束名稱,就默認和列名相同。
      
        唯一約束不僅可以在一個表內創建,而且可以同時多表創建組合唯一約束。
      
        MySQL會給唯一約束的列上默認創建一個唯一索引;
      
        
          create
        
        
          table
        
         temp (
      
                id 
        
          int
        
        
          not
        
        
          null
        
        ,
      
                name 
        
          varchar
        
        (25),
      
                password 
        
          varchar
        
        (16),
      
                --使用表級約束語法,
      
        
          constraint
        
         uk_name_pwd 
        
          unique
        
        (name, password)
      
        );
      
        表示用戶名和密碼組合不能重復
      
        添加唯一約束
      
        
          alter
        
        
          table
        
         temp 
        
          add
        
        
          unique
        
        (name, password);
      
        
          alter
        
        
          table
        
         temp 
        
          modify
        
         name 
        
          varchar
        
        (25) 
        
          unique
        
        ;
      
        刪除約束
      
        
          alter
        
        
          table
        
         temp 
        
          drop
        
        
          index
        
         name;
      
        ?
      
        3、    
        
          primary
        
        
          key
        
      
        主鍵約束相當于唯一約束+非空約束的組合,主鍵約束列不允許重復,也不允許出現空值;如果的多列組合的主鍵約束,
      
        那么這些列都不允許為空值,并且組合的值不允許重復。
      
        每個表最多只允許一個主鍵,建立主鍵約束可以在列級別創建,也可以在表級別上創建。MySQL的主鍵名總是PRIMARY,
      
        當創建主鍵約束時,系統默認會在所在的列和列組合上建立對應的唯一索引。
      
        列模式:
      
        
          create
        
        
          table
        
         temp(
      
        
          /*主鍵約束*/
        
      
            id 
        
          int
        
        
          primary
        
        
          key
        
        ,
      
            name 
        
          varchar
        
        (25)
      
        );
      
        ?
      
        
          create
        
        
          table
        
         temp2(
      
            id 
        
          int
        
        
          not
        
        
          null
        
        ,
      
            name 
        
          varchar
        
        (25),
      
            pwd 
        
          varchar
        
        (15),
      
        
          constraint
        
         pk_temp_id 
        
          primary
        
        
          key
        
        (id)
      
        );
      
        ?
      
        組合模式:
      
        
          create
        
        
          table
        
         temp2(
      
            id 
        
          int
        
        
          not
        
        
          null
        
        ,
      
            name 
        
          varchar
        
        (25),
      
            pwd 
        
          varchar
        
        (15),
      
        
          constraint
        
         pk_temp_id 
        
          primary
        
        
          key
        
        (name, pwd)
      
        );
      
        ?
      
        alter刪除主鍵約束
      
        
          alter
        
        
          table
        
         temp 
        
          drop
        
        
          primary
        
        
          key
        
        ;
      
        ?
      
        alter添加主鍵
      
        
          alter
        
        
          table
        
         temp 
        
          add
        
        
          primary
        
        
          key
        
        (name, pwd);
      
        ?
      
        alter修改列為主鍵
      
        
          alter
        
        
          table
        
         temp 
        
          modify
        
         id 
        
          int
        
        
          primary
        
        
          key
        
        ;
      
        ?
      
        設置主鍵自增
      
        
          create
        
        
          table
        
         temp(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (20),
      
                pwd 
        
          varchar
        
        (16)
      
        );
      
        auto_increment自增模式,設置自增后在插入數據的時候就不需要給該列插入值了。
      
        ?
      
        4、    
        
          foreign
        
        
          key
        
         約束
      
        外鍵約束是保證一個或兩個表之間的參照完整性,外鍵是構建于一個表的兩個字段或是兩個表的兩個字段之間的參照關系。
      
        也就是說從表的外鍵值必須在主表中能找到或者為空。
      
        當主表的記錄被從表參照時,主表的記錄將不允許刪除,如果要刪除數據,需要先刪除從表中依賴該記錄的數據,
      
        然后才可以刪除主表的數據。還有一種就是級聯刪除子表數據。
      
        注意:外鍵約束的參照列,在主表中引用的只能是主鍵或唯一鍵約束的列,假定引用的主表列不是唯一的記錄,
      
        那么從表引用的數據就不確定記錄的位置。同一個表可以有多個外鍵約束。
      
        創建外鍵約束:
      
        主表
      
        
          create
        
        
          table
        
         classes(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (20)
      
        );
      
        從表
      
        
          create
        
        
          table
        
         student(
      
                id 
        
          int
        
         auto_increment,
      
                name 
        
          varchar
        
        (22),
      
        
          constraint
        
         pk_id 
        
          primary
        
        
          key
        
        (id),
      
                classes_id 
        
          int
        
        
          references
        
         classes(id)
      
        );
      
        ?
      
        通常先建主表,然后再建從表,這樣從表的參照引用的表才存在。
      
        表級別創建外鍵約束:
      
        
          create
        
        
          table
        
         student(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (25),
      
                classes_id 
        
          int
        
        ,
      
        
          foreign
        
        
          key
        
        (classes_id) 
        
          references
        
         classes(id)
      
        );
      
        上面的創建外鍵的方法沒有指定約束名稱,系統會默認給外鍵約束分配外鍵約束名稱,命名為student_ibfk_n,
      
        其中student是表名,n是當前約束從1開始的整數。
      
        ?
      
        指定約束名稱:
      
        
          create
        
        
          table
        
         student(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (25),
      
                classes_id 
        
          int
        
        ,
      
        
          /*指定約束名稱*/
        
      
        
          constraint
        
         fk_classes_id 
        
          foreign
        
        
          key
        
        (classes_id) 
        
          references
        
         classes(id)
      
        );
      
        ?
      
        多列外鍵組合,必須用表級別約束語法:
      
        
          create
        
        
          table
        
         classes(
      
                id 
        
          int
        
        ,
      
                name 
        
          varchar
        
        (20),
      
                number 
        
          int
        
        ,
      
        
          primary
        
        
          key
        
        (name, number)
      
        );
      
        
          create
        
        
          table
        
         student(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (20),
      
                classes_name 
        
          varchar
        
        (20),
      
                classes_number 
        
          int
        
        ,
      
        
          /*表級別聯合外鍵*/
        
      
        
          foreign
        
        
          key
        
        (classes_name, classes_number) 
        
          references
        
         classes(name, number)
      
        );
      
        ?
      
        刪除外鍵約束:
      
        
          alter
        
        
          table
        
         student 
        
          drop
        
        
          foreign
        
        
          key
        
         student_ibfk_1;
      
        
          alter
        
        
          table
        
         student 
        
          drop
        
        
          foreign
        
        
          key
        
         fk_student_id;
      
        ?
      
        增加外鍵約束
      
        
          alter
        
        
          table
        
         student 
        
          add
        
        
          foreign
        
        
          key
        
        (classes_name, classes_number) 
        
          references
        
         classes(name, number);
      
        ?
      
        自引用、自關聯(遞歸表、樹狀表)
      
        
          create
        
        
          table
        
         tree(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (50),
      
                parent_id 
        
          int
        
        ,
      
        
          foreign
        
        
          key
        
        (parent_id) 
        
          references
        
         tree(id)
      
        );
      
        ?
      
        級聯刪除:刪除主表的數據時,關聯的從表數據也刪除,則需要在建立外鍵約束的后面增加on 
        
          delete
        
        
          cascade
        
      
        或on 
        
          delete
        
        
          set
        
        
          null
        
        ,前者是級聯刪除,后者是將從表的關聯列的值設置為null。
      
        
          create
        
        
          table
        
         student(
      
                id 
        
          int
        
         auto_increment 
        
          primary
        
        
          key
        
        ,
      
                name 
        
          varchar
        
        (20),
      
                classes_name 
        
          varchar
        
        (20),
      
                classes_number 
        
          int
        
        ,
      
        
          /*表級別聯合外鍵*/
        
      
        
          foreign
        
        
          key
        
        (classes_name, classes_number) 
        
          references
        
         classes(name, number) 
        
          on
        
        
          delete
        
        
          cascade
        
      
        );
      
        ?
      
        5、    check約束
      
        MySQL可以使用check約束,但check約束對數據驗證沒有任何作用。
      
        
          create
        
        
          table
        
         temp(
      
                id 
        
          int
        
         auto_increment,
      
                name 
        
          varchar
        
        (20),
      
                age 
        
          int
        
        ,
      
        
          primary
        
        
          key
        
        (id),
      
        
          /*check約束*/
        
      
        
          check
        
        (age > 20)
      
        );
      
        上面check約束要求age必須大于0,但沒有任何作用。但是創建table的時候沒有任何錯誤或警告。
      
        ?
      
?

? 索引

        索引是存放在模式(
        
          schema
        
        )中的一個數據庫對象,索引的作用就是提高對表的檢索查詢速度,
      
        索引是通過快速訪問的方法來進行快速定位數據,從而減少了對磁盤的讀寫操作。
      
        索引是數據庫的一個對象,它不能獨立存在,必須對某個表對象進行依賴。
      
        提示:索引保存在information_schema數據庫里的STATISTICS表中。
      
        ?
      
        創建索引方式:
      
        自動:當表上定義主鍵約束、唯一、外鍵約束時,該表會被系統自動添加上索引。
      
        手動:手動在相關表或列上增加索引,提高查詢速度。
      
        ?
      
        刪除索引方式:
      
        自動:當表對象被刪除時,該表上的索引自動被刪除
      
        手動:手動刪除指定表對象的相關列上的索引
      
        索引類似于書籍的目錄,可以快速定位到相關的數據,一個表可以有多個索引。
      
        ?
      
        創建索引:
      
        
          create
        
        
          index
        
         idx_temp_name 
        
          on
        
         temp(name);
      
        ?
      
        組合索引:
      
        
          create
        
        
          index
        
         idx_temp_name$pwd 
        
          on
        
         temp(name, pwd);
      
        ?
      
        刪除索引:
      
        
          drop
        
        
          index
        
         idx_temp_name 
        
          on
        
         temp;
      

?

? 視圖

        視圖就是一個表或多個表的查詢結果,它是一張虛擬的表,因為它并不能存儲數據。
      
        視圖的作用、優點:
      
        限制對數據的訪問
      
        讓復雜查詢變得簡單
      
        提供數據的獨立性
      
        可以完成對相同數據的不同顯示
      
      
        創建、修改視圖
      
        
          create
        
        
          or
        
         replace 
        
          view
        
         view_temp
      
        
          as
        
      
        
          select
        
         name, age 
        
          from
        
         temp;
      
        通常我們并不對視圖的數據做修改操作,因為視圖是一張虛擬的表,它并不存儲實際數據。如果想讓視圖不被修改,可以用with 
        
          check
        
         option來完成限制。
      
        
          create
        
        
          or
        
         replace 
        
          view
        
         view_temp
      
        
          as
        
      
        
          select
        
         * 
        
          from
        
         temp
      
        
          with
        
        
          check
        
        
          option
        
        ;
      
        ?
      
        修改視圖:
      
        
          alter
        
        
          view
        
         view_temp
      
        
          as
        
      
        
          select
        
         id, name 
        
          from
        
         temp;
      
        ?
      
        刪除視圖:
      
        
          drop
        
        
          view
        
         view_temp;
      
        ?
      
        顯示創建語法:
      
        show 
        
          create
        
        
          view
        
         v_temp;
      

?

? DML語句

        DML主要針對數據庫表對象的數據而言的,一般DML完成:
      
        插入新數據
      
        修改已添加的數據
      
        刪除不需要的數據
      
        1、    insert 
        
          into
        
         插入語句
      
        insert 
        
          into
        
         temp 
        
          values
        
        (
        
          null
        
        , ‘jack’, 25);
      
        主鍵自增可以不插入,所以用null代替
      
        ?
      
        指定列
      
        insert 
        
          into
        
         temp(name, age) 
        
          values
        
        (‘jack’, 22);
      
        在表面后面帶括號,括號中寫列名,values中寫指定列名的值即可。當省略列名就表示插入全部數據,
      
        注意插入值的順序和列的順序需要保持一致。
      
        Set方式插入,也可以指定列
      
        insert 
        
          into
        
         temp 
        
          set
        
         id = 7, name = 
        
          'jason'
        
        ;
      
        ?
      
        MySQL中外鍵的table的外鍵引用列可以插入數據可以為null,不參照主表的數據。
      
        ?
      
        使用子查詢插入數據
      
        insert 
        
          into
        
         temp(name) 
        
          select
        
         name 
        
          from
        
         classes;
      
        ?
      
        多行插入
      
        insert 
        
          into
        
         temp 
        
          values
        
        (
        
          null
        
        , ‘jack’, 22), (
        
          null
        
        , ‘jackson’ 23);
      
        ?
      
        2、    
        
          update
        
         修改語句
      
        update主要完成對數據的修改操作,可以修改一條或多條數據。修改多條或指定條件的數據,需要用where條件來完成。
      
        修改所有數據
      
        
          update
        
         temp 
        
          set
        
         name = ‘jack2’;
      
        所有的數據的name會被修改,如果修改多列用“,”分開
      
        
          update
        
         temp 
        
          set
        
         name = ‘jack’, age = 22;
      
        修改指定條件的記錄需要用where
      
        
          update
        
         temp 
        
          set
        
         name = ‘jack’ 
        
          where
        
         age > 22;
      
        ?
      
        3、    
        
          delete
        
         刪除語句
      
        刪除table中的數據,可以刪除所有,帶條件可以刪除指定的記錄。
      
        刪除所有數據
      
        
          delete
        
        
          from
        
         temp;
      
        刪除指定條件數據
      
        
          delete
        
        
          from
        
         temp 
        
          where
        
         age > 20;
      

?

? select 查詢、function 函數

        select查詢語句用得最廣泛、功能也最豐富。可以完成單條記錄、多條記錄、單表、多表、子查詢等。
      
        1、    查詢某張表所有數據
      
        
          select
        
         * 
        
          from
        
         temp;
      
        *代表所有列,temp代表表名,不帶條件就查詢所有數據
      
        ?
      
        2、    查詢指定列和條件的數據
      
        
          select
        
         name, age 
        
          from
        
         temp 
        
          where
        
         age = 22;
      
        查詢name和age這兩列,age 等于22的數據。
      
        ?
      
        3、    對查詢的數據進行運算操作
      
        
          select
        
         age + 2, age / 2, age – 2, age * 2 
        
          from
        
         temp 
        
          where
        
         age – 2 > 22;
      
        ?
      
        4、    concat函數,字符串連接
      
        
          select
        
         concat(name, ‘-eco’) 
        
          from
        
         temp;
      
        concat和null進行連接,會導致連接后的數據成為null
      
        ?
      
        5、    
        
          as
        
         對列重命名
      
        
          select
        
         name 
        
          as
        
         ‘名稱’ 
        
          from
        
         temp;
      
        as也可以省略不寫,效果一樣
      
        如果重命名的列名出現特殊字符,如“‘”單引號,那就需要用雙引號引在外面
      
        
          select
        
         name 
        
          as
        
         “名’稱” 
        
          from
        
         temp;
      
        ?
      
        6、    也可以給table去別名
      
        
          select
        
         t.name Name 
        
          from
        
         temp 
        
          as
        
         t;
      
        ?
      
        7、    查詢常量
      
        類似于SQL Server
      
        
          select
        
         5 + 2;
      
        
          select
        
         concat(
        
          'a'
        
        , 
        
          'bbb'
        
        );
      
        ?
      
        8、    
        
          distinct
        
         去掉重復數據
      
        
          select
        
        
          distinct
        
         id 
        
          from
        
         temp;
      
        多列將是組合的重復數據
      
        
          select
        
        
          distinct
        
         id, age 
        
          from
        
         temp;
      
        ?
      
        9、    
        
          where
        
         條件查詢
      
        大于>、大于等于>=、小于<、小于等于<=、等于=、不等于<>
      
        都可以出現在where語句中
      
        
          select
        
         * 
        
          from
        
         t 
        
          where
        
         a > 2 
        
          or
        
         a >= 3 
        
          or
        
         a < 5 
        
          or
        
         a <= 6 
        
          or
        
         a = 7 
        
          or
        
         a <> 0;
      
        ?
      
        10、    
        
          and
        
         并且
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         age > 20 
        
          and
        
         name = ‘jack’;
      
        查詢名稱等于jack并且年齡大于20的
      
        ?
      
        11、    
        
          or
        
         或者
      
        滿足一個即可
      
        
          select
        
         * 
        
          from
        
         tmep 
        
          where
        
         name = ‘jack’ 
        
          or
        
         name = ‘jackson’;
      
        ?
      
        12、    
        
          between
        
         v 
        
          and
        
         v2
      
        大于等于v且小于等于v2
      
        
          select
        
         * form temp 
        
          where
        
         age 
        
          between
        
         20 
        
          and
        
         25; 
      
        ?
      
        13、    
        
          in
        
         查詢
      
        可以多個條件 類似于or
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         id 
        
          in
        
         (1, 2, 3);
      
        查詢id在括號中出現的數據
      
        ?
      
        14、    
        
          like
        
         模糊查詢
      
        查詢name以j開頭的
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         name 
        
          like
        
         ‘j%’;
      
        ?
      
        查詢name包含k的
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         name 
        
          like
        
         ‘%k%’;
      
        ?
      
        escape轉義
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         name 
        
          like
        
         ‘\_%’ 
        
          escape
        
         ‘\’;
      
        指定\為轉義字符,上面的就可以查詢name中包含“_”的數據
      
        ?
      
        15、    
        
          is
        
        
          null
        
          is
        
        
          not
        
        
          null
        
      
        查詢為null的數據
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         name 
        
          is
        
        
          null
        
        ;
      
        查詢不為null的數據
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         name 
        
          is
        
        
          not
        
        
          null
        
        ;
      
        ?
      
        16、    
        
          not
        
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
        
          not
        
         (age > 20);
      
        取小于等于20的數據
      
        
          select
        
         * 
        
          from
        
         temp 
        
          where
        
         id 
        
          not
        
        
          in
        
        (1, 2);
      
        ?
      
        17、    
        
          order
        
        
          by
        
      
        排序,有desc、asc升序、降序
      
        
          select
        
         * 
        
          from
        
         temp 
        
          order
        
        
          by
        
         id;
      
        默認desc排序
      
        
          select
        
         * 
        
          from
        
         temp 
        
          order
        
        
          by
        
         id 
        
          asc
        
        ;
      
        多列組合
      
        
          select
        
         * 
        
          from
        
         temp 
        
          order
        
        
          by
        
         id, age;
      

MySQL學習筆記一


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美成人精品一区二区三区 | 狠狠草视频 | 一区二区蜜桃 | 热伊人99re久久精品最新地 | 国产vr一区二区在线观看 | 一级片在线 | 亚洲人视频 | 九九精品视频在线观看九九 | 羞羞的视频在线免费观看 | 亚洲欧美中文日韩在线 | 精品视频在线观看视频免费视频 | 女人一级毛片免费视频观看 | 亚洲午夜精品A片久久WWW软件 | 久综合网 | 青娱乐网站 | 久草在线免费福利视频 | 天天干电影 | 国产高清美女一级a毛片久久 | 欧美亚洲一区二区三区 | 国产精品一区久久 | 极品嫩模私拍后被潜在线观看 | 国产精品中文字幕在线观看 | 日韩成人高清 | 五月天色婷婷在线 | 91精品久久久久久久久久 | 日韩福利视频导航 | 久久av网 | 色婷婷综合缴情综六月 | 亚洲人性生活视频 | 日本不卡在线视频 | 超级碰碰碰免费视频 | 久久av影院 | 国产午夜永久福利视频在线观看 | 国产高清视频 | 国产精品精品 | 国产亚洲情侣一区二区无 | 女人被男人狂躁下面在线观看 | 一级黄毛片| 天天摸天天添 | 成人午夜天堂 | 亚洲精品无码不卡在线播放he |