首先,我們使用Navicat Premium編輯器創建一個用戶,同時設置用戶權限,MySQL默認有一個root用戶,擁有最高權限
下面,我們先創建一個用戶:
①CREATE USER 'aaa'@'localhost' IDENTIFIED BY 'aaa';
這里我們通過CREAT USER 創建了一個叫 'aaa'@'localhost' 的用戶。
②GRANT ALL ON *.* TO 'jredu'@'localhost';
再通過GRANT給我們創建的用戶分配權限,這里*.*表示用戶可以處理數據庫中的所有表。
創建完用戶我們開始創建一個自己的數據庫
CREATE DATABASE IF NOT EXISTS myDB;
同樣的我們使用CREAT方法來創建數據庫,這里為了不重復創建,我們使用IF NOT EXISTS寫法。
最后是使用我們建好的數據庫
USE myDB
到這里我們通過Navicat Premium創建了一個簡單的數據庫
下面我們來看下MySQL中常見的幾種數據類型
MySQL中主要有字符型、整形、浮點型和日期型四種數據類型
一、字符型:
① CHAR(N):固定N個長度的字符串,如果長度不夠會自動空格補齊。N的范圍,0~255
② VARCHAR():存儲可變長度的字符串。 最常用的。
③ TEXT:存儲可變長度的字符串。常用於發布文章等大段內容
④ TINYTEXT:小文本 0~2^8-1 * 10;
⑤ MEDIUMTEXT:0~2^24-1 * 10^3;
⑥ LONGTEXT:0~2^32-1 * 10^4;
⑦ enum('男','女');
二、整形:
① TINYINT: 無符號0~2^8-1 有符號 -2^7~2^7-1;
② SMALLINT: 無符號0~2^16-1 有符號 -2^15~2^15-1;
③ MEDIUMINT: 無符號0~2^24-1 有符號 -2^23~2^23-1;
④ INT:無符號0~2^32-1 有符號 -2^31~2^31-1; 最常用。
⑤ BIGINT :無符號0~2^64-1 有符號 -2^63~2^63-1;
三、浮點型:
① FLOAT:可以精確到小數點后七位有效數字:
② DOUBLE: 可以精確到小數點后十五到十六位數字
四、日期型:
幾乎不用(由於時間存儲使用字符串或時間戳,所有數據庫中幾乎不用日期類型)
① DATE:存儲日期和時間數據
② `TIMESTAMP: 比date更精確
數據庫設計的三大范式
第一范式(1NF)數據表中的每一列必須是不可拆分的最小單元,也就是確保每一列的原子性。
列如 userinfo: 山東省煙台市 11111111
可拆分為: userAds: 山東省煙台市 userTel 1111111
第二范式(2nd NF):滿足1NF后,要求表中的所有列都必須依賴於主鍵,而不能有任何一列與主鍵沒有關系,也就是說,一個表只描述一件事情
例如:訂單表只能描述訂單相關的信息,所以所有字段都必須與訂單ID相關
產品表只描述與產品相關的信息,所以所有的字段都必須與產品ID相關
因此:一張表中的產品信息與訂單信息不能同時存在
第三范式(3NF)滿足2NF后要求:表中的所有字段只與主鍵相關,而不與其他的列相關,表中的每一列只能依賴於主鍵
總結:
【第二范式與第三范式的本質區別】
在於有沒有分出兩張表,第二范式是說一張表中包含了多種不同實體的屬性,那么必須要分出多張表,第三范式要求已經分出了多張表,那么一張
表中只能有另一張表的ID,不能有其他的任何信息,其他的信息一律用主鍵在另一表查詢。