sql语句之约束条件
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语句之约束条件的更多相关文章
- 3 - SQL Server 2008 之 使用SQL语句删除约束条件
基本语法为: ALTER TABLE 表名 DROP CONSTRAINT 约束名1,约束名2…… 如果删除一个约束,不需要逗号后的约束名,如果删除两个及两个以上的约束,必须以逗号隔开. 使用上一节中 ...
- MySQL - 在sql语句执行时是先执行触发器再检查约束条件的
在sql语句执行时是先执行触发器再检查约束条件的
- MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系
数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...
- MySQL学习(二)SQL语句的总结
1.连接查询和关联查询连接查询:把两个表中相同的元素的连接就可以查询,使用:where里,select table1.*,table2.* from table1,table2 where table ...
- MySQL常用SQL语句
一.数据库操作 1.创建数据库: Mysql> CREATE DATABASE databaseName; Mysql数据库的数据文件默认存放在/usr/local/mysql/var/目录下, ...
- 常用Oracle SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- oracle sql语句
一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oracle a.启动ORACLE系统oracle>svrmgrlSVRM ...
- MySQL用户管理及SQL语句详解
1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+--- ...
随机推荐
- 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 ...
- 【每日Scrum】第六天(4.27) TD学生助手Sprint2站立会议
站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天和楠哥做了课程事件和日历表操作的例子,并尝试做时间表和日历表的数据库设计 Y 刘静 今天开始编辑自己项目中的日历管理 编辑程序,能够在日历 ...
- WPF 的 MVVM
Model——View——ViewModel http://www.cnblogs.com/fdyang/p/3877309.html
- __del__删除方法
class dog: def __del__(self): print("删除机制被调用了...") dog1 = dog() del dog1 #在这里是先删除掉了,所以就去上面 ...
- generate alphanumeric serial number
generate alphanumeric serial number with the following BADI / Customer Exit: Name of Enhancement : I ...
- krpano HTML5 Viewer可以实现全景展示
http://www.krpano360.com/ krpanp 陀螺仪调取 全景展示
- Spring的常见问题及答案
目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...
- 【重磅干货】看了此文,Oracle SQL优化文章不必再看!
目录 SQL优化的本质 SQL优化Road Map 2.1 制定SQL优化目标 2.2 检查执行计划 2.3 检查统计信息 2.4 检查高效访问结构 2.5 检查影响优化器的参数 2.6 SQL语句编 ...
- babylon使用3dsmax导出的obj文件时模型偏暗
将模型的material的diffuseTexture设置为null即可
- 在与SQL Server 建立 连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器