1. 程式人生 > >二、mysql資料庫之基本操作和儲存引擎

二、mysql資料庫之基本操作和儲存引擎

一、知識儲備

資料庫伺服器:一臺計算機(對記憶體要求比較高)

資料庫管理系統:如mysql,是一個軟體

資料庫:oldboy_stu,相當於資料夾

表:student,scholl,class_list,相當於一個具體的檔案

記錄:1 susan  158426544   22,相當於檔案中的一行內容

二、初始SQL語言

SQL(Structured Query Language 即結構化查詢語言)
SQL語言主要用於存取資料、查詢資料、更新資料和管理關係資料庫系統,SQL語言由IBM開發。SQL語言分為3種類型:
DDL語句 資料庫定義語言: 資料庫、表、檢視、索引、儲存過程,例如CREATE DROP ALTER
DML語句 資料庫操縱語言: 插入資料INSERT、刪除資料DELETE、更新資料UPDATE、查詢資料SELECT
DCL語句 資料庫控制語言: 例如控制使用者的訪問許可權GRANT、REVOKE

三、系統資料庫

SQL(Structured Query Language 即結構化查詢語言)
SQL語言主要用於存取資料、查詢資料、更新資料和管理關係資料庫系統,SQL語言由IBM開發。SQL語言分為3種類型:
DDL語句 資料庫定義語言: 資料庫、表、檢視、索引、儲存過程,例如CREATE DROP ALTER
DML語句 資料庫操縱語言: 插入資料INSERT、刪除資料DELETE、更新資料UPDATE、查詢資料SELECT
DCL語句 資料庫控制語言: 例如控制使用者的訪問許可權GRANT、REVOKE

四、建立資料庫

資料庫命名規則:

可以由字母、數字、下劃線、@、#、$
區分大小寫
唯一性
不能使用關鍵字如 create select
不能單獨使用數字
最長128位
create database db1

五、資料庫相關操作

資料庫的相關操作
注意:資料庫就相當於資料夾
      表就相當於檔案
資料庫的命名規則:
一.資料庫的增刪改查(sql語句)
增:create database db1;
刪:drop database db1;
改:alter database db1 charset utf8
查:show databases;#檢視所有的資料庫
    show create database db1;檢視指定的資料庫
設定預設的utf8,在配置檔案中:寫上character_set_server 
= utf8 use db2 #代表你滑鼠雙擊切換目錄 select database() #檢視你當前在哪個資料夾 二.表的增刪改查 增:create table t1(id int ,name char); (t1.frm 表結構 ,t1.ibd 表資料) 刪:drop table t1; 改: 插入資料:insert into test(id,name) values(1,'x') 不寫給誰傳值就指定都傳,而且還是按照位置傳 查:show tables; #檢視所有表 show create table t1;#檢視指定的表 select * from t1 #查看錶資料 select id,name from t1 #查看錶資料 engine = InnoDB 表的儲存引擎是InnoDB

 

六、什麼是儲存引擎?

儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方
法。因為在關係資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和操作此表的型別)

SQL 解析器、SQL 優化器、緩衝池、儲存引擎等元件在每個資料庫中都存在,但不是每 個數據庫都有這麼多儲存引擎。MySQL 的外掛式儲存引擎可以讓儲存引擎層的開發人員設 計他們希望的儲存層,例如,有的應用需要滿足事務的要求,有的應用則不需要對事務有這 麼強的要求 ;有的希望資料能持久儲存,有的只希望放在記憶體中,臨時並快速地提供對資料 的查詢。 

一種型別表明的是一種儲存方式
儲存引擎:就是表的型別,不同的型別就會對應不同的處理機制去處理他
事務:就是要麼同時成功,要麼同時不成功

使用儲存引擎

方法1:建表時指定

儲存引擎
1.create table t1(id int) engine = innodb 會出現2個檔案
2.create table t2(id int) engine = myisam 會出現3個檔案(速度比上面的快),但是我們還是用innodb儲存 
3.create table t3(id int) engine = memory 只有表結構沒有表資料,是建立到記憶體中的
4.create table t4(id int) engine = blackhole  黑洞,吃資料(資料存進去就沒有了,存進去就沒有了)

方法2:在配置檔案中指定預設的儲存引擎

