• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql约束

mysql约束

作者: 字体:[增加 减小] 来源:互联网 时间:2018-08-22

通过本文主要向大家介绍了mysql,约束等相关知识,希望本文的分享对您有所帮助

一、数据约束

数据约束可以在建表时设定,也可以在建表后通过修改表结构来添加,如果需要为约束添加别名,可以在约束前面添加CONSTRAINT name ...

1.默认值-DEFAULT

DEFAULT的值可以为NULL

ALTER TABLE student MODIFY id INT DEFAULT 0;

2.非空-NOT NULL

ALTER TABLE student MODIFY id INT NOT NULL;

3.唯一-UNIQUE

  • 注意:UNIOUE的字段可为NULL,当为NULL时,不判断是否唯一
ALTER TABLE student MODIFY id INT UNIQUE;

4.主键-PRIMARY KEY

  • 单主键
ALTER TABLE student MODIFY id INT PRIMARY KEY;
  • 复合主键
ALTER TABLE student ADD PRIMARY KEY (id,name);
  • 删除主键
ALTER TABLE student DROP PRIMARY KEY;

5.自增长-AUTO_INCREMENT

  • 前提: 该字段是主键
ALTER TABLE student id INT AUTO_INCREMENT;
ALTER TABLE student id INT PRIMARY KEY AUTO_INCREMENT;

6.外键

前提: 外键对应字段应该是相同类型、长度,且表中不存在冲突数据;所参考的外键必须是该表中的主键

  • 添加外键
alter table testA add constraint testA_testB_fk foreign key (b_id) references testB(id);
  • 删除外键
alter table testA drop foreign key testA_testB_fk;

7.级联

前提:必须在外键的基础上使用
- ON UPDATE CASCADE: 更新时,同步更新
- ON DELETE CASCADE/SET NULL: 删除时,删除/置空

ALTER TABLE testA ADD CONSTRAINT testA_testB_fk FOREIGN KEY (b_id) REFERENCES testB(id) ON UPDATE CASCADE ON DELETE CASCADE;
  • 说明: 当testB中的数据被删除或修改时,testA中关联外键的数据也会同步概统

8.字段校验-CHECK

ALTER TABLE student ADD CHECK (id > 0 AND name = 'no');

二、索引

  • 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
  • 用户无法看到索引,它们只能被用来加速搜索/查询。
  • 更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

1.简单索引

CREATE INDEX simple_index ON testA (id, name);

2.唯一索引

CREATE UNIQUE INDEX simple_index ON testA (id, name);

3.删除索引

ALTER TABLE testA DROP INDEX simple_index;
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05史上最全的MySQL备份方法
  • 2018-12-05根据日期知道当天是星期几的手动计算方法
  • 2017-05-11MySQL配置文件my.cnf中文详解附mysql性能优化方法分享
  • 2018-12-05mysql中联结和关系表简介
  • 2018-12-05SQL查询日志 查看数据库历史查询记录的方法
  • 2018-12-05详解MySQL5.7中的关键字与保留字
  • 2018-12-05mysql 联合索引有什么好处? 联合索引的意义
  • 2018-12-05数据库Oracle数据的异地的自动备份
  • 2018-12-05 mysql进阶(五)数据表中带OR的多条件查询
  • 2018-12-05如何使用max_connections配置参数对Mysql进行性能优化

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL事务autocommit自动提交
    • MSSQL 添加字段说明
    • linux下perl操作mysql数据库(需要安装DBI)
    • mysql中循环截取用户信息并插入到目标表对应的字段中
    • Linux系统下导出ORACLE数据库出现Exporting questionable statis
    • MySQL锁机制和PHP锁机制
    • mysql 组合查询:什么是组合查询?如何创建组合查询
    • Sql语句与存储过程查询数据的性能测试实现代码
    • 使用Rotate Master实现MySQL 多主复制的实现方法
    • MySQL 相关的环境变量

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有