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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中如何删除表中int约束,MySQL中的约束,添加约束,删除约束,以及其他修饰

發(fā)布時間:2023/12/4 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中如何删除表中int约束,MySQL中的约束,添加约束,删除约束,以及其他修饰 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.NOT NULL(非空約束)

添加非空約束

1)建表時直接添加

CREATE TABLE t_user(user_id INT(10) NOT NULL);

2)通過ALTER 語句

ALTER TABLE t_user MODIFY user_id INT(10) NOT NULL;

ALTER TABLE t_user CHANGE user_id user_id INT(10) NOT NULL;

刪除非空約束

1)ALTER TABLE t_user MODIFY user_id INT(10);

2)ALTER TABLE t_user CHANGE user_id user_id INT(10);

二.UNIQUE(唯一約束)

添加唯一約束

1)建表時直接添加

CREATE TABLE t_user(user_id INT(10) UNIQUE);

CREATE TABLE t_user(

user_id INT(10),

user_name VARCHAR(30),

CONSTRAINT UN_PHONE_EMAIL UNIQUE(user_id,user_name)#復(fù)合約束

);

CREATE TABLE t_user(

user_id INT(10),

UNIQUE KEY(user_id)

);

2)通過ALTER語句

ALTER TABLE t_user MODIFY user_id INT(10) UNIQUE;

ALTER TABLE t_user CHANGE user_id user_id INT(10) UNIQUE;

ALTER TABLE t_user ADD UNIQUE(user_id);

ALTER TABLE t_user ADD UNIQUE KEY(user_id);

ALTER TABLE t_user ADD CONSTRAINT UN_ID UNIQUE(user_id);

ALTER TABLE t_user ADD CONSTRAINT UN_ID UNIQUE KEY(user_id);

刪除唯一性約束

ALTER TABLE t_user DROP INDEX user_id;

注:唯一但是可以為空(空和空不相等)

三.PRIMARY KEY(主鍵約束)

添加主鍵約束

1)建表時直接添加

CREATE TABLE t_user(user_id INT(10) PRIMARY KEY);

CREATE TABLE t_user(

user_id INT(10),

user_name VARCHAR(30),

CONSTRAINT PK_ID_NAME PRIMARY KEY(user_id,user_name)#復(fù)合約束

);

CREATE TABLE t_user(

user_id INT(10),

PRIMARY KEY(user_id)

);

2)通過ALTER語句

ALTER TABLE t_user MODIFY user_id INT(10) PRIMARY KEY;

ALTER TABLE t_user CHANGE user_id user_id INT(10) PRIMARY KEY;

ALTER TABLE t_user ADD PRIMARY KEY(user_id);

ALTER TABLE t_user ADD CONSTRAINT PK_ID PRIMARY KEY(user_id);

刪除主鍵約束

1)ALTER TABLE t_user DROP PRIMARY KEY;

注:主鍵約束相當(dāng)于(唯一約束+非空約束)

一張表中最多有一個主鍵約束,如果設(shè)置多個主鍵,就會出現(xiàn)如下提示:

Multiple primary key defined!!!

刪除主鍵約束前,如果有自增長需要先刪除自增長,如果不刪除自增長就無法刪除主鍵約束

四.FOREIGN KEY(外鍵約束,對應(yīng)的字段只能是主鍵或者唯一約束修飾的字段)

首先創(chuàng)建兩張表:class,students

主表:

CREATE TABLE class(

cla_id INT(6) AUTO_INCREMENT PRIMARY KEY,

cla_name VARCHAR(30) NOT NULL UNIQUE

);

從表:

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id)#添加外鍵約束

);

也可以這樣添加:

ALTER TABLE students ADD CONSTRAINT FK_CLA_ID FROEIGN KEY(cla_id) REFERENCES class(cla_id);

刪除外鍵約束

ALTER TABLE students DROP FOREIGN KEY FK_CLA_ID;

#外鍵中的級聯(lián)關(guān)系有以下幾種情況:

#ON DELETE CASCADE?刪除主表中的數(shù)據(jù)時,從表中的數(shù)據(jù)隨之刪除

#ON UPDATE CASCADE?更新主表中的數(shù)據(jù)時,從表中的數(shù)據(jù)隨之更新

