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中事务
事务控制语言 什么叫做"事务": 想象一个场景: 小明给小花 汇款 5000元 买IPHONE,操作界面不用管,不管什么操作界面,最终都要落实到这样两条语句的执行: update ...
- ylb:使用sql语句实现添加、删除约束
ylbtech-SQL Server:SQL Server-使用sql语句实现添加.删除约束 --主键约束(Primary Key constraint):要求主键列的数据唯一,并且不允许为空. -- ...
- mysql教程or怎么用_MySQL中or语句用法示例
1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...
- mysql连表删除语句_MySQL中联表更新与删除的语法介绍
前言 相信大家在日常使用mysql,可能会遇到需要同时更新两张表时,我会采用在同一个事务中使用2句sql语句分别进行更新.其实,这种需要发送2句sql语句的方法效率相对来说是比较低的,有没有只用1句s ...
- mysql联合唯一约束_MySQL中添加唯一约束和联合唯一约束
在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束. 一.单列唯一约束 在一列上添加唯一约束,主要是让该列在表中只能有唯一的一 ...
- mysql数据库 or的用法_MySQL中or语句用法示例
1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...
- mysql float 怎么设置长度_MySQL中float double decimal区别总结
作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! 下表中规划了每个浮点类型的存储大小和范围: 类型大小范围(有符号)范围(无符号)用途fl ...
- MySQL使用什么关键字添加唯一约束_MySQL使用____关键字添加唯一约束。
[填空题]DATETIME类型使用____个字节来表示日期和时间. [填空题]通过____语句可以实现删除全部数据或部分数据. [填空题]MySQL使用____关键字添加唯一约束. [填空题]主键的值 ...
- mysql去除select换行符_MySQL中去除字段中的回车符和换行符
问题: 在使用[ load data infile 'D:/node.txt' into table node fields terminated by '\t'; ]语句批量导入如下图所示的aaa. ...
最新文章
- iBatis学习网站推荐
- 史上最强翻译器,没有之一,不接受反驳
- 电话拨号器java_Android基础--电话拨号器
- wxpython播放视频_opencv视屏流嵌入wxpython框架
- 华为服务器装系统怎么选pxe,服务器设置pxe启动
- IDEA 更改配色和主题样式
- 小谈一下Qt的绘制引擎(结尾有彩蛋)
- HDU 1374 求三角形外接圆的半径
- Nail对话伍鸣:Conflux 香港概念下有何新叙事?
- 一种通过物理分离实现WSUS伸缩性的方案
- 有趣又实用的APP,每一个都让人惊喜满满
- 感觉自己效率太低怎么办?
- 7个银行的软件测试项目实战,别再说简历项目不知道怎么写了
- RHCE6.0那点事----仅供参考
- 使用UltraISO制作U盘安装盘的方法
- c11计算机考试,2015年计算机二级考试C++备考练习试题及答案(6)
- OpenNI开源框架
- POI2014 Salad Bar
- JAVA 语言程序设计与数据结构 教材课本源码 和 课后习题答案
- PHP代码审计DVWA[Weak Session IDs(弱会话IDS)
热门文章
- PCL点云曲面重采样三种方法:上采样,下采样,均匀采样
- 论文笔记:PRIN: Pointwise Rotation-Invariant Networks
- mysql 安装dso命令_使用tengine DSO 来动态编译安装第三方模块(Lua
- MySQL 8.0 技术详解
- Python字符串基础操作
- Docker进阶(制作镜像,共享卷,网络通信,私有仓库)
- 图解Spring循环依赖,看过之后再也不怕面试被问到了!
- 阿里巴巴为什么要禁用 Executors 创建线程池?
- Spring Boot Starters启动器
- Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。