一 默认值约束

  约束语句 default  ‘默认值’

  在建立表的时候在想要加默认约束的字段名,数据类型后面加default ‘默认值’

例如 :

  create table emp(

      uid  int,

      name varchar(10),

      dizhi varchar(10) default '山东淄博'

  );

  这样当对dizhi不赋值时,会默认赋值为  ‘山东淄博’

  当对dizhi赋值时或赋null值是  ‘山东淄博’默认值就不会显示了。

二 非空约束

  约束语句  not null

  在建立表的时候在想要加非空约束的字段名,数据类型后面加not null;

例如:

 create table emp(

      uid  int not null,

      name varchar(10),

      dizhi varchar(10)

  );

  这里对字段uid 设置的非空属性,那么 当给 uid 赋值null的时候或者给其他值赋值不给UID赋值的时候,就会报错

  但是空字符串可以赋值到uid里

三 唯一

  讲道理都是唯一了竟然不用only    - - .

  唯一的约束语句是 unique ,在建立表的时候在想要加唯一约束的字段名,数据类型后面加unique;

例如:

create table emp(

      uid  int unique,

      name varchar(10),

      dizhi varchar(10)

  );

  这样uid字段就会加上唯一约束,唯一即为不重复的意思,所以往uid里赋值时不能存在一模一样的uid值。

四 主键

  主键的定义是非空加唯一,一个表必须建立一个主键来用于精确的索引到数据的内容。

  我觉得如果表里有确认不会重复且字段  可以用它作为主键 ,如果没有,建议自己建列无意义的数据作为主键。

  主键的约束语句是 primary key ,在建立表的时候在想要加主键约束的字段名,数据类型后面加primary key;

例如:

create table emp(

      uid  int primary key,

      name varchar(10),

      dizhi varchar(10)

  );

  因为主键本身就是非空且唯一,所以设置为主键后就不用再加 not null 和 unique。

五 自增长

   自增长的语句是  auto_increment   需要自增长的字段必须为 int 类型  并且 必须为主键

  在建立表的时候在想要加自增长约束的字段名,数据类型后面加primary key  auto_increment;

例如:

  

create table emp(

      uid  int primary key auto_incerment,

      name varchar(10),

      dizhi varchar(10)

  );

  这样当不给uid赋值的时候会默认为uid赋值一个int 数字  添加第一条是1,添加第二条是2,以此类推 。

  当给uid附一个数字值之后再插入其他数据且不写uid的时候  uid会从你上一条的赋值加1继续赋值。

六 外键

  其实单独看两个表的时候即使他们有外键,但是外键和主键之间并没有直接联系

  之后建立外键约束  或者 表连接的时候才能显现。

  外键并没有语句,为了方便只是用一个表的主键名作为另一个表的字段名,而且副表的数据不能超出主表的主键内容。

例如:

主表 部门表:

  create table dept(

   did  int  primary key,

   bumenmingcheng  varchar(10)

 );

副表 员工表:

 create table emp(

   eid int primary key,

   did  int ,

   money  double

  外键约束: constraint fk_emp_dept  foreign key(did)  refrrences dept(did)

 );

  其中 在员工表里 did就是外键

  而外键约束可以加也可以不加,加了外键的内容就必须符合主表的did内容。   不加为好。

黄埃散漫风萧索,云栈萦纡登剑阁

      

最新文章

  1. paip.lucene 4.3 中文语义搜索最佳实践
  2. Swift开发第二篇——extension及fatalError
  3. 一种nodejs的MVC框架
  4. Linux命令行修改IP、网关、DNS、主机名 的方法
  5. [ActionScript 3.0] AS3.0 对象在矩形范围随机运动
  6. C# WinForm PropertyGrid用法
  7. C# 通过委托控制进度条以及多线程更新控件
  8. 插值和空间分析(二)_变异函数分析(R语言)
  9. [每日一题] 11gOCP 1z0-052 :2013-09-5 runInstaller oracle of no swap
  10. 第一百二十节,JavaScript事件对象
  11. web 前端routine
  12. Asp.net mvc3的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决
  13. 初始C#(二)
  14. HTML:<input type="text">文本框不可编辑的方式
  15. JSON的学习,希望可以指导
  16. What's New In Python 3.X
  17. 【转】C++可变参数列表处理宏va_list、va_start、va_end的使用
  18. Nginx 分析access日志文件
  19. 2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践
  20. 如何将html5程序打包成Android应用

热门文章

  1. bzoj2157旅游
  2. MySQL主从复制--单库复制搭建
  3. git分支管理的策略和冲突问题
  4. Oracle基础概述
  5. Python Ethical Hacking - VULNERABILITY SCANNER(7)
  6. p71_文件传送协议FTP
  7. CentOS7编译安装php7.1配置教程详解
  8. iOS倒计时button闪烁
  9. laravel 安装语言包
  10. Android复习准备