與 MySQL 的零距離接觸(1~3:表相關)

MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件。

MySQL 的使用

MySQL安裝方式:Typical 典型安裝、Custom 自定義安裝、Complete 完全安裝(最好典型安裝、可視化配置)。
安裝完成之後,配置環境變量可直接在 cmd 中使用 MySQL(不配置環境變量只能在 cmd 中到MySQL/bin 下使用MySQL)。

啓動服務器(win)

#  “win+r ”打開運行,在輸入框中輸入 service.msc,單擊【確認】按鈕,找到 Windows的【服務管理器】,在其中可以看到服務名爲MySQL的服務項。點擊啓動服務即可;

#  同樣可以使用cmd進行啓動: “win+r ”打開運行,在輸入框中輸入 cmd,回車後彈出xp命令提示符界面,然後輸入“net start mysql”,按回車鍵,就可以啓動MySQL服務,停止MySQL服務的命令爲“net stop mysql”;

#  也可以直接雙擊MySQL服務,打開MySQL屬性對話框,在其中通過單擊【啓動】或【停止】按鈕來更改服務狀態;

數據庫常用命名符

# 查詢MySQL版本:-V;

# 登錄 MySQL :( mysql -uroot -p123456 -P3306 -h127.0.0.1 );

# 退出 MySQL :( quit ; exit;  \q );

# 創建數據庫:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name.
   --- PS:{} 必選項; [] 可選項; | 在其中選擇。
   --- DATABASE和SCHEMA是完全相同的,任選其一
   --- IF NOT EXISTS: 如果創建的數據庫存在,則不只報出warning,不寫會報錯
   --- CHRARCTER SET gbk: 爲表設置編碼方式,如果不設置則用mysql默認的編碼方式

# 展示警告信息:show warnings;

# 展示數據庫t1的創建命令和編碼形式:show create database t1;

# 展示所有數據庫:show databases;

# 修改數據庫:ALTER DATABASE dbname CHARACTER SET [=] charset_name

# 除數據庫:DROP { DATABASE | SCHEMAS } [IF EXISTS] db_name;

MySQL編碼規範:

MySQL語句的規範:
# 關鍵字與函數名稱全部大寫
# 數據庫名稱、表名稱、字段名稱全部小寫
# 語句必須分號結尾(雖然實際上大小寫都能正確,但Dos界面不輸分號不會執行)

MySQL 的數據類型

整型

MySQL數據類型 含義(默認:有符號)(UNSIGNED :無符號)
TINYINT 非常小的整數。(默認)取值範圍是 -128~127;(UNSIGNED )取值範圍爲0~255
SMALLINT 較小的整數。(默認)取值範圍是-32768~32767;(UNSIGNED )取值範圍爲 0~65535。
MEDIUMINT 中型大小的整數。(默認)取值範圍是-8388608~8388607;(UNSIGNED )取值範圍爲0~16777215。
INT 正常大小的整數。(默認)取值範圍是-2147483648~2147483647;(UNSIGNED )取值範圍爲0~4294967295
BIGINT 大型的整數。(默認)取值範圍是-9223372036854775808~9223372036854775807;(UNSIGNED )取值範圍爲0~18446744073709551615(很少使用到)

浮點型:

MySQL數據類型 含義
FLOAT(M,D) 單精度浮點型    8位精度(4字節)     m總個數,d小數位
DOUBLE(M,D) 雙精度浮點型    16位精度(8字節)    m總個數,d小數位

日期時間類型:

MySQL數據類型 含義
DATE YYYY-MM-DD 格式,取值範圍從1000-01-01 到 9999-12-31
TIME HH:MM:SS 格式
DATETIME YYYY-MM-DD HH:MM:SS 格式
TIMESTAMP 時間戳

字符串型:

MySQL數據類型 含義
char(n) 固定長度,長度範圍從1~255個字符,不足填充空格
varchar(n) 可變長度,最多65535個字符
tinytext 可變長度,最多255個字符
text 可變長度,最多65535個字符
mediumtext 可變長度,最多2的24次方-1個字符
longtext 可變長度,最多2的32次方-1個字符

數據表和數據庫還有Mysql三者的關係 :mysql中保存了很多數據庫、一個數據庫中可以保存很多表。表是一個二維表,行稱爲【記錄】,列稱爲【字段】。int(1)和int(11)

 修改數據表以及約束

創建數據表:CREATE TABLE tbl_name (column_name column_type);
查看錶結構:DESCRIBE tbl_name /DESC tbl_name ;
插入數據:INSERT tbl_name [(col_name),…] VALUES(val,…);
查找數據:SELECT expr(表達式),…FROM tbl_name;
刪除表:DROP TABLE table_name ;
表結構的 5 種約束:
# 非空約束NOT NULL;
# 默認值約束:DEFAULT(default);
# 唯一值約束:UNIQUE(unique);
# 外鍵約束 :FOREIGN KEY(foreign key);
# 主鍵約束:PRIMARY KEY(primary key);
自增長約束:AUTO_INCREMENT(auto_increment);
無符號,正數:UNSIGNED(unsigned)

關於約束:

約束主要是防止非法數據進入到表中,確保數據的正確性和一致性(統稱數據完整性);

約束 按功能 分類:

  • NOT NULL(非空約束):強制字段始終包含值。
  • PRIMARY KEY(主鍵約束):每張數據表只能有一個主鍵,默認主鍵 NOT NULL。
  • AUTO_INCREMENT 自增列:一個表只能有一個字段使用AUTO_INCREMENT約束,且該字段必須爲主鍵的一部分。
  • UNIQUE KEY(唯一約束):UNIQUE 和 PRIMARY KEY 約束均爲列或列集合提供了唯一性的保證。

二者區別:

UNIQUE 能有多個,PRIMARY KEY 只能有一個;(可以多個列形成一個主鍵)
UNIQUE 可以爲NULL值,PRIMARY KEY 不能爲空;
在創建索引時也有區別;

  • DEFAULT 約束:DEFAULT 約束用於向列中插入默認值。
  • FOREIGN KEY(外鍵約束) :參照完整性約束,保證一個或兩個表之間的參照完整性,外鍵是構建於一個表的兩個字段或是兩個表的兩個字段之間的參照關係。一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。

要求:

1、父表和子表必須使用相同的存儲引擎(InnoDB),禁止使用臨時表。
2、外鍵列和參照列必須具有相似的數據類型,其中數字的長度和是否有符號位必須相同,而字符的長度可以不同
3、外鍵列和參照列必須創建索引,如果外鍵列不存在索引的話,MySQL將會自動創建索引。

在定義外鍵約束時,通過使用on delete cascade或者on delete set null選項,可以改變外鍵的默認刪除規則:

  ① ON DELETE CASCADE:級聯刪除。當刪除父表中的行時,如果子表中有依賴於被刪除父行的子行存在,那麼連同子行一起刪除

  ② ON DELETE SET NULL:當刪除父表中的行時,如果子表中有依賴於被刪除父行的子行存在,那麼不刪除,而是將子行的外鍵列設置爲null

按 功能分類 有以上的幾種約束,按照 約束的範圍 可分爲表級約束和列級約束;

修改表結構

添加:

ALTER TABLE tbl_name ADD ...

修改:

ALTER TABLE 表名 MODIFY ..

刪除列:

ALTER TABLE tbl_name DROP ...

慕課視頻:https://www.imooc.com/learn/122;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章