mysql中建庫、建表、增刪改查DDL語句

嘻嘻碩 發表於 2021-10-19
MySQL

DDL 語句和 DML 語句

  1. 用DDL定義資料庫
  2. 用DDL維護資料庫
  3. 使用DML新增和更新表資料
  4. 使用DML刪除表

DDL 定義資料庫

資料定義語言(Data Definition Language,DDL)是一種用於描述資料庫所需儲存的現實世界實體的專門語言, 其主要工作是用於定義和維護資料庫以及資料表結構。

建立資料庫語句

CREATE DATABASE 資料庫名

刪除資料庫語句

DROP DATABASE 資料庫名

檢視資料庫

SHOW DATABASES

建立庫 -> 表 - >列

建立資料庫語句

CREATE TABLE 表名(
    column_name(欄位名) date_type(欄位資料型別) default_value(預設值) (資料完整性約束),
    
);

示範: 
CREATE TABLE 表名(
    UserName int  primary key  auto_increment not null,
    Sex varchar(2) default '男'
    
);

給表新增外來鍵

-- 主鍵:PRIMARY KEY (外表必須有主鍵) 

/*
 FOREIGN KEY (當前表的列) 
 REFERENCES 外來鍵的表 (外表的列);
*/
CREATE TABLE A(
    sid INT PRIMARY KEY -- 注意:關聯的表 必有主鍵

);

CREATE TABLE B(
    Sid INT,
    FOREIGN KEY(Sid) REFERENCES A(Sid) -- B的sid被外來鍵A的SID限制
    
);

注意事項 : 1. 被關聯的外來鍵必須是主鍵 2.資料型別要一致.


用DDL維護資料庫

修改表結構

  1. 新增一段欄位
ALTER TABLE 表名 add(欄位名 型別) ;
-- 如  : ALTER TABLE A ADD(Sid INT);
  1. 修改一列欄位 小提示: modify 後不用更括號
ALTER TABLE 表名 modify 欄位名 型別  ;
-- 如  : ALTER TABLE B MODIFY SName varchar(20);
  1. 變更一列欄位
ALTER TABLE 表名 CHANGE 原欄位 新欄位 型別 ;
-- 如 : ALTER TABLE A CAHNGE phone iphone varchar(15) 
  1. 更新一列欄位
ALTER TABLE 表名 MODIFY 列欄位 型別 ;
-- 如  ALTER TABLE A MODIFY phone int(12) ;
  1. 刪除欄位子句
ALTER TABLE 表名 DROP COLUMN 列欄位
-- ALTER TABLE A DROP COLMN phone;

7.重命表名

RENAME TABLE 表名 TO 要改的表名
-- RENAME TABLE TEXT1 TO TEXT2

8.新增外來鍵

 -- 表建完後新增外來鍵 
/*ALTER TABLE 本表名
    ADD CONSTRAINT 約束鍵 FOREIGN KEY(本表的鍵)
    REFERENCES 被引用的別表名(被引用的表主鍵)*/
    
ALTER TABLE A
    ADD CONSTRAINT SID FOREIGN KEY(SID)
    REFERENCES B(SID); 
    
-- 建立表時新增外來鍵
# FOREIGN KEY (當前表的鍵) REFERENCES 選擇關聯的外表(他的主鍵)

CREATE TABLE A(
    SID INT PRIMARY KEY
);
CREATE TABLE B(
    SID INT,
    FOREIGN KEY(SID) REFERENCES A(SID)
);

9.刪除外來鍵

ALTER TABLE 表 DROP FOREIGN KEY 外來鍵
-- ALTER TABLE verdir DROP FOREIGN KEY SID

總結: ALTER TABLE 表 修改資料.


使用 DML 新增和更新表資料

資料操縱語言(Data Manipulation Language,DML) 由 DBMS 提供,用於讓使用者或程式設計師使用,實現對資料庫中資料的操作。基本的 DML 分為兩類四種:檢索(查詢)和更新(插入、刪除、修改)

1.插入

-- INSERT INTO 表名 values(資料一,資料二, )
INSERT INTO A VALUES(1,'曹操')

/* 插入多條 
INSERT INTO 表名 values
(1,'資料'),
(2,'資料'),
(3,'資料')
*/
INSERT INTO A VALUES
(1,'李白'),
(2,'杜甫'),
(3,'杜牧')

2.修改 注意: 不加where預設全部修改

/* 
UPDATE 表 
SET 欄位1  =  值1 , 欄位2  =  值2  
WHERE 條件表示式
*/
UPDATE A
SET id = 2 sname = '李四';

使用 DML 刪除表資料

3.刪除 注意:不加where預設全部刪除

/* 
DELETE FROM 表名 where 條件表示式
*/
DELETE FORM A WHERE sName = '張三';