MySQL學習歷程(二):基本操作

1.登錄數據庫

打開命令行,輸入以下命令,輸入root密碼後即登錄MySQL數據庫。

mysql -h localhost -u root -p

2.創建數據庫

CREATE DATABASE <database_name>;

3.查看數據庫信息

SHOW CREATE DATABASE <database_name> \G;

4.查看當前系統中所有的數據庫

SHOW DATABASES;

5.刪除數據庫

DROP DATABASE <database_name>;

6.使用數據庫

USE <database_name>;

7.創建表

CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30),
        score INT(11)
);

8.查看錶

SHOW TABLES;

9.使用主鍵約束

主鍵是用來連接其他表用的,主鍵約束要求主鍵列數據唯一,並且不爲空。
9.1 主鍵爲單字段

//方法一:
CREATE TABLE <table_name>(
        id    INT(11)        PRIMARY KEY,
        name  VARCHAR(30),
        score INT(11)
);
//方法二
CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30),
        score INT(11),
        PRIMARY KEY (id)
);

9.2 主鍵爲多個字段

CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30),
        score INT(11),
        PRIMARY KEY (id, name)
);

10.使用外鍵約束

外鍵是用來連接其他表用的,可以是一列或者多列。一個表可以有一個或多個外鍵。外鍵對應的是參照完整性,一個表的外鍵可以是空值,如果不是空值,那就必須是另外一個表中主鍵的某個值。
表A的外鍵和表B的主鍵聯合起來就使得表A和表B建立了聯繫。其中,表A就是從表,表B就是主表。

CONSTRAINT <外鍵名> FOREIGN KEY <本表字段名> REFERENCES <主表名> <主鍵字段名>
CREATE TABLE <table_name>(
        id    INT(11)    PRIMARY KEY,
        name  VARCHAR(30),
        score INT(11),
        st_id INT(11),
        CONSTRAINT fk_tb1_tb2 FOREIGN KEY (st_id) REFERENCES 主表名(id)
);

fk_tb1_tb2是外鍵約束的名稱,st_id是從表外鍵名,id是主表的主鍵名。

11.使用非空約束

CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30)  NOT NULL,
        score INT(11),
        PRIMARY KEY (id, name)
);

12.使用唯一性約束

CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30)   UNIQUE,
        score INT(11),
        PRIMARY KEY (id, name)
);
CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30),
        score INT(11),
        CONSTRAINT STH UNIQUE(name)
);

UNIQUE和PRIMARY KEY的區別:一個表中可以有多個字段設置爲UNIQUE,但最多只能有一個字段設置爲主鍵;UNIQUE字段可以爲NULL,主鍵字段不能爲NULL。

13.使用默認約束

指定默認值。

CREATE TABLE <table_name>(
        id    INT(11),
        name  VARCHAR(30),
        score INT(11),
        gender VARCHAR(1)  DEFAULT "M"
        CONSTRAINT STH UNIQUE(name)
);

14.表的字段值自動增加

AUTO_INCREMENT關鍵字可以使字段值自動增加。一個表中只能有一個字段設置成此屬性,並且此字段必須是主鍵或者是主鍵的一部分,被約束的字段的數據類型是任意整數類型。

CREATE TABLE <table_name>(
        id    INT(11)    PRIMARY KEY   AUTO_INCREMENT,
        name  VARCHAR(30),
        score INT(11)
);

15.查看錶的基本結構

DESCRIBE 表名;
DESC 表名;
SHOW CREATE TABLE 表名\G;

16.修改表名

ALTER TABLE 舊錶名 RENAME 新表名;

17.修改數據表中字段的數據類型

ALTER TABLE 表名 MODIFY 字段名  新數據類型;

18.修改字段名

ALTER TABLE 表名 CHANGE  舊字段名  新字段名  新數據類型;

19.在表中添加新字段

ALTER TABLE 表名  ADD  新字段名  新字段的數據類型;
ALTER TABLE 表名  ADD  新字段名  新字段的數據類型  NOT NULL;
ALTER TABLE 表名  ADD  新字段名  新字段的數據類型  FIRST;
ALTER TABLE 表名  ADD  新字段名  新字段的數據類型  AFTER  已存在的字段名;

20.刪除字段

ALTER TABLE 表名 DROP 字段名;

21.修改字段在表中排列位置

使字段爲表的第一個字段

ALTER TABLE 表名 MODIFY 字段名 字段類型 FIRST;

把字段放到指定字段之後

ALTER TABLE 表名 MODIFY 字段名 字段類型 AFTER 字段名;

22.更改表的存儲引擎

ALTER TABLE 表名 ENGINE=更改後的存儲引擎名;

23.刪除表的外鍵約束

ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名;

24.刪除數據表

刪除沒有被關聯的表:

DROP TABLE IF EXISTS 表1, 表2, ... 表n;

如果數據表之間存在外鍵關聯的話,可以先刪除從表,再刪除主表;也可以先取消外鍵約束,再刪除需要刪除的表:

注意點1:

主鍵存在的意義是用於多個表之間進行連接操作,所以並不是每個表都必須有主鍵。

注意點2:

外鍵約束不能跨引擎使用。MySQL可以爲每個表指定引擎,但是創建外鍵約束的兩個表必須使用同一個引擎。

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