/etc/my.cnf
[mysqld]
default-storage-engine=INNODB
innodb_file_per_table=1

資料庫伺服器:一臺計算機(對記憶體要求比較高)

資料庫管理系統:如mysql,是一個軟體

資料庫:oldboy_stu,相當於資料夾

表:student,scholl,class_list,相當於一個具體的檔案

記錄:1 susan  158426544   22,相當於檔案中的一行內容

二、初始SQL語言

SQL(Structured Query Language 即結構化查詢語言)
SQL語言主要用於存取資料、查詢資料、更新資料和管理關係資料庫系統,SQL語言由IBM開發。SQL語言分為3種類型:
DDL語句 資料庫定義語言: 資料庫、表、檢視、索引、儲存過程,例如CREATE DROP ALTER
DML語句 資料庫操縱語言: 插入資料INSERT、刪除資料DELETE、更新資料UPDATE、查詢資料SELECT
DCL語句 資料庫控制語言: 例如控制使用者的訪問許可權GRANT、REVOKE

三、系統資料庫

SQL(Structured Query Language 即結構化查詢語言)
SQL語言主要用於存取資料、查詢資料、更新資料和管理關係資料庫系統,SQL語言由IBM開發。SQL語言分為3種類型:
DDL語句 資料庫定義語言: 資料庫、表、檢視、索引、儲存過程,例如CREATE DROP ALTER
DML語句 資料庫操縱語言: 插入資料INSERT、刪除資料DELETE、更新資料UPDATE、查詢資料SELECT
DCL語句 資料庫控制語言: 例如控制使用者的訪問許可權GRANT、REVOKE

四、建立資料庫

資料庫命名規則:

可以由字母、數字、下劃線、@、#、$
區分大小寫
唯一性
不能使用關鍵字如 create select
不能單獨使用數字
最長128位
create database db1

五、資料庫相關操作

資料庫的相關操作
注意:資料庫就相當於資料夾
      表就相當於檔案
資料庫的命名規則:
一.資料庫的增刪改查(sql語句)
增:create database db1;
刪:drop database db1;
改:alter database db1 charset utf8
查:show databases;#檢視所有的資料庫
    show create database db1;檢視指定的資料庫
設定預設的utf8,在配置檔案中:寫上character_set_server = utf8
use db2   #代表你滑鼠雙擊切換目錄
select database() #檢視你當前在哪個資料夾
二.表的增刪改查
增:create table  t1(id int ,name char);  (t1.frm 表結構  ,t1.ibd 表資料) 
刪:drop table t1;
改:
插入資料:insert into test(id,name) values(1,'x')
不寫給誰傳值就指定都傳,而且還是按照位置傳

查:show tables;  #檢視所有表
   show create table t1;#檢視指定的表
   select * from t1 #查看錶資料
   select id,name from t1  #查看錶資料
engine = InnoDB
表的儲存引擎是InnoDB

 

六、什麼是儲存引擎?

儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方
法。因為在關係資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和操作此表的型別)

SQL 解析器、SQL 優化器、緩衝池、儲存引擎等元件在每個資料庫中都存在,但不是每 個數據庫都有這麼多儲存引擎。MySQL 的外掛式儲存引擎可以讓儲存引擎層的開發人員設 計他們希望的儲存層,例如,有的應用需要滿足事務的要求,有的應用則不需要對事務有這 麼強的要求 ;有的希望資料能持久儲存,有的只希望放在記憶體中,臨時並快速地提供對資料 的查詢。 

一種型別表明的是一種儲存方式
儲存引擎:就是表的型別,不同的型別就會對應不同的處理機制去處理他
事務:就是要麼同時成功,要麼同時不成功

使用儲存引擎

方法1:建表時指定

儲存引擎
1.create table t1(id int) engine = innodb 會出現2個檔案
2.create table t2(id int) engine = myisam 會出現3個檔案(速度比上面的快),但是我們還是用innodb儲存 
3.create table t3(id int) engine = memory 只有表結構沒有表資料,是建立到記憶體中的
4.create table t4(id int) engine = blackhole  黑洞,吃資料(資料存進去就沒有了,存進去就沒有了)

方法2:在配置檔案中指定預設的儲存引擎

/etc/my.cnf
[mysqld]
default-storage-engine=INNODB
innodb_file_per_table=1