日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL数据库应用第3章操作数据库

發布時間:2025/4/5 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL数据库应用第3章操作数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

  MySQL安裝好以后,首先需要創建數據庫,這是使用mysql各種功能的前提。本章將詳細介紹數據的基本操作,主要內容包括數據庫的創建和刪除,不同類型的數據存儲引擎和存儲引擎的選擇。

  學習目標:

    1、掌握創建數據庫的方法;

    2、熟悉數據庫的刪除操作;

    3、了解數據庫存儲引擎;

    4、熟悉常見的存儲引擎工作原理;

    5、掌握常見的mysql工具;

    6、掌握綜合實例中數據庫的創建和刪除方法;

?

3.1?創建數據庫

  mysql安裝完成后,將會在其data目錄下自動創建幾個必須的數據庫,可以使用"show databases;"語句來查看當前所存在的數據庫,輸入語句及其執行結果如下:

  

  注意事項:語句必須以分號“;”結尾,否則會報錯的。

?

  可以看到,數據庫列表中包含 6個?數據庫:

    mysql:是必須的,用于描述用戶訪問權限;

    test:用于做測試的工作;

  其它數據庫在后面的章節中介紹。

  

  創建數據庫是指在系統磁盤上劃分一塊區域用于數據的存儲和管理。如果管理員在設置權限的時候為用戶創建了數據庫,則可以直接使用,否則需要自己創建數據庫。mysql創建數據庫的基本sql語法格式如下:

    create database database_name;

  database_name為要創建的數據庫的名稱,該名稱下不能與已經存在的數據庫重名;

  【示例3.1】創建測試數據test_db:?create database test_db;

    

  【示例3.2】查看創建好的數據庫的定義:show create database test_db\G;  可以看到,如果數據庫創建成功,將顯示數據庫的創建信息。

  再次使用show databases;語名來查看當前所存在的數據庫,輸入的語句及其搪行結果如下:

    

  可以看到,數據庫列表中出現了剛剛創建的數據test_db和其他原有的數據庫。

?

3.2 刪除數據庫

  刪除數據庫是指將已經存在的數據庫從磁盤空間上刪除,清除數據庫之后,數據庫中的所有數據也將一同被刪除。刪除數據庫的語句和數據庫的語句相似,mysql中刪除數據庫的基本語法格式如下:

    drop database database_name;

  database_name為要刪除的數據庫的名稱,如果指定的數據庫不存在,則刪除操作出錯。

  【示例3.3】刪除測試數據庫:drop databaswe test_db;

    

  語句執行完成之后,數據庫被刪除,再次查看數據庫的定義,結果如下:

    

  執行結果報錯,即數據庫已不存在,刪除成功。

   

  【注】使用drop database?語句時要非常謹慎,在執行該語句時,mysql不會給出任何提示確認信息。并且數據庫中存儲的所有數據表和數據也將一同被刪除,而且不能恢復。

?

?

3.3?數據庫存儲引擎

  數據庫存儲引擎是數據庫的底層軟件組件,數據庫管理系統(DBMS)使用數據引擎進行創建、查詢、更新和刪除數據庫操作。不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,可以獲行不同的功能。現在許多不同的數據庫管理是系統都支持多種不同的數據引擎。mysql的核心就是存儲引擎。

  mysql提供了多個不同的存儲引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎。在mysql中,不需要在整個服務器中使用同一種存儲引擎,針對具體的要求,可以對每一個表使用不同的存儲引擎。mysql 5.6支持的存儲引擎有 InnoDB、MyISAM、Menory、Merge、Archive、Federated、CSV、BLACKHOLE等。可以使用show engines語句查看系統所支持的引擎類型,結果如下:

  mysql> show engines \G

  *************************** 1. row ***************************
  Engine: MEMORY
  Support: YES
  Comment: Hash based, stored in memory, useful for temporary tables
  Transactions: NO
  XA: NO
  Savepoints: NO
  *************************** 2. row ***************************
  Engine: MRG_MYISAM
  Support: YES
  Comment: Collection of identical MyISAM tables
  Transactions: NO
  XA: NO
  Savepoints: NO
  *************************** 3. row ***************************
  Engine: CSV
  Support: YES
  Comment: CSV storage engine
  Transactions: NO
  XA: NO
  Savepoints: NO
  *************************** 4. row ***************************
  Engine: FEDERATED
  Support: NO
  Comment: Federated MySQL storage engine
  Transactions: NULL
  XA: NULL
  Savepoints: NULL
  *************************** 5. row ***************************
  Engine: PERFORMANCE_SCHEMA
  Support: YES
  Comment: Performance Schema
  Transactions: NO
  XA: NO
  Savepoints: NO
  *************************** 6. row ***************************
  Engine: MyISAM
  Support: YES
  Comment: MyISAM storage engine
  Transactions: NO
  XA: NO
  Savepoints: NO
  *************************** 7. row ***************************
  Engine: InnoDB
  Support: DEFAULT
  Comment: Supports transactions, row-level locking, and foreign keys
  Transactions: YES
  XA: YES
  Savepoints: YES
  *************************** 8. row ***************************
  Engine: BLACKHOLE
  Support: YES
  Comment: /dev/null storage engine (anything you write to it disappears)
  Transactions: NO
  XA: NO
  Savepoints: NO
  *************************** 9. row ***************************
  Engine: ARCHIVE
  Support: YES
  Comment: Archive storage engine
  Transactions: NO
  XA: NO
  Savepoints: NO
  9 rows in set (0.00 sec)

  support的值可以表示某種引擎是否能使用:YES表示可以使用,NO表示不能使用,default表示該引擎為當前默認存儲引擎。

