sql中主键.外键等的使用:

主键约束 唯一 非空 检查 默认等使用@
create table emp(
empID int auto_increment primary key not null,--auto_increment:自动增长,primary key主键约束,not null非空。
empName varchar(30) not null,
emNo char(4) unique,--unique唯一。
enmGender int default 0 comment ‘0男:1女‘,--default默认,该句中默认为男。
enmpBirthday date,
check (enmpBirthday<now()),--check 检查,确定生日小于今天
enmpAge int check(18>=enmpAge and enmAge<=60)

);
insert into emp(empID,empName) values (1,‘xiaohong‘);--添加内容,添加列和values值!
select*from emp; --复制显示出。

eg2:create table emp2(
-- EmployeeID int ,DeptID int ,primary key(EmployeeID,DeptID ),
-- EmployeeName varchar(50) not null,
-- DetName varchar(50) not null,
-- Gender char(2) default 0 comment ‘0男:1女‘,
-- Birthday date check(Birthday<now()),
-- GraduateDate Datetime check(GraduateDate<now()),
-- IDCard char(18) not null unique,
-- Degree varchar(12),
-- GarauateSchool varchar(50) not null,
-- Specialty varchar(50) not null,
-- Telephone varchar(200) not null,
-- Salary Smallint,
-- Allowance Decimal(18.2),
-- Skill varchar(2000)
-- );
-- select*from emp2;

一.保证数据的完整行!
1.实体完整性(通过设置主键约束 唯一约束或标识列属性来实现)
2.域完整性(通过外键约束 检查约束 默认值定义 非空约束)
3.引用完整性
4.用户自定义完整性
二.创建非空约束.
create table Boxs(name varchar(50) not null
phone varchar(30) not null);
非空约束:not null

insert into 表名(列名)values(添加的值);
insert into Boxs (name,id) valuse(‘liuxi‘,‘123‘);
三.设置主键.
主键约束:primary key
1.create table Boxs(name varchar(50) primary key);
2.create table Boxs(name varchar(50),student varchar(20),primary key(name, student));
3.alter table Boxs add primary key(name,student);
四.设定默认值。
drop table box;
create table box()
name varchar(30) not null,
phone varchar(15) default ‘请告知电话号码‘not null,
;
select*from box;
默认值:default
eg:Gender char(2) default 0 comment ‘0男:1女‘,(默认为男)
五.设置检查约束。
check
age int check(age between 10 and 100),
六.自动增长。
auto_increment
要用在主键上:create table box(id int auto_increment primary key)
七.外键 foreign key

-- drop table emp;
-- create table emp(name varchar(20) primary key,Gender enum(‘男‘,‘女‘),birthday date check(birthday<now()));

-- insert into emp values(‘abc‘,‘m‘);
-- select * from emp;

-- delete from emp;
-- drop table stu;
create table stu(ID int primary key,Name varchar(50)); -- xiaoliu zhang guan

-- constraint- foreign key 约束

create table exam(ID int primary key,project varchar(50),stuID int);-- xiaohong
-- 外键指向的值 必须是唯一的

-- insert into stu values(2,‘xiaozhang‘)
insert into exam values(1,‘c‘,2);
-- delete from exam;
-- alter table exam
-- add foreign key(stuID) references stu(ID);

select *from stu;
select * from exam;

时间: 2024-07-30 10:03:19

sql中主键.外键等的使用:的相关文章

Sql Server 主键 外键约束

主键约束 表通常具有包含唯一标识表中每一行的值的一列或一组列. 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性. 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束. 如果为表指定了主键约束, 数据库引擎 将通过为主键列自动创建唯一索引来强制数据的唯一性. 当在查询中使用主键时,此索引还允许对数据进行快速访问. 如果对多列定义了主键约束,则一列中的值可能会重复,但来自主键约束定义中所有列的值的任何组合必须唯一. 如下图所示, Purchasing.ProductVend

SQL主键&amp;外键

SQL的主键和外键约束 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除. (4)更新主键记录时,同样有级联更新和拒绝执行的选择. 简而言之,SQL的主键和外键就是起约束作用. 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学

通过 jdbc 分析数据库中的表结构和主键外键

文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hibernate 是 ORM 框架,他是有能力根据实体生成数据库表的.我们在单元测试的时候用到了 dbUnit ,dbUnit 可以帮助我们在测试前把数据库的测试数据准备好,然后我们就利用现成的数据库环境测试,测试完成后需将数据库中的所有数据清除(为了不影响其他的单元测试),然后接着下一个测试.虽然已经

数据库系统基础笔记(3)--主键/外键 索引

本文转载自:http://www.cnblogs.com/longyi1234/archive/2010/03/24/1693738.html 作者:蔚蓝色的天空 一.什么是主键.外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 :  学生表 (学号,姓名,性别,班级)  其中每个学生的学号是唯一的,学号就是一个主键  课程表(课程编号,课程名,学分)  其中课程编号是唯一的,课程编号就是一个主键  成绩表(学号,课

数据库主从表、关系;主、外键关系和作用

从数据库是主数据库的备份,当主数据库变化时从数据库要更新,这些数据库软件可以设计更新周期.这是提高信息安全的手段.主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存.主外键的关系结构:1,一对一,不用引用主外键,把它们放一个表中即可例如:一个学生只能有一个卡号,那么学生跟卡号放在一个表中即可2,一对多,引用主外键,'一'相当于主键,'多'即是引用主键的外键.例如:一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系:3,多对多关系,需要创建一个表,表中需要两个字段

MySQL主键 外键 索引

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的

主键外键

主键 外键 唯一键 CHECK约束 主键:是唯一的,不可重复的,它能提高查询效率,但是会减慢新增数据效率 外键:主键是本张表的主键,是唯一且非空的,而外键是另一张表中与这张表的某个字段的类型,字段名相同的字段,一般是用作关联两张或两张以上的数据表时用的. 外间的取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除.(4)更新主键记录时,同样有

数据库中创建表(包括创建主键,外键,非空列,唯一)

创建表(包括创建主键,外键,非空列,唯一) - PROS - 博客园 http://www.cnblogs.com/CodingArt/articles/1621921.html **************** 创建主键(三种方法) **************** 创建学生表: 第一种: create table student (sno char(5) primary key,/*学号*/ /*可以直接指定主键*/ sname char(20) not null,/*姓名*/ ssex c

主键 外键 子查询 练习 学生选修课

create database xuankebiao--创建一个选课表的数据库 go use xuankebiao--使用这个数据库 go create table kechengbiao--添加一个课程表的表 ( kcode int primary key not null,--课程编号,主键 kname varchar(20), klaoshi varchar(20), kdh varchar(20), ) create table xiyuanbiao--添加一个院系的表 ( xicode

关?于?h?i?b?e?r?n?a?t?e?中?双?向?外?键?关?联?o?n?e?-?t?o?-?o?n?e?的?p?r?o?p?e?r?t?y?-?r?e?f?=?的?问?题(转)

大家都知道hibernate中的one-to-one映射主要有两种策略,(1)一对一主键关联(单向和双向).(2)一对一外键映射(单项和双向).本文主要讲解一下,一对一外键映射中的双向问题,在此前先通过一个实例了解. person和idCard,是一种一对一的关系,其中   t_person表 id        name       idCard(unique) 1         张三 2         王五       1 其中王五是没有idcard,这也符合现实中的,有些人是没有身份证