默认值约束

 
 1 CREATE TABLE USER(
2 uid INT,
3 uname VARCHAR(10),
4 address VARCHAR(30) DEFAULT '山东省'
5 )
6 DROP TABLE USER;
7 SELECT * FROM USER;
8 INSERT INTO USER(uid,uname) VALUES(1,'张三');
9 INSERT INTO USER VALUES(2,'李四','河南省');
10 INSERT INTO USER VALUES(3,'李四',NULL);
 

非空约束

 
1 CREATE TABLE USER(
2 uid INT NOT NULL,
3 uname VARCHAR(10),
4 address VARCHAR(30) DEFAULT '山东省'
5 )
6 INSERT INTO USER(uid,uname) VALUES(1,'张三');
 

唯一约束

 
1 CREATE TABLE USER(
2 uid INT UNIQUE,
3 uname VARCHAR(10),
4 address VARCHAR(30) DEFAULT '山东省'
5 )
6 INSERT INTO USER(uid,uname) VALUES(1,'张三');
7 INSERT INTO USER(uid,uname) VALUES(2,'张三');
 

主键约束(唯一+非空)

1)被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!

2)主表的参考字段通用为主键!

3)添加数据: 先添加主表,再添加副表

          4)修改数据: 先修改副表,再修改主表

          5)删除数据: 先删除副表,再删除主表

一个表内只能有一个主键。

 
1 CREATE TABLE USER(
2 uid INT PRIMARY KEY,
3 uname VARCHAR(10),
4 address VARCHAR(30) DEFAULT '山东省'
5 )
6 SELECT * FROM USER;
7 INSERT INTO USER(uid,uname) VALUES(1,'张三');
 

自增长约束AUTO_INCREMENT

 
1 CREATE TABLE USER(
2 uid INT PRIMARY KEY AUTO_INCREMENT,
3 uname VARCHAR(10),
4 address VARCHAR(30) DEFAULT '山东省'
5 )
6 INSERT INTO USER(uname) VALUES('张三');
 

零填充

 
1 CREATE TABLE USER(
2 uid INT(3) ZEROFILL PRIMARY KEY AUTO_INCREMENT,
3 uname VARCHAR(10),
4 address VARCHAR(30) DEFAULT '山东省'
5 )
6 INSERT INTO USER(uname) VALUES('张三');
 

delete from 清空表不能删除约束

1 DELETE FROM USER;

TRUNCATE TABLE 清空表可以删除约束

1 TRUNCATE TABLE USER;

外键约束(约束两种表的数据)

 
 1 CREATE  TABLE dept(
2 deptid INT PRIMARY KEY AUTO_INCREMENT,
3 deptname VARCHAR(10)
4 )
5 INSERT INTO dept(deptname) VALUES('软件开发部');
6 INSERT INTO dept(deptname) VALUES('软件测试部');
7 INSERT INTO dept(deptname) VALUES('软件运维部');
8 SELECT * FROM dept;
9 CREATE TABLE empt(
10 eid INT PRIMARY KEY AUTO_INCREMENT,
11 ename VARCHAR(5),
12 deptid INT,
13 CONSTRAINT dept_empt_fk FOREIGN KEY(deptid) REFERENCES dept(deptid)
14 )
 

新增副表

1 INSERT INTO empt(ename,deptid) VALUES('张三',1);
2 SELECT * FROM empt

修改主表

1 UPDATE dept SET deptname=2 WHERE deptid=1;
2 UPDATE empt SET deptid=3 WHERE eid=1;

删除主表

1 DELETE FROM dept WHERE deptid=2;

MySQl数据约束练习的更多相关文章

  1. Mysql数据约束 整理

    数据约束 1.默认值: 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的. 2)对默认值字段可以插入非null   CREATE TABLE ...

  2. Java基础87 MySQL数据约束

    1.默认值 -- 创建表student1,设置address字段有默认值 create table student1 ( id int, name ), address ) default '广东省深 ...

  3. MySQL数据约束

    定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束. 代码: 1.默认值  :   default ' ' 作用:当用户对使用默认值的字段不插入值的时候,就使用默认值(自动填充). 注意: ...

  4. MySQL数据约束和关联查询

    1 默认值deafult:在建表的时候字段后使用 default ,默认值字段允许为null. 2 非空 not null:在建表的时候字段后使用  not null. 非空字段必须赋值,并且不能是n ...

  5. MYSQL中约束及修改数据表

    MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:    NOT NULL(非空约束)    PRIMARY KEY(主键约束)    UNI ...

  6. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  7. mysql之约束以及修改数据表

    数据约束的分类: ———————————————————————————————————————————————————— 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...

  8. Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle

    Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3.  ...

  9. MySQL 之存储引擎与数据类型与数据约束

    一.存储引擎场景 1.InnoDB 用于事务处理应用程序,支持外键和行级锁.如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包括很多更新和删除操作,那 ...

随机推荐

  1. Junit4知识梳理

    一.junit官网 junit4:http://junit.org/junit4/ junit5:http://junit.org/junit5/ 二.github junit4: https://g ...

  2. (转)easyui datagrid 部分参数说明

    easyui datagrid 部分参数 数据表格属性(DataGrid Properties) 属性继承控制面板,以下是数据表格独有的属性. 名称 类型 描述 默认值 columns array 数 ...

  3. Ant.OutputIsUnreadableCode

    Ant在Mac OS X终端中的输出乱码的问题 1. 问题: 在用Ant脚本进行构建Android App时,在编译失败时,Ant 输出有乱码. 2. 环境: Mac OS X, 简体中文版.在Ter ...

  4. MySQL学习笔记-数据库后台线程

    数据库后台线程 默认情况下讲述的InnoDB存储引擎,以后不再重复声明.后台线程有7个--4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程.IO thread的 ...

  5. SQL语句的三大类

    数据定义语言(DDL Data Defination Language):用于创建和定义数据库对象,并且将对这些对象的定义保存到数据库字典中,通过DDL语句可以创建数据库对象.修改数据库对象.删除数据 ...

  6. Two Sum II - Input array is sorted LT167

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  7. cocos jsb工程转html 工程

    1 CCBoot.js prepare方法:注掉下面这行,先加载moduleConfig中的脚本后加载user脚本 //newJsList = newJsList.concat(jsList); // ...

  8. this高级应用 - 域隔离

    在js环境中,this有很多指向(window.dom.object等),巧妙的利用this,可以有效的防止变量或方法被外界污染,保证代码健壮性,实例如下. demo: <!DOCTYPE ht ...

  9. js网页上画图

    保存 1.d3.js  (http://www.d3.org/)使用svg技术,展示大数据量,动态效果很好,但是API暴露的不好,得靠自己摸索. 2.http://raphaeljs.com/refe ...

  10. Python sys.argv[] 的用法

    sys.argv变量是一个list, 执行 python abc.py a b c 时, sys.argv[0]为 abc.py sys.argv[1]为 a sys.argv[2]为 b sys.a ...