?

3.3.1 InnoDB存儲引擎

?  InnoDB是事務型數據庫的首選引擎,支持事務安全表(ACID),支持行鎖定和外鍵。mysql5.5.5之后,InnoDB作為默認存儲引擎,其主要特性如下:

    1、InnoDB給mysql提供了具有提交、回滾和崩潰恢復能力的事務安全(ACID?兼容)存儲引擎。InnoDB鎖定在行級并且也在select語句中提供一個類似oracle的非鎖定讀。這此功能增強了多用戶部署的性能。在sql查詢中,可以自由地將InnoDB類型的表與其他mysql類型的表混合起來,甚至在同一個查詢中也可以混合。

    2、InnoDB是為提高處理巨大數據量的性能設計的。它的CPU效率可能是任何其它基于磁盤的關系統數據庫引擎所不能匹敵的。

    3、InnoDB存儲引擎完全與mysql服務器整合,InnoDB存儲引擎為在主內存中緩存數據和索引而維持它自己的緩沖池。InnoDB將它的表和索引放在一個邏輯表空間中,表空間可以包含整個文件(或原始磁盤分區),這與mysql表不同,比如在myisam表中每個表被存放在相互分離的文件中。InnoDB表可以是任何大小,即使在文件大小被限制為2GB的操作系統中也如此。、

    4、InnoDB支持外鍵完整性約束(foreign key)。

    存儲表中的數據時,每張表的存儲都按主鍵順序存放,如果沒有在定義表時指定主鍵,InnoDB會為每一行生成一個6字節的rowid字段,并以此作為主鍵。

    5、InnoDB被用在從多需要高性能的大型數據庫站點上。

    InnoDB不創建目錄,使用InnoDB時,mysql將在mysql數據目錄下創建一個名為ibdata1的10MB大小的自動擴展數據文件,以及名為ib_logfile0?和 ib_logfile1兩個5 MB大小的日志文件。

?

3.3.2?MyISAM存儲引擎

  MyISAM是基于ISAM的存儲引擎,并對其進行了擴展。MyISAM是在web、數據倉儲和其它應用環境下最常使用的存儲引擎之一。MyISAM擁有較高的插入、查詢速度,但不支持事務。在mysql 5.5.5之前的版本中,MyISAM是默認的存儲引擎。MyISAM的主要特性如下。

  1、在支持大文件的文件系統和操作系統上,大文件(達63位文件長度)被支持。

  2、當把刪除和更新及插入操作混合使用的時候,將產生更少的碎片。

  3、每個MyISAM表的最大索引數量64,這可以通過重新編譯來改變。每個索引最大的列數是16.

  4、最大的鍵長度是1000字節,這也可以通過編譯來改變。

  5、blob和text列可以被索引。

  6、每個MyISAM類型的表都有一個auto_increment的內部列,當執行inster?和?update?操作的時候,auto_increment列將被刷新,所以說,MyISAM類型表的auto_increment列更新比InnoDB類型的auto_increment更快。

  8、可以把數據文件和索引文件放在不同的目錄。

  9、每個字符列可以有不同的字符集。

  10、varchar?和 char?列的長度可以多達64kb。

  使用MyISAM引擎創建數據庫,將產生3個文件。文件的名字以表的名字開始,擴展名可以指出文件類型:表定義文件的擴展名為.frm,數據文件的擴展名為.myd(mydata),索引文件的擴展名是.myi(myindex)

?