#ON DELETE SET NULL?刪除主表中的數(shù)據(jù)時,從表中的數(shù)據(jù)置為空

#默認(rèn)?刪除主表中的數(shù)據(jù)前需先刪除從表中的數(shù)據(jù),否則主表數(shù)據(jù)不會被刪除

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id)?ON DELETE CASCADE

);

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id)?ON UPDATE CASCADE

);

CREATE TABLE students(

stu_id INT(10) AUTO_INCREMENT PRIMARY KEY,

stu_name VARCHAR(30) NOT NULL,

stu_score FLOAT(5,2) DEFAULT 0.0,

cla_id INT(10),

CONSTRAINT FK_CLA_ID FOREIGN KEY(cla_id) REFERENCES class(cla_id)?ON DELETE SET NULL

);

注:插入數(shù)據(jù)時,先插入主表中的數(shù)據(jù),再插入從表中的數(shù)據(jù)。

刪除數(shù)據(jù)時,先刪除從表中的數(shù)據(jù),再刪除主表中的數(shù)據(jù)。

五.CHECK(檢查約束)

CREATE TABLE class(

cla_id INT(6) AUTO_INCREMENT PRIMARY KEY,

cla_name VARCHAR(30) NOT NULL UNIQUE,

CHECK(cla_id>0)

);

注:mysql不支持檢查約束,但是寫上檢查約束不會報錯

其他:

一.AUTO_INCREMENT(自增長)

添加自增長

1)在創(chuàng)建表的時候添加

CREATE TABLE t_user(user_id INT(10) AUTO_INCREMENT PRIMARY KEY);

2)通過ALTER語句

ALTER TABLE t_user MODIFY user_id INT(10) AUTO_INCREMENT;

ALTER TABLE t_user CHANGE user_id user_id INT(10) AUTO_INCREMENT;

刪除自增長

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

注:There can be only one auto column and it must be defined as a key.

一張表只能有一個自增長列,并且該列必須定義了約束(可以是主鍵約束,也可以是唯一約束,也可以是外鍵約束,但是不可以是非空和檢查約束)

不過自增長一般配合主鍵使用,并且只能在數(shù)字類型中使用

二.ZEROFILL(零填充)

添加零填充

1)在創(chuàng)建表的時候添加

CREATE TABLE t_user(user_id INT(10) ZEROFILL);

2)通過ALTER語句

ALTER TABLE t_user MODIFY user_id INT(10) ZEROFILL;

ALTER TABLE t_user CHANGE user_id user_id INT(10) ZEROFILL;

刪除零填充

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

注:零填充會將未將有效位以外的位用零來顯示,比如某字段數(shù)據(jù)類型為INT(5),而插入的值為2,那么零填充會顯示00002

但是,這個效果在Navicat for MySQL中顯示不出來,只有在DOS窗口下才能顯示

三.DEFAULT(默認(rèn))

添加默認(rèn)約束

1)在創(chuàng)建表的時候添加

CREATE TABLE t_user(user_id INT(10) DEFAULT ?3);

2)通過ALTER語句

ALTER TABLE t_user MODIFY user_id INT(10) DEFAULT ?2;

ALTER TABLE t_user CHANGE user_id user_id INT(10) DEFAULT ?2;

刪除默認(rèn)約束

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

四.UNSIGNED(無符號位)

添加無符號

1)在創(chuàng)建表的時候添加

CREATE TABLE t_user(user_id INT(10) UNSIGNED);

2)通過ALTER語句

ALTER TABLE t_user MODIFY user_id INT(10) UNSIGNED;

ALTER TABLE t_user CHANGE user_id user_id INT(10) UNSIGNED;

刪除無符號

ALTER TABLE t_user MODIFY user_id INT(10);

ALTER TABLE t_user CHANGE user_id user_id INT(10);

注:無符號作用于數(shù)值類型

#從查詢information_schema中查詢指定表中的約束

USE INFORMATION_SCHEMA;

SELECT CONSTRAINT_NAME FROM TABLE_CONSTRAINTS WHERE TABLE_NAME=‘student‘;

引用:https://blog.csdn.net/a909301740/article/details/62887992

總結(jié)

以上是生活随笔為你收集整理的mysql中如何删除表中int约束,MySQL中的约束,添加约束,删除约束,以及其他修饰的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。