not null约束,需设置默认值

sex enum('male','female') not null default 'male'

unique 约束,值唯一

单列唯一:

create table department(

  id int unique,

  name char(10) unique);

或者

create table department(

  id int,

  name char(10),

  unique(id),

  unique(name));

联合唯一:

create table department(

  id int,

  name char(10),

  unique(id,name));

primary key

满足 not null,unique

对innodb存储引擎来说,一张表内必须有一个主键,当不指定主键时,会默认选一列满足not null和unique的列做主键,如果没有,会设一个隐藏列做主键。

单列主键和复合主键。

primary key(id1,id2)

auto_increment

create table t20(

  id int primary key auto_increment,    #如果不指定id值,id会自动自增,如果指定则按指定的id值

  name char(16))

  AUTO_INCREMENT = 4;     # 设定id起始值为4

alter table set auto_increment = 1   # 修改起始值

补充:

  show variables like 'auto_inc%'  # 查询变量

  auto_increment_increment     # 步长,默认为1

  auto_increment_offset       # 起始偏移量,默认为1

  set session auto_increment_increment=5;  # 该步长基于会话级别,会话关闭,步长失效。而sql server可以给表设置步长  

  set global auto_increment_increment=5; # 设置所有会话,会话关闭后再开启,步长还是5

  清空表要用truncate,如truncate t20,能置自增的序列为初始状态,而delete不能,delete宜和where配合删除具体一行。

foreign key

先建被关联的表,并保证被关联的字段唯一。

再建关联表:

dept_id int,

foreign key(dept_id)  references dept(id) on delete cascade on update cascade

或 CONSTRAINT fk_dept foreign key(dept_id) REFERENCE dept(id)

# cascade会导致删除和更新被关联的表时,同步删除关联表中相应外键下的记录,否则不能删除被关联表,除非先删除关联表或修改关联表中外键

实际应用中,尽量少用foreign key

可以有复合外键,前提是引用的是复合主键

sql语句之约束条件的更多相关文章

  1. 3 - SQL Server 2008 之 使用SQL语句删除约束条件

    基本语法为: ALTER TABLE 表名 DROP CONSTRAINT 约束名1,约束名2…… 如果删除一个约束,不需要逗号后的约束名,如果删除两个及两个以上的约束,必须以逗号隔开. 使用上一节中 ...

  2. MySQL - 在sql语句执行时是先执行触发器再检查约束条件的

    在sql语句执行时是先执行触发器再检查约束条件的

  3. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  4. MySQL学习(二)SQL语句的总结

    1.连接查询和关联查询连接查询:把两个表中相同的元素的连接就可以查询,使用:where里,select table1.*,table2.* from table1,table2 where table ...

  5. MySQL常用SQL语句

    一.数据库操作 1.创建数据库: Mysql> CREATE DATABASE databaseName; Mysql数据库的数据文件默认存放在/usr/local/mysql/var/目录下, ...

  6. 常用Oracle SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  7. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  8. oracle sql语句

    一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oracle a.启动ORACLE系统oracle>svrmgrlSVRM ...

  9. MySQL用户管理及SQL语句详解

    1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+--- ...

随机推荐

  1. An unexpected error occured when contacting the server .

    I logged into to the arcsight command center ,however I found an unexpected error occurred when cont ...

  2. 【每日Scrum】第六天(4.27) TD学生助手Sprint2站立会议

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天和楠哥做了课程事件和日历表操作的例子,并尝试做时间表和日历表的数据库设计 Y 刘静 今天开始编辑自己项目中的日历管理 编辑程序,能够在日历 ...

  3. WPF 的 MVVM

    Model——View——ViewModel http://www.cnblogs.com/fdyang/p/3877309.html

  4. __del__删除方法

    class dog: def __del__(self): print("删除机制被调用了...") dog1 = dog() del dog1 #在这里是先删除掉了,所以就去上面 ...

  5. generate alphanumeric serial number

    generate alphanumeric serial number with the following BADI / Customer Exit: Name of Enhancement : I ...

  6. krpano HTML5 Viewer可以实现全景展示

    http://www.krpano360.com/ krpanp 陀螺仪调取 全景展示

  7. Spring的常见问题及答案

    目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...

  8. 【重磅干货】看了此文,Oracle SQL优化文章不必再看!

    目录 SQL优化的本质 SQL优化Road Map 2.1 制定SQL优化目标 2.2 检查执行计划 2.3 检查统计信息 2.4 检查高效访问结构 2.5 检查影响优化器的参数 2.6 SQL语句编 ...

  9. babylon使用3dsmax导出的obj文件时模型偏暗

    将模型的material的diffuseTexture设置为null即可

  10. 在与SQL Server 建立 连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器