日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

MySQL 学习笔记(13)— 创建表、修改表、删除表、清空表

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 学习笔记(13)— 创建表、修改表、删除表、清空表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 創建表

SQL 中,使用 CREATE TABLE 語句創建一個表:

CREATE TABLE table_name
(column1 data_type column_constraint,column2 data_type,...,table_constraint
);

其中,各字段含義如下

  • table_name 指定了表的名稱。
  • 括號內是字段的定義;columnN 是字段的名稱,data_type__ 是它的數據類型column_constraint 是可選的字段約束;多個字段使用逗號進行分隔。
  • table_constraint 是可選的表級約束。

其中,常見的約束包括主鍵、外鍵、唯一、非空、檢查約束以及默認值。

CREATE TABLE product
(
product_id                CHAR(4)              NOT NULL,
product_name              VARCHAR(100)         NOT NULL,
product_type              VARCHAR(32)         NOT NULL,
sale_price                INTEGER				      ,
purchase_price            INTEGER                     ,
regist_date               DATE                         ,
PRIMARY KEY (product_id)
);CREATE TABLE addressbook
(
regist_no       INTEGER           NOT NULL,
name            VARCHAR(128)      NOT NULL,
address         VARCHAR(259)      NOT NULL,
tel_no          CHAR(10)                  ,
mail_address    CHAR(20)                  ,
PRIMARY KEY (regist_no)
);

如果想要創建一個自定義名稱的主鍵約束,可以使用表級約束:

CREATE TABLE dept( dept_id    INTEGER NOT NULL, dept_name  VARCHAR(50) NOT NULL,CONSTRAINT pk_dept PRIMARY KEY (dept_id)) ;

其中,pk_dept 是自定義的主鍵名稱。

1.1 標識列

標識列( identity column ),也稱為自增長列( auto increment ),可以自動生成一個唯一的數字;它的主要用途就是為主鍵提供默認的數據。首先來看一下 SQL 標準中的定義:

column_name data_type GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY;

其中,**data_type **必須是數字類型(INTEGER、NUMERIC 等);GENERATED ALWAYS 表示總是由系統自動生成數據值,不接受用戶提供的值;GENERATED BY DEFAULT 表示如果用戶提供了輸入值就使用該值,否則系統會自動生成一個數據值。

以下語句為表 emp_identity 創建了一個標識列 emp_id ,它也是該表的主鍵:

-- Oracle 以及 PostgreSQL 實現
CREATE TABLE emp_identity(emp_id   INT GENERATED ALWAYS AS IDENTITY, emp_name VARCHAR(50) NOT NULL,PRIMARY KEY (emp_id)
);

除了標準 SQL 語法之外,其他數據庫通過專有的語法實現了類似的功能:

-- MySQL
CREATE TABLE emp_identity(emp_id   INT AUTO_INCREMENT,emp_name VARCHAR(50) NOT NULL,PRIMARY KEY (emp_id)
);-- SQL Server
CREATE TABLE emp_identity(emp_id   INT IDENTITY,emp_name VARCHAR(50) NOT NULL,PRIMARY KEY (emp_id)
);-- PostgreSQL
CREATE TABLE emp_identity(emp_id   INT SERIAL,emp_name VARCHAR(50) NOT NULL,PRIMARY KEY (emp_id)
);

其中, AUTO_INCREMENTIDENTITYSERIAL 都是表示自動增長的整數。

2. 修改表

對于已經存在的表,可能會由于業務變更或者代碼重構需要修改它的結構。因此, SQL 定義了修改表的語句:

ALTER TABLE table_name action;

其中的 action 表示執行的操作,常見的操作包括增加列,修改列,刪除列;增加約束,修改約束,刪除約束等。以下語句用于增加一個新的字段:

ALTER TABLE table_name ADD [COLUMN] column_name data_type column_constraint;

添加字段的內容和創建表時類似,包括字段名、數據類型以及可選的列約束。 OracleSQL Server 不支持 COLUMN 關鍵字,省略即可。

以下語句為表 emp_identity 新增一個字段 commission_pct:

ALTER TABLE emp_identityADD bonus NUMERIC(8,2);

如果某個字段不再需要,可以使用 DROP COLUMN 操作刪除:

ALTER TABLE emp_identityDROP COLUMN bonus;

3. 刪除表

DROP TABLE 語句用于刪除一個表。以下語句用于刪除名稱為 table_name 的表。

DROP TABLE table_name

4. 截斷表

截斷表( TRUNCATE ),可以用于快速刪除表中的所有數據。以下語句將會刪除 emp_devp 中的所有數據。

TRUNCATE TABLE emp_devp;

TRUNCATE 用于快速刪除數據,回收表占用的空間,但會保留表的結構。MySQL 和 PostgreSQL 可以省略 TABLE 關鍵字。

總結

以上是生活随笔為你收集整理的MySQL 学习笔记(13)— 创建表、修改表、删除表、清空表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。