博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SQL】通过SQL命令创建表和表之间的主外键关系
阅读量:2240 次
发布时间:2019-05-09

本文共 966 字,大约阅读时间需要 3 分钟。

  通过题目,详细大家已经非常了解我的目的了。下面我直接介绍需求了。

  我想创建一个人员信息表和部门信息表,同时,我们想通过人员信息知道此人的部门信息。我们应该怎样建表呢。
  下面我以表格的形式展示咱们数据库的结构。

人员信息表

人员id 姓名 性别 部门id
001 小红 101
002 小李 102
003 小王 103

部门信息表

部门id 部门名称 地址
101 财务
102 行政
103 公关

下面就是代码的实现了

create table dept--组织表(dept_id int primary key,dept_name nvarchar(20) not null,dept_address nvarchar(100) )create table emp--员工表( --这里的括号不是“{}”emp_id int constraint pk_emp_id primary key,emp_name nvarchar(20) not null, emp_sex nchar(1) not null,dept_id int constraint fk_dept_id foreign key references   dept(dept_id))

知识扩展:

以emp表为例:
1、emp字段,为int 类型,主键。constraint pk_emp_id表示给主键约束起了一个名字,在表的列表中可以看出来,这样方便管理。同样外键也可以起别名。
2、nvarchar中的n表示国际化,有n表示支持汉字了,(需要验证,如果没有n是否也支持汉字。会出什么问题)
3、在nvarchar中的var表示变量的意思,char表示字符串类型。20表示最长支持20个字符。那么nvarchar(20)表示支持国际化标准的动态增加的字符串,但是最长仅仅支持20个汉字。
4、有兴趣的可以了解nchar,nvarchar,varchar的区别以及在数据库中的用法。
5、此表中的dept这是将dept的主键作为了emp的外键,外键名字为fk_dept_id。我们通过references来关系另一个表中的字段。
6、create table 定义最后一个字段的时候,就不要写逗号了,这样方便移植到Oracle数据库

转载地址:http://uvhbb.baihongyu.com/

你可能感兴趣的文章
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
【Linux】进程的理解(二)
查看>>
【C++】STL -- Vector容器的用法
查看>>
【Linux】Linux中的0644 和 0755的权限
查看>>
【数据结构】有关二叉树的面试题
查看>>
【Linux】内核态和用户态
查看>>
【Linux】HTTP的理解
查看>>