mysql 语句怎样修饰约束_MySQL中的约束,添加约束,删除约束,以及一些其他修饰讲解...
(1)創建數據庫
CREATE DATABASES 數據庫名;
(2)選擇數據庫
USE 數據庫名;
(3)刪除數據庫
DROP DATAVBASE 數據庫名;
(4)創建表
CREATE TABLE IF NOT NULL EXISTS 表名
(
字段1 數據類型 【字段屬性|約束|索引|注釋】, ............. );
(5)字段的約束及屬性
CREATE TABLE IF NOT NULL 表名
(
字段1 數據類型 PRIMARY KEY ,//單字段主鍵
.........
);
多字段聯合主鍵:
CREATE TABLE IF NOT NULL 表名
(
字段1 數據類型 ,
字段2 數據類型
PRIMARY KEY (字段1,字段2)//多聯合復合主鍵
);
(6)注釋:
CREATE TABLE TEXT
(
`id` int(11) UNSIGNED COMMENT'編號'
)COMMENT'測試表';
(7)編碼格式設置
CREATE TABLE TEXT
(
`id` int(11) UNSIGNED COMMENT'編號'
)CHARSET=字符集名;
(8)查看表:SHOW TABLES;
(9)查看表定義: DESCRIBE 表名;或 DESC 表名;
如果是在DOC窗口下執行,最好先執行 SET NAMES gbk;避免產生亂碼
(10) 刪除表:
DROP TABLE IF EXISTS 表名;
(11)查看默認存儲引擎
SHOW VARIABLES LIKE `storage_engine%`;
(12) 指定表的存儲引擎
CREATE TANLE 表名(#省略代碼)ENGINE=存儲引擎;
常用引擎:InnoDB 和 MyISAM
安裝板MySQL5.5默認存儲引擎是InnoDB
(1)mysql中replace函數直接替換mysql數據庫中某字段中的特定字符串
UPDATE `ts_weibo` SET
`weibo_id` = replace (`weibo_id`,'19782687','14204277'),
`uid` = replace (`uid`,'19782687','14204277'),
.....
WHERE
`weibo_id` LIKE '%19782687%' or
`uid` LIKE '%19782687%'
(2)非空約束(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);
(3) 刪除主鍵和唯一約束:
在mysql中刪除主鍵需要兩步
(1)如果有auto_increment自增,先刪除之;
(2)刪除主鍵約束 primary key.
首先要刪除auto_increment語法如下:
alter table 表名 modify id int(11);
這里用的modify,只改變數據類型,也可以用change,
改變列名的同時輸入新的數據類型。
下一步就是刪除主鍵:語法如下:
alter table 表名 drop primary key;
(3.1)添加唯一約束
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)#復合約束
);
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;
這里用的modify,只改變數據類型,也可以用change,
改變列名的同時輸入新的數據類型。
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;//指定要刪除的字段名稱
ALTER TABLE `a` DROP INDEX UN_Name ;//指定要刪除的索引名稱
注:唯一但是可以為空(空和空不相等)
(4)PRIMARY KEY(主鍵約束)
1)建表時直接添加
CREATE TABLE text(`user_id` INT(10) PRIMARY KEY);
CREATE TABLE `text`(
`user_id` INT(10),
`user_name` VARCHAR(30),
CONSTRAINT PK_ID_NAME PRIMARY KEY(user_id,user_name)#復合約束
);
CREATE TABLE `text`(
`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;
這里用的modify,只改變數據類型,也可以用change,
改變列名的同時輸入新的數據類型。
ALTER TABLE text ADD CONSTRAINT pk_textId PRIMARY KEY `text`(`textId`);
3)刪除主鍵約束
ALTER TABLE `text` DROP PRIMARY KEY
(5)FOREIGN KEY(外鍵約束)
首先創建兩張表:A,B
從表A
CREATE TABLE `A`
(
`textId` INT PRIMARY KEY,
`textId1` INT(30),
`textName` NVARCHAR(30)
CONSTRAINT FK_A_B FOREIGN KEY(`textId1`) REFERENCES `b`(`textId1`)#添加外鍵約束
);
主表B
CREATE TABLE `B`
(
`textId1` INT PRIMARY KEY,
`textName` NVARCHAR(30)
);
另外一種寫法:
ALTER TABLE `a` ADD CONSTRAINT fk_a_b FOREIGN KEY (`textId1`) REFERENCES `b`(`textId1`);
刪除外鍵約束:
第一步:
ALTER TABLE `a` DROP FOREIGN KEY fk_a_b;
第二部:
DROP INDEX fk_a_b ON `a`;
注意事項:
刪除外鍵約束的時候需要先刪除外鍵約束,在刪除索引才可以
#外鍵中的級聯關系有以下幾種情況:
#ON DELETE CASCADE 刪除主表中的數據時,從表中的數據隨之刪除
#ON UPDATE CASCADE 更新主表中的數據時,從表中的數據隨之更新
#ON DELETE SET NULL 刪除主表中的數據時,從表中的數據置為空
#默認 刪除主表中的數據前需先刪除從表中的數據,否則主表數據不會被刪除
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
);
注:插入數據時,先插入主表中的數據,再插入從表中的數據。刪除數據時,先刪除從表中的數據,再刪除主表中的數據
(6)AUTO_INCREMENT(自增長)
1)在創建表的時候添加
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);
這里用的modify,只改變數據類型,也可以用change,
改變列名的同時輸入新的數據類型。
注意:每張表只能有一列自增列
(7)DEFAULT(默認)
1)在創建表的時候添加
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;
刪除默認約束
ALTER TABLE t_user MODIFY user_id INT(10);
ALTER TABLE t_user CHANGE user_id user_id INT(10);
這里用的modify,只改變數據類型,也可以用change,
改變列名的同時輸入新的數據類型。
(8)UNSIGNED(無符號位)
1)在創建表的時候添加
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);
注意事項:
這里用的modify,只改變數據類型,也可以用change,
改變列名的同時輸入新的數據類型
無符號作用于數值類型
(9)ZEROFILL(零填充)
1)在創建表的時候添加
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;
刪除默認約束
ALTER TABLE t_user MODIFY user_id INT(10);
ALTER TABLE t_user CHANGE user_id user_id INT(10);
注意事項:
這里用的modify,只改變數據類型,也可以用change
改變列名的同時輸入新的數據類型
例如寬度指定了10,當用戶戶輸入不足10位時,會以0填充 例:0000000001
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的mysql 语句怎样修饰约束_MySQL中的约束,添加约束,删除约束,以及一些其他修饰讲解...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 统计日报_mysql 数据分
- 下一篇: JAVA项目实训struts2_Java