一、操作簡介
1.1 操作內容
本次將介紹 MySQL 新建數據庫,新建表,插入數據以及基本數據類型的相關知識。
本節實驗將創建一個名爲 mysql_shiyan 的數據庫,其中有兩張表 employee 和 department。
1.2 實驗知識點
- 基本數據類型
- 插入數據
1.3 實驗環境
課程使用的實驗環境爲 win10 64 位版本。實驗中會用到程序:
- Mysql 5.7
二、熟悉MySQL
2.1 打開MySQL
打開前確保,mysql服務開啓,
打開mysql
輸入安裝時的密碼即可
2.2 查看數據庫
使用命令 show databases;,查看有哪些數據庫(注意不要漏掉分號 ;):
2.3 連接數據庫
選擇連接其中一個數據庫,語句格式爲 use <數據庫名>,這裏可以不用加分號,這裏我們選擇 information_schema 數據庫:
2.4 查看錶
使用命令 show tables; 查看數據庫中有哪些表(注意不要漏掉“;”):
2.5 退出
使用命令 quit 或者 exit 退出 MySQL。
三、實驗步驟
3.1 新建數據庫
首先,我們創建一個數據庫,給它一個名字,比如 mysql_shiyan,以後的幾次操作也是對 mysql_shiyan 這個數據庫進行操作。 語句格式爲 CREATE DATABASE <數據庫名字>;,(注意不要漏掉分號 ;),前面的 CREATE DATABASE 也可以使用小寫,具體命令爲:
CREATE DATABASE mysql_shiyan;
在大多數系統中,SQL 語句都是不區分大小寫的,因此以下語句都是合法的:
CREATE DATABASE name1;
create database name2;
CREATE database name3;
create DAtabaSE name4;
但是出於嚴謹,而且便於區分保留字(保留字(reserved word):指在高級語言中已經定義過的字,使用者不能再將這些字作爲變量名或過程名使用。)和變量名,我們把保留字大寫,把變量和數據小寫。
3.2 連接數據庫
接下來的操作,就在剛纔創建的 mysql_shiyan 中進行,
- 使用語句 use <數據庫名字>:
- 輸入命令 show tables; 可以查看當前數據庫裏有幾張表,現在mysql_shiyan 裏還是空的:
3.3 數據表
數據表(table)簡稱表,它是數據庫最重要的組成部分之一。數據庫只是一個框架,表纔是實質內容。
而一個數據庫中一般會有多張表,這些各自獨立的表通過建立關係被聯接起來,才成爲可以交叉查閱、一目瞭然的數據庫。如下便是一張表:
3.4 新建數據表
在數據庫中新建一張表的語句格式爲:
CREATE TABLE 表的名字
(
列名a 數據類型(數據長度),
列名b 數據類型(數據長度),
列名c 數據類型(數據長度)
);
我們嘗試在 mysql_shiyan 中新建一張表 employee,包含姓名,ID 和電話信息,所以語句爲:
CREATE TABLE employee (id int(10),name char(20),phone int(12));
然後再創建一張表 department,包含名稱和電話信息,想讓命令看起來更整潔,你可以這樣輸入命令:
這時候再 show tables; 一下,可以看到剛纔添加的兩張表:
3.5 數據類型
在剛纔新建表的過程中,我們提到了數據類型,MySQL 的數據類型和其他編程語言大同小異,下表是一些 MySQL 常用數據類型:
數據類型 | 字節 | 用途 | 格式 |
---|---|---|---|
INT | 4 | 整數 | |
FLOAT | 4 | 單精度浮點數 | |
DOUBLE | 8 | 雙精度浮點數 | |
ENUM | – | 單選,比如性別 | ENUM(‘a’,‘b’,‘c’) |
SET | – | 多選 | SET(‘1’,‘2’,‘3’) |
DATE | 3 | 日期 | YYYY-MM-DD |
TIME | 3 | 時間點或持續時間 | HH:MM:SS |
YEAR | 1 | 年份值 | YYYY |
CHAR | 0~255 | 定長字符串 | |
VARCHAR | 0~255 | 變長字符串 | |
TEXT | 0~65535 | 長文本數據 |
整數除了 INT 外,還有 TINYINT、SMALLINT、MEDIUMINT、BIGINT。
CHAR 和 VARCHAR 的區別:
CHAR 的長度是固定的,而 VARCHAR 的長度是可以變化的,
比如,存儲字符串 “abc",
對於 CHAR(10),表示存儲的字符將佔 10 個字節(包括 7 個空字符)
VARCHAR(12) 則只佔用4個字節的長度,增加一個額外字節來存儲字符串本身的長度,12 只是最大值,當你存儲的字符小於 12 時,按實際長度存儲。
ENUM和SET的區別:
ENUM 類型的數據的值,必須是定義時枚舉的值的其中之一,即單選,
而 SET 類型的值則可以多選。
3.6 插入數據
我們通過 INSERT 語句向表中插入數據,語句格式爲:
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
我們嘗試向 employee 中加入 Tom、Jack 和 Rose:
INSERT INTO employee(id,name,phone) VALUES(01,'Tom',110110110);
INSERT INTO employee VALUES(02,'Jack',119119119);
INSERT INTO employee(id,name) VALUES(03,'Rose');
你已經注意到了,有的數據需要用單引號括起來,比如 Tom、Jack、Rose 的名字,這是由於它們的數據類型是 CHAR 型。此外 VARCHAR,TEXT,DATE,TIME,ENUM 等類型的數據也需要單引號修飾,而 INT,FLOAT,DOUBLE 等則不需要。
第一條語句比第二條語句多了一部分:(id,name,phone) 這個括號裏列出的,是將要添加的數據 (01,‘Tom’,110110110) 其中每個值在表中對應的列。
而第三條語句只添加了 (id,name) 兩列的數據,所以在表中Rose的phone爲NULL。
現在我們再次使用語句 SELECT * FROM employee; 查看 employee 表,可見 Tom 和 Jack 的相關數據已經保存在其中了:
3.7 刪除數據庫及數據表
DROP DATABASE 數據庫名;
DROP TABLE 數據表名 ;
四、實驗總結
經過本次實驗,有了一個名爲 mysql_shiyan 的數據庫,其中有兩張表,已經向其中插入了一些數據。學習了mysql的數據庫數據表創建,連接,插入,查詢,認識了數據類型,明白了一些細節區別。
五、練習
新建一個名爲 library 的數據庫,包含 book、reader 兩張表,根據自己的理解安排表的內容並插入數據
#參考代碼
create database library;
use library;
create table book(
book_id int primary key,
book_name varchar(50) not null
);
create table reader(
reader_id int primary key,
reader_name varchar(50) not null
);