mySQL數據庫

數據庫

概念

數據的集合

目前流行的數據庫存儲形式爲:關係型數據庫

流行數據庫軟件有MySql,SqlServer,Oracle,DB2

注意

如今大部分數據庫都屬於關係數據庫,其關係架構理論是1970年由IBM研究員提出,他將數據以大家所熟知的表格方式進行存儲與呈現,在以數學的集合論爲基礎,將表格與表格之間建立關係,以處理複雜的數據關係。

 

 

MySQL概述

Mysql基礎

MySQL由瑞典MySQL AB公司開發,目前輸入Oracle公司。

MySQL是一個開源的關係型數據庫管理系統。

MySQL分爲社區版和企業版。

MySQL支持各種平臺,例如:windows,linux,MacOS,HP-UX,IBMAIX等。

MySQL目錄結構

bin目錄,存儲可執行文件

data目錄,存儲數據文件

include目錄,存儲包含的頭文件

lib目錄,存儲庫文件

share目錄,錯誤消息和字符集文件

啓動MySQL服務

運行cmd

輸入命令:net start mysql

停止MySQL服務:net stop mysql

登錄MySQL

命令:“mysql -v”

輸出版本信息

 

從控制檯進入mysql

Mysql –uroot -p

MySQL常用命令

顯示當前服務器版本

SELECT VERSION();

顯示當前用戶

SELECT USER();

MySQL語句的規範

關鍵字與函數名稱全部大寫。

數據庫名稱,表名稱,字段名稱全部小寫

SQL語句必須以分號結尾

 

 

 

數據庫相關操作

創建

創建數據庫

 Create database db01;

查看所有數據庫

Show databases;

查看已創建的數據庫

Show create database db01;

修改

修改數據庫編碼方式

ALTER DATABASE db01 CHARACTER SET gbk/utf8 ;

刪除

刪除數據庫

DROP DATABASE db01;

數據類型和數據表

數據類型是指列,存儲過程參數表達式和局部變量的數據特徵,它決定了數據的存儲格式,代表了不同的信息類型。




數據表

數據表是數據庫中最重要的組成部分之一,是其他對象的基礎。


USE

       打開數據庫 USE 數據庫名稱。

創建數據表

CREATE TABLE table_name(

….

)

例如:

CREATE TABLE t01( 
username VARCHAR(20), 
age TINYINT UNSIGNED, 
salary FLOAT(8,2) );

SHOW TABLES

查看數據中的表

 

SHOW COLUMNS FROM t01

查看t01的表結構

記錄的插入與查找

插入記錄

 

INSERT [INTO] tbl_name [(col_name, ...)] VALUES (val,...);

例如:

完整寫法 
INSERT t01 (username, age, salary)VALUES('Jack', 28, 7110.12); 

簡寫 
INSERT t01 VALUES ('Tom', 25, 7321.65);

注意:

如果採用簡寫,所有的字段必須賦值。

 

記錄查找

SELECT expr,...FROMtbl_name

查找所有記錄 
SELECT * FROM t01;

後面講解複雜的查找方式

 

空值與非空

    NULL,字段值可以爲空 
NOT NULL
,字段值不能爲空

例如:

CREATE TABLE t02( 
username VARCHAR(20) NOT NULL, 
age TINYINT UNSIGNED NULL 
);

插入記錄時,字段username不能爲空,而字段age可以爲空。

 

 

AUTO_INCREMENT

自動編號,且必須與主鍵組合使用 
默認情況下,起始值爲1,每次的增加量爲
這樣做,可以保證記錄的唯一性

例如:

CREATE TABLE t03( 
id SMALLINT UNSIGNED AUTO_INCREMENT, 
username VARCHAR(20) NOT NULL 
);

創建失敗,需要聲明主鍵

 

PRIMARY KEY

主鍵約束 
每張數據表只能存在一個主鍵 
主鍵保證記錄的唯一性 
主鍵自動爲NOT NULL