3.3.3?memory存儲引擎

  memory存儲引擎可以將表中的數據庫存儲到內存中,為查詢和引用其他表數據提供快速訪問。memory的主要特性如下:

    1、memory表可以有多達32個索引,每個索引有16列,以及500字節最大鍵長度。

    2、memory存儲引擎執行hash?和 btree?索引。

    3、可以在memory表中有非唯一鍵。

    4、memory表使用一個固定的記錄長度格式。

    5、memory存儲引擎不支持blob?或?text 列。

    6、memory存儲引擎支持atuto_increment列和包含null值的列的索引。

    7、memory表在所有客戶端之間共享(就像其它任何非temporary表)。

    8、memory表的內容被存放在內存中,內存是memory表和服務器在查詢處理時的空閑中創建的內部表共享。

    9、當不在需要memory表的內容時,要釋放被memory表占用的內存,應該執行delete from?或 truncate table,或者刪除整個表(使用drop?table)。

?

3.3.4?存儲引擎的選擇

  不同的存儲引擎,都有各自的特點,以適應不同的需求,如下表。為了做出選擇,首先需要考慮每個存儲引擎提供了哪些不同的功能。

    

  如果要提供提交 、回滾和崩潰恢復能力的事務安全(ACID?兼容)能力,并要求實現并發控制,InnoDB是個很好的選擇。

  如果數據表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率。

  如果只是臨時存放數據,數據量不大,并且不需要較高的數據安全性,可以選擇數據保存在內存中的Menmory引擎,MySQL中使用該引擎作為臨時表,存放查詢的中間結果。

  如果只有insert?和 select操作,可以選擇Archive引擎,Archive存儲引擎支持高并發的插入操作,但是本身并不是事務安全的。Archive存儲引擎非常適合存儲歸檔數據,如記錄日志信息可以使用Archive引擎。

  

  使用哪一種引擎要根據需要靈活選擇,一個數據庫中的多個表可以使用不同的引擎以慢足各種性能和實際需求。使用合適的存儲引擎,將會提高整個數據庫的性能。

?

3.4?綜合實例——數據庫的創建和刪除

  本章介紹了數據庫的基本操作,包括創建、查看?和?刪除?數據庫,并介紹了mysql中的各種存儲引擎。在這里,通過一個案例,讓讀者全面回顧數據庫的基本操作。

  1、案例的目的:登錄mysql,使用數據庫操作語句創建、查看?和?刪除?數據庫。

  2、案例操作過程:

    step_01>登錄數據庫:

    打開windows命令行,輸入登錄用戶名和密碼,命令如下:

      mysql -h localhost -u root -p

      enter password:****

    出現mysql命令輸入提示符時,表示登錄成功。如下圖:

      

  

    step_02>創建數據庫zoo,執行命令如下:

      create database zoo;

      query ok, 1 row affected (0.04 sec)

      提示信息表明語句執行成。

      查看當前系統中所有的數據庫,執行過程如下:

      

      可以看到,數據庫列表中已經有了名稱為zoo的數據庫,數據庫創建成功。

?

    step_03>選擇當前數據庫zoo,查看數據庫zoo的信息,執行過程如下:

      usr zoo;

      database changed

      提示信息database changed表明選擇成功。

      查看數據庫信息,如下所示:

      database值表明當前數據庫名稱,create database?值表示創建數據庫zoo的語句,后面為注釋信息。

    

    step_04>刪除數據庫zoo,執行過程如下:

      drop database zoo;

      query ok, 0 rows affected (0.00 sec)

      以上語句執行完畢,將數據庫zoo從系統中刪除。

      查看當前系統中所有的數據加,執行過程如下:

        

      可以看到在數據庫列表中已經沒有名稱為zoo的數據庫了。

?

3.5?高手甜點

  甜點1:如何查看默認的存儲引擎?

    在前文介紹了使用show engines?語句查看系統中所有的存儲引擎,其中包括默認的存儲引擎,當然還可以使用一種方法直接查看默認的存儲引擎,輸入的語句及其執行結果如下:

    show variables like '%storage_engine%';

    在storage_engine兩邊要加上百分號(這里在書上是沒有加的,暫時還不清楚這兩個百分號是表示什么),如果不加百分號會報錯;

      

?

  甜點2:如何修改默認的存儲引擎?

    打開MySQL安裝目錄下的配置文件my.ini,然后找到default-storage-engine=INNODB語句,將默認的存儲引擎InnoDB修改為實際需要的存儲引擎,之后重啟服務即可生效。

?

以上內容來自《MySQL數據庫應用_案例課堂》——劉玉紅、郭廣新編著,若有侵權請聯系刪除。?

轉載于:https://www.cnblogs.com/liukang92/p/9639825.html

總結

以上是生活随笔為你收集整理的MySQL数据库应用第3章操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。