找到關於 MySQL 的4379 篇文章

76 次檢視
建立多列唯一索引需要在多列上指定索引名稱。以下示例將在“employee”表的“empid”、“first_name”、“last_name”列上建立一個名為“id_fname_lname”的多列索引:mysql> Create UNIQUE INDEX id_fname_lname on employee(empid, first_name, last_name); Query OK, 0 rows affected (0.41 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> describe employee; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | empid | int(11) | YES | MUL | NULL | | | first_name | varchar(20) | YES | | NULL | | | ... 閱讀更多

5K+ 次檢視
要從 MySQL 表中刪除唯一約束,首先必須檢查表上由唯一約束建立的索引名稱。我們知道 SHOW INDEX 語句用於此目的。“key_name”在 SHOW INDEX 語句的結果集中包含索引的名稱。現在,我們可以使用 DROP INDEX 語句或 ALTER TABLE 語句刪除唯一約束。這兩個語句的語法如下:語法DROP INDEX index_name ON table_name; 或 ALTER TABLE table_name DROP INDEX index_name;示例假設我們有表… 閱讀更多

462 次檢視
SHOW INDEX 語句用於檢查在 MySQL 表上由唯一約束建立的索引。語法SHOW INDEX from table_name;示例假設我們有表“empl”,它在列“empno”上有一個唯一約束。mysql> describe empl; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | empno | int(11) | YES | UNI | NULL | | | F_name | varchar(20) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 2 rows in set (0.23 sec)現在我們知道… 閱讀更多

90 次檢視
CREATE UNIQUE INDEX 語句也可用於將唯一約束應用於現有 MySQL 表的欄位。其語法如下:CREATE UNIQUE INDEX index_name ON table_name(Column_name);示例假設我們有以下名為“Test5”的表,並且我們想將唯一約束新增到列“ID”,那麼可以使用 CREATE UNIQUE INDEX 命令如下完成:mysql> DESCRIBE TEST5; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | ... 閱讀更多

438 次檢視
我們可以使用 ALTER TABLE 語句將唯一約束應用於現有 MySQL 表的列。語法ALTER TABLE table_name MODIFY colum_name datatype UNIQUE; 或 ALTER TABLE table_name ADD UNIQUE (colum_name);示例假設我們有以下名為“Test4”的表,並且我們想將唯一約束新增到列“Name”,那麼可以使用 ALTER TABLE 命令如下完成:mysql> DESCRIBE test4; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID ... 閱讀更多

175 次檢視
完全可以將 NULL 關鍵字作為值插入具有 NOT NULL 約束的字元型別列中,因為 NULL 本身就是一個值。以下示例將展示這一點:示例假設我們有一個名為 test2 的表,它有一個字元型別列“Name”,並且在其上具有 NOT NULL 約束。可以使用 DESCRIBE 語句檢查它,如下所示:mysql> Describe test2\G *************************** 1. row *************************** Field: id Type: int(11) Null: NO Key: Default: NULL Extra: *************************** 2. row *************************** Field: NAME Type: varchar(20) Null: NO Key: ... 閱讀更多

7K+ 次檢視
我們可以使用 ALTER TABLE 語句從現有表的列中刪除 NOT NULL 約束。示例假設我們有一個名為“test123”的表,它在列“ID”上有一個 NOT NULL 約束,如下所示:mysql> DESCRIBE test123; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | ID | int(11) | NO | | NULL | | | Date | date | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.04 sec)如果我們… 閱讀更多

203 次檢視
在這種情況下,MySQL 將返回一條關於該列資料被截斷的錯誤訊息。以下是一個演示它的示例:示例假設我們有一個名為“test2”的表,它在第 2 行的列“ID”中包含一個 NULL 值。現在,如果我們嘗試將列 ID 宣告為 NOT NULL,則 MySQL 將返回以下錯誤:mysql> Select * from test2; +------+--------+ | ID | Name | +------+--------+ | 1 | Gaurav | | NULL | Rahul | +------+--------+ 2 rows in set (0.00 sec) mysql> ALTER TABLE TEST2 MODIFY ID INT NOT NULL; ERROR 1265 (01000): Data truncated for column 'ID' at row 2

342 次檢視
我們可以使用 ALTER TABLE 語句將 NOT NULL 約束應用於現有 MySQL 表的列。語法ALTER TABLE table_name MODIFY colum_name datatype NOT NULL; 示例mysql> Create table test123(ID INT, Date DATE); Query OK, 0 rows affected (0.19 sec) mysql> Describe test123; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | ID | int(11) | YES | | NULL | | | Date | date | YES | | NULL | | +-------+---------+------+-----+---------+-------+ ... 閱讀更多

342 次檢視
實際上,MySQL 的 NOT NULL 約束限制表的一列不能具有 NULL 值。一旦我們將 NOT NULL 約束應用於某列,我們就不能向該列傳遞空值。它不能在整個表上宣告,換句話說,我們可以說 NOT NULL 是列級約束。要宣告一個欄位為 NOT NULL,我們在 CREATE TABLE 語句中定義列時必須使用 NOT NULL 關鍵字。例如:
mysql> Create table Employee(ID Int NOT NULL, First_Name Varchar(20), Last_name Varchar(20), Designation Varchar(15));
Query OK, 0 rows affected (0.59 sec)
在上面的查詢中,... 閱讀更多