一、安裝啟動數據庫
1.安裝數據庫:
sudo apt-get install mysql-server
sudo apt-get install mysql-client
2.開啟數據庫:
sudo service mysql start
3.登錄數據庫:
mysql -u root (這是在數據庫沒有密碼的情況下登錄)
mysql -u root -p (這是在數據庫有密碼的情況下登錄)
二、創建數據庫(注意在輸入mysql命令時特別注意分號—“;”的使用!!!)
1.創建數據庫:
CREATE DATABASE hello; (表示創建名為hello的數據庫)
(這里要注意的是mysql中對于命令并不區分大小寫,所以CREATE DATABASE也可以寫成create database;create DATABASE;CREATE daTabase等)
若輸入以上指令后出現:Query OK,1 row affected
則說明創建成功。
可以通過命令 :show databases; 進行查看
2.連接數據庫
eg: use hello
若出現:Database changed 則說明數據庫連接成功
查看當前數據庫中的表格命令:show tables;
若提示:Empty set(0.00 sec)
則說明當前數據庫為空。
3.新建數據表
創建的格式為:
create table 表格的名稱
(
列名1 數據類型(數據長度),
列名2 數據類型(數據長度),
列名3 數據類型(數據長度)
);
eg:
create table zhuce
(
id int(10),
name char(20),
phone int(10)
);
當提示為:Query OK,0 rows affected(0.10 sec)
則說明創建成功!
可以通過show tables; 命令對次數據庫中的表格進行查看。
4.數據類型
數據庫中的數據類型與普通的編程語言的數據類型大同小異,很多的用法形式都是一樣的,以下列出不同的:
enum 用途:單選,比較性別 eg:enum(‘a’,’b’,’c’)
set 用途:多選 eg:set(‘1′,’2′,’3’)
date 用途:日期 eg:YYYY-MM-DD 3個字節
time 用途:時間點或持續時間 eg:HH:MM:SS 3個字節
year 用途:年份值 eg:YYYY 1個字節
varchar 用途:變長字符串 0~255字節
text 用途:長文本數據 0~65535字節
char和varchar區別:
char:char(10)表示的就是存儲的字符占10個字節(無論有沒有存 滿10個字符)。
varchar:varchar(10)表示的是最多可以存10個字節,但是當你存入的字符小于10時,則按實際長度存儲。
5.插入數據
通過以下命令對表格進行查看:select * from nihao;
出現:Empty set
則表示表格中仍為空~~~
下面需要在表格中插入數據,插入格式為:
insert into 表格名稱(列名1,列名2,列名3) values(值1,值2,值3);
eg:
insert into nihao (id,name,phone) values(01,’Tommy’,101010);
當顯示為Query OK,則說明插入成功啦!
這里要注意對于varchar、char、date、time、enum、text、set等類型時需要單引號修飾,而int、float、double等則不需要單引號。
插入后再使用select * from nihao查看nihao表格。
6.退出mysql連接
輸入exit 或者是quit 或者是 q 即可退出
三、mysql 中的約束類
約束類型及其關鍵字如下:
1.主鍵約束
主鍵約束用于約束表中一行,作為這一行的標識符,在一張表中通過主鍵就可以準確定位到一行,行中的主鍵不能有重復且不能為空!!!
eg:create table example1
( id int(10) primary key
name char(20),
constraint dpt_pk primary key(dpt_name)
);
表示的就是主鍵約束,constraint dpt_pk primary key(dpt_name)這句代碼是定義主鍵,dpt_pk是自定義的主鍵名。
還有復合主鍵定義eg: constrint proj_pk primary key(proj_num,proj_name)
2.默認值約束
默認值約束規定當有默認值約束的列,插入數據為空時,這個位置將會被默認值的值填充
設置如下:
代碼分析:代碼中的default’10’ 表示的就是當dpt_num沒有輸入時,則默認輸出為10
eg:insert into example(dpt_name,dpt_num) value(‘nihao’,11);
insert into example(dpt_name) values(‘wohenhao’);
代碼分析:第二行代碼中沒有輸入dpt_num
輸入完以上代碼后輸入select * from example; 對表格進行查看發現:
3.唯一約束
唯一約束就是規定表中指定的一列的值必須不能有重復值,即這一列每個值都是唯一的。
表格創建形式如下:
代碼分析:代碼中的unique(stu_class)就是對stu_class的唯一約束。
輸入數據如下:
當輸入第二行代碼時,會發現提示錯誤,錯誤的原因是stu_class的在表格建立時設置為unique,即唯一值!
4.外鍵約束
外鍵既能確保數據完整性,也表現表之間的關系,一個表可以有多個外鍵,每個外鍵必須參考另一個表的主鍵,被外鍵約束的列,取值必須在它的參考列中有對應的值。
5.非空約束
被非空約束的列,在進入時必須為非空的。
表格創建如下:
代碼分析:這里設定的是id不能為空
數據插入:
代碼分析:可以看到代碼中沒有輸入id,輸入完成后,有 1 warning 一個警告。
查看表格:
id沒有輸入,但是其在表格中顯示值為0,即當id被not null約束時,當輸入為空時,被記為0.
四、修改和刪除
1.刪除數據庫
命令如下示例:drop database 數據庫名;
eg:drop database test;
2.重命名表
格式:rename table 原名 to 新名;
或者是:alter table 原名 rename 新名;
或者是: alter table 原名 rename to 新名;
3.刪除表
格式:drop table 表名稱;
4.修改表結構
①增加一列:
格式:alter table 表名字 add column 列名稱 數據類型 約束;
或:alter table 表名字 add 列名字 數據類型 約束;
②刪除一列:
格式:alter table 表名字 drop column 列名字;
或: alter table 表名字 drop 列名字;
③重命名一列:
格式:alter table 表名稱 change 原列名 新列名 數據類型 約束;
(注意:這條重命名語句后面的“數據類型”不能省略,否則重命名失敗)
④改變數據類型
格式:alter table 表名字 modify 列名字 新數據類型;
(需要謹慎考慮,可能導致數據丟失)
5.對表的內容修改
①修改表中的某個值
格式:update 表名字 set 列1=值1,列2=值2 where 條件;
(注意:一定要有where條件,否則后果不堪設想!)
②刪除一行記錄
格式:delete from 表名字 where 條件;
eg:delete form test where name=’nihao’;