例如:

CREATE TABLE t03( 
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
username VARCHAR(20) NOT NULL 
);

注意:

AUTO_INCREMENT 字段不一定定義爲主鍵,但是主鍵一定要和AUTO_INCREMENT一起使用。 
主鍵允許賦值,但是不允許賦相同的值。

 

UNIQUE KEY

唯一約束 
唯一約束可以保證記錄的唯一性
唯一約束的字段可以爲空值(NULL) 
每張數據表可以存在多個唯一約束

例如:

CREATE TABLE t04( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARYKEY, 
username VARCHAR(20) NOT NULL UNIQUE KEY 
age TINYINT UNSIGNED 
);

測試:

插入兩條名字一樣的記錄會報錯

 

DEFAULT

默認值 
當插入記錄時,如果沒有明確爲字段賦值,則自動賦予默認值。

例如:

CREATE TABLE t05( id SMALLINTAUTO_INCREMENT PRIMARY KEY, 
username VARCHAR(20) NOT NULL, 
sex ENUM('1', '2', '3') DEFAULT '3' 
);

如果在插入記錄時,不填寫sex字段的值,那麼系統自動賦默認值'3'

 

約束

保證數據的完整性和一致性

約束分爲表級約束和列級約束

如果針對一個字段進行約束,稱爲列級約束 
如果針對兩個或兩個以上的字段進行約束,稱爲表級約束

 

約束包含主鍵約束,唯一約束,默認約束,非空約束,外鍵約束

PRIMARY KEY    UNIQUE KEY  DEFAULT   NOT NULL  FOREIGN KEY

·        外鍵約束

保持數據一致性,完整性。 
實現一對一或一對多關係。

外鍵約束的要求

父表和子表必須使用相同的存儲引擎。 
數據表的存儲引擎只能爲InnoDB。 
外鍵列和參照列必須具有相似的數據類型,其中數字的長度或是否有符號位必須相同;而字符的長度則可以不同。 
外鍵列和參考列必須創建索引。如果外鍵列不存在索引的話,MySQL將自動創建索引。

 FOREIGN KEY (pid) REFERENCES province (id) );

修改數據表

添加列

ALTER TABLE user ADD age TINYINT UNSIGNED; 
ALTER TABLE user ADD password VARCHAR(20) AFTERname;

刪除列

ALTER TABLE user DROP password;

添加主鍵約束

ALTER TABLE tbl_name ADD 
PRIMARY KEY (index_col_name,...)

例如: 
先創建一張表user02

CREATE TABLE user02( id TINYINT UNSIGNED, 
name VARCHAR(20) NOT NULL);

然後指定id爲主鍵

ALTER TABLE user02 ADD PRIMARY KEY (id);

添加外鍵約束

ALTER TABLE tbl_name ADD FOREIGN KEY (index_col_name) 
reference_definition

例如:

ALTER TABLE user02 ADD FOREIGN KEY (pid) REFERENCES 
province (id);

刪除主鍵約束

ALTER TABLE tbl_name DROP PRIMARY KEY

修改字段數據類型

ALTER TABLE tbl_name MODIFY COLUMN name TEXT                                           

記錄操作(增刪改查)

插入記錄

INSERT[INTO] tbl_name [(col_name,...)] {VALUES|VALUE} 
({expr | DEFAULT},...),(...),...

例如: 
創建一張表格

CREATETABLE student ( 
id TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
name VARCHAR(20), 
age TINYINT );

插入一條記錄

INSERTstudent (name, score)VALUES('Jack', 100); 
INSERT student VALUES(NULL, 'Rico', 90);

 

更新記錄

所有記錄的分數更新爲60 
UPDATE student SET score = 60;

--

將id=1的字段更新爲90 
UPDATE student SET score = 90 WHERE id = 1;

刪除記錄(單表刪除)

DELETE FROM student WHERE id = 2;

 

發佈了92 篇原創文章 · 獲贊 38 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章