1. 程式人生 > 其它 >資料庫,MYSQL

資料庫,MYSQL

資料庫,MYSQL

一,資料庫

1,資料庫的組成

2.資料庫管理系統+資料庫系統

資料庫的管理系統(DBMS):
是實現對資料庫資源有效組織、管理和存取的系統軟體
功能:資料庫的建立和維護功能、資料定義功能、資料操控功能、資料庫的執行管理功能、通訊功能

資料庫系統(DBS):
是一個人機系統,由硬體、OS、資料庫、DBMS、應用軟體和資料庫使用者組成
使用者可以通過DBMS或應用程式操作資料庫

3.現主流資料庫

二,關係型及非關係型資料庫

1.關係型資料庫

是基於關係模型的資料庫系統

關係模型的資料結構使用簡單易懂的二維資料表
每一行稱為一條記錄,用來描述一個物件的資訊
每一行稱為一個欄位,用來描述物件的一個屬性

關係模型可用簡單的"實體-關係-屬性"來表示
①實體
也稱為例項,對應現實世界中可區別與其他物件的“事件”或“事物”
如銀行客戶、銀行賬戶等
②關係
實體集之間的對應關係稱為聯絡,也稱為關係
如銀行客戶和銀行賬戶之間存在“儲蓄”的關係
③屬性
實體所具有的某一特性,一個實體可以有多個屬性
如“銀行客戶”實體集中的每個實體均具有姓名、住址、電話等屬性

2.非關係型資料庫

1、非關係資料庫也稱為NoSQL (Not Only SQL)
儲存資料不以關係模型為依據,不需要固定的表格式

2、非關係型資料庫的優點:
資料庫可高併發讀寫
對海量資料高效率儲存與訪問
資料庫具有高擴充套件性與高可用性

3.兩者區別

關係型資料庫:儲存的往往是字元、字串、數值、布林值等
非關係型資料庫:儲存的往往是圖片、視訊、語音等

三,mysql資料庫

1.mysql概述

一款深受歡迎的開源關係型資料庫,Oracle旗下的產品,遵守GPL協議,可以免費使用與修改;

特點:
效能卓越、服務穩定;
開源、無版權限制、成本低;
多執行緒、多使用者;
基於C/S(客戶端/伺服器)架構;
安全可靠;

2.mysql相關命令

SQL語言分類:
DDL:資料定義語言,用於建立資料庫物件,如庫、表、索引等;
DML:資料操縱語言,用於對錶中的資料進行管理;
DQL:資料查詢語言,用於從資料表中查詢符合條件的資料記錄;
DCL:資料控制語言,用於設定或者更改資料庫使用者或角色許可權;

3.資料庫增刪改查

建立:
CREATE DATABASE 資料庫名;  			#建立新的資料庫
use  database;                     #選擇資料庫
CREATE TABLE 表名 (欄位1 資料型別,欄位2 資料型別[,...][,PRIMARY KEY (主鍵名)]);  		           #建立新的表
#主鍵一般選擇能代表唯一性的欄位不允許取空值(NULL),一個表只能有一個主鍵。
create table shop (id int(3) primary key auto_increment,address varchar(40) not null,shopid int(4) not null,people int(4));

alter table shop add code varchar(40) default '0000';
刪除:
DROP TABLE [資料庫名.]表名;				#如不用USE進入庫中,則需加上資料庫名
DROP DATABASE 資料庫名;                  #刪除指定的資料庫
DELETE FROM 表名 [WHERE 條件表示式];      #在資料表中刪除指定的資料記錄
修改:
1、修改資料庫名
ALTER TABLE 舊錶名 RENAME 新表名;

2、擴充套件表結構(增加欄位)
ALTER TABLE 表名 ADD address varchar(50) default '地址不詳';

3.更新原有資料
UPDATE表名SET欄位名1-欄位值11,欄位名2-欄位值2]IWHERE 條件表示式] ;


檢視:
mysql -u root -p
SHOW DATABASES;						#檢視資料庫,大小寫不區分,分號“;”表示結束
SHOW TABLES;                        #檢視資料表

USE 資料庫名;
DESCRIBE [資料庫名.]表名;
可縮寫成:DESC 表名;

四,擴充套件

if not exists:表示檢測要建立的表是否已存在,如果不存在就繼續建立;
int(4) zerofill:表示若數值不滿4位數,則前面用"O"填充,例0001;
auto incremcnt:表示此欄位為自增長欄位,即每條記錄自動遞增1,預設從1開始遞增;
自增長欄位資料不可以重複;自增長欄位必須是主鍵;如新增的記錄資料沒有指定此欄位的值且新增失敗也會自動遞增一次;
unique key:表示此欄位唯一鍵約束,此欄位資料不可以重複:一張表中只能有一個主鍵,但是一張表中可以有多個唯一鍵367 #not null:表示此欄位不允許為NLL