資料庫學習筆記

2021-08-21 09:44:10 字數 3999 閱讀 8937

mysql是乙個關係型資料庫管理系統,由瑞典mysqlab公司開發,目前屬於oracle旗下產品。mysql 最流行的關係型資料庫管理系統,在 web 應用方面mysql是最好的rdbms (relational database management system,關聯式資料庫管理系統) 應用軟體之一。

l  innodb事務型資料庫的首選引擎,支援acid事務,支援行級鎖定, mysql 5.5 起成為預設資料庫引擎.

l  cluster/ndb高冗餘的儲存引擎,用多台資料機器聯合提供服務以提高整體效能和安全性。適合資料量大,安全和效能要求高的應用

l啟動mysql服務

cd user/bin

./saft_mysqld &

windows的啟動方式:net start mysql

l關閉mysql服務

cd user/bin

./mysqladmin –u root –p shutdown

windows的關閉方式:net stop mysqsl

l  使用者登入到資料庫:mysql–u 使用者名稱 –p,回車之後輸入密碼

l設定使用者方式一:

insert into user (host, user, password, select_priv,insert_priv, update_priv) values ('localhost', 'guest', password('guest123'),'y', 'y', 'y');

l設定使用者方式二:

grant select,insert,update,delete,create,drop ontutorials.* to 'zara'@'localhost' identified by 'zara123';

l  show databases:列出 mysql 資料庫管理系統的資料庫列表。

l  use 資料庫名:選擇要操作的mysql資料庫,使用該命令後所有mysql命令都只針對該資料庫

l  show tables:顯示指定資料庫的所有表,使用該命令前需要使用 use 命令來選擇要操作的資料庫

l  show columns from 資料表:顯示資料表的屬性,屬性型別,主鍵資訊,是否為 null,預設值等其他資訊

l  show index from 資料表:顯示資料表的詳細索引資訊,包括primary key(主鍵)

l  show table status from 資料庫名 like 表名:輸出mysql資料庫管理系統的效能及統計資訊

建立資料庫:createdatabase 資料庫名

刪除資料庫:dropdatabase 資料庫名

建立資料庫表:

create table test(

id int not null auto_increment,

name varchar(32) not null,

address varchar(128) not null,

birthday date,

primary key(id)

刪除資料庫表:

drop table 資料表;

插入資料:

insert into table_name ( field1, field2,...fieldn )

values

( value1, value2,...valuen);

刪除資料:

delete from table_name [where xx]

mysql事務:

事務必須滿足4個條件(acid): atomicity(原子性)、consistency(穩定性)、isolation(隔離性)、durability(可靠性)

mysql索引:

單列索引,即乙個索引只包含單個列,乙個表可以有多個單列索引,但這不是組合索引。

組合索引,即乙個索包含多個列。

索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。

雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案。建立索引會占用磁碟空間的索引檔案

建立索引的方式:

l  建立表的同時建立索引:

create table mytable( 

id int not null,  

username varchar(16) not null, 

index [indexname] (username(length)) 

l  直接建立索引:

create index indexname on mytable(username(length));

l  修改表介面建立索引:

alter mytable add index [indexname] on (username(length))

刪除索引:drop index[indexname] on mytable;

唯一索引:

與普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一

主鍵:

主鍵只能作用於乙個列上,新增主鍵索引時,你需要確保該主鍵預設不為空(not null)

mysql臨時表:

mysql臨時表在我們需要儲存一些臨時資料時是非常有用的。臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間

臨時表的建立方法:

l  可以用建立資料表的方式建立臨時表(在table前面加關鍵字temporary):

create temporary table temp_table_name(……)

l  可以在查詢已存在表資料的同時建立臨時表:

create temporary table temp_table_name(select id,name from table_name)

showcreate table table_name:可以檢視建立表的完整語句

mysql序列:

建立表時,如果使用序列,可以指定序列初始值:auto_increment = 100

也可以修改表來指定序列初始值:alter table table_nameauto_increment = 100

l  concat(str1,str2,…):字串連線函式

l  concat_ws(separator,str1,str2,...):concat_ws() 代表 concatwith separator ,是concat()的特殊形式。第乙個引數是其它引數的分隔符。分隔符的位置放在要連線的兩個字串之間。分隔符可以是乙個字串,也可以是其它引數。

l  group_concat:group_concat([distinct] 要連線的字段 [order byasc/desc 排序字段] [separator '分隔符'])

l  repeat()函式:用來複製字串,如:select repeat('ab',2);

l  left(str, length):從左開始擷取字串

l  right(str, length):從右開始擷取字串

l  substring(str, pos),substring(str, pos, length):substring(被擷取字段,從第幾位開始擷取), substring(被擷取字段,從第幾位開始擷取,擷取長度)

l  數學函式:abs(x),mod(n,m),floor(x),round(x),pow(x,y)等

資料庫學習筆記

組員 徐文棟11511010057,王清德11511010022 徐文棟學習筆記 1.學習登入進入,使用資料庫開始 執行 cmd 進入 c mysql uroot p 密碼 建立 create database 資料庫名 檢視 show databases 使用 use 資料庫名 刪除 drop d...

資料庫學習筆記八 資料庫索引

一 索引 索引 index 是幫助 mysql 高效獲取資料的資料結構。常見的查詢演算法,順序查詢,二分查詢,二 叉排序樹查詢,雜湊雜湊法,分塊查詢,平衡多路搜尋樹 b 樹 b tree 二 選擇唯一性索引 1 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。2 為經常需要排序 分組和...

資料庫學習筆記 關聯式資料庫

關係模型由關係資料結構,關係操作集合,關係完整性約束三部分組成 基數 m 候選碼 某一屬性值能唯一確定乙個元組 全碼 關係模型中所有屬性組都是候選碼 外碼 r的乙個屬性f是s的主碼,稱f為r的外碼 r為參照關係,s為被參照關係 外碼取空值表示尚不存在,不取空值表示是另乙個表的主碼值。分量必須取原子值...