-- 使用数据库hr

use hr;

-- 在数据库中创建表
-- ------------------------------------JOBS表----------------------------------------------------------
-- 判断数据库中是否存在表JOBS
drop table if exists JOBS;
-- 创建表JOBS
create table JOBS
(
JOB_ID VARCHAR(10) not null,-- 职位编号,主键
JOB_TITLE NVARCHAR(20) not null,-- 职位名称
MIN_SALARY float not null, -- 职位最低薪资,不小于1000元 mysql中没有money类型的数据类型
MAX_SALARY float not null -- 职位最高薪资,不小于最低薪资

);

-- 给JOBS表创建约束
-- 添加主键约束
alter table JOBS
add constraint primary key(JOB_ID);
-- 职位最低薪资,不小于1000元
alter table JOBS
add constraint check(MIN_SALARY>=1000);
-- 职位最高薪资,不小于最低薪资
alter table JOBS
add check(MAX_SALARY>=MIN_SALARY);

-- 插入测试数据
-- insert into JOBS values('100','经理',12000,19990),('101','主管',6200,8999);
-- select * from JOBS;

-- ------------------------------------------------DEPARTMENTS部门表的结构-------------------------------------------------------------
-- 判断数据库中是否存在表DEPARTMENTS
drop table if exists DEPARTMENTS;
-- 创建表DEPARTMENTS
create table DEPARTMENTS
(
DEPARTMENT_ID INT not null, -- 部门编号,主键,自增。
DEPARTMENT_NAME NVARCHAR(30) not null, -- 部门名称
MANAGER_ID INT -- 部门主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID

);

-- 创建表DEPARTMENTS的约束
-- 创建主键的约束
alter table DEPARTMENTS
add constraint primary key(DEPARTMENT_ID);
-- 为主键添加自动增长
alter table DEPARTMENTS
modify DEPARTMENT_ID int auto_increment;
-- 部门主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
-- alter table DEPARTMENTS
-- add constraint FK_MANAGER_ID foreign key(MANAGER_ID) references EMPLOYEES(EMPLOYEE_ID);

-- 插入测试数据
-- insert into DEPARTMENTS values(null,'财务部',200),(null,'采购部',300);
-- select * from DEPARTMENTS;

-- ----------------------------------------------EMPLOYEES职员表的结构-----------------------------------------------------------------------
-- 判断数据库中是否存在表EMPLOYEES
drop table if exists EMPLOYEES;
-- 创建表EMPLOYEES
create table EMPLOYEES
(
EMPLOYEE_ID INT not null, -- 职员编号,主键,自增(起始值为100,每次增1)
FIRST_NAME NVARCHAR(4) not null, -- 职员名称
LAST_NAME NVARCHAR(4) not null, -- 职员姓氏
EMAIL VARCHAR(25) not null, -- 职员邮件
PHONE_NUMBER VARCHAR(20) not null, -- 职员电话
HIRE_DATE TIMESTAMP not null, -- getdate() 职员入职时间
JOB_ID VARCHAR(10) not null, -- 职员职位编号,外键,引用JOBS表的JOB_ID
SALARY float , -- 职员薪资,大于0;
MANAGER_ID INT , -- 职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
DEPARTMENT_ID INT -- 职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID

)auto_increment=100;
-- 添加约束
-- 添加 主键约束
alter table EMPLOYEES
add primary key(EMPLOYEE_ID);
-- 为主键添加自增
alter table EMPLOYEES
modify EMPLOYEE_ID int auto_increment;
-- getdate() 职员入职时间
alter table EMPLOYEES
modify HIRE_DATE TIMESTAMP default '2016-7-23';
-- 添加约束 职员职位编号,外键,引用JOBS表的JOB_ID----------------------------添加外键约束时要加上constraint
-- alter table EMPLOYEES
-- add constraint FK_JOB_ID foreign key(JOB_ID) references JBOS(JOB_ID);
-- 职员薪资,大于0
alter table EMPLOYEES
add check(SALARY>0);
-- 职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
alter table EMPLOYEES
add constraint FK_EMPLOYEE_ID foreign key(EMPLOYEE_ID) references EMPLOYEES(EMPLOYEE_ID);
-- 职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
alter table EMPLOYEES
add constraint FK_DEPARTMENT_ID foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID);

MySQL table的更多相关文章

  1. MySQL: Table 'mysql.plugin' doesn't exist的解决

    安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...

  2. 解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。

    解决mysql Table 'xxx' is marked as crashed and should be repaired的问题. 某个表在进行数据插入和更新时突然出现Table 'xxx' is ...

  3. MySQL Table is marked as crashed 解决方法

    MYSQL数据表出现问题,提示: ERROR 144 (HY000): Table './dpt/dpt_production' is marked as crashed and last (auto ...

  4. mysql table readonly

    if the table does not have primary key or unique non-nullable defined, then MySql workbench could no ...

  5. mysql table is marked as crashed and last (automatic?) repair failed

    1.同事的服务器在mysqldump备份的时候报错了 这个原因是myisam的表数据太多,在某个时刻, 存放数据的这个MyISAM表数据急速长大. 比如一些log表, 当硬盘写满了.这个时候还在继续写 ...

  6. MySql Table错误:is marked as crashed and last (automatic?) 和 Error: Table "mysql"."innodb_table_stats" not found

    一.mysql 执行select 的时候报Table错误:is marked as crashed and last (automatic?) 解决方法如下: 找到mysql的安装目录的bin/myi ...

  7. MySql:Table 'database.TABLE_ONE' doesn't exist

    1. 问题描述 由于最近使用本地的MySQL奔溃了,在修改管理员密码时,不慎修改错误,导致无法重新写会,甚至按照MySQL官网手册都无法修改正确,遂放弃修改root密码,直接将一个未有数据的纯净版My ...

  8. 学习笔记:ALTERing a Huge MySQL Table - 对一个超大表做alter调整

    Table of Contents The ProblemFuture SolutionsOverview of SolutionShortcutAssumptions/Restrictions/Co ...

  9. mysql Table 'performance_schema.session_variables' doesn't exist

    CMD  进入MYSQL的安装目录..Bin 下 执行 mysql_upgrade -u root -p --force 输入密码..然后等待一会儿..会跑一些东西..然后重启服务

随机推荐

  1. CF dp 一句话解题

    wyq说刚入门oi 或是遇到瓶颈的时候就刷DP吧,虽然觉得这么刷CF题有点浪费,但是还是挺爽的,按照solved排序做的,前面的题都挺水的(忘记记录了混蛋),就不写了,从5C开始写解题 CF5 C. ...

  2. Spring Boot SpringSecurity5 身份验证

    对于没有访问权限的用户需要转到登录表单页面.要实现访问控制的方法多种多样,可以通过Aop.拦截器实现,也可以通过框架实现(如:Apache Shiro.Spring Security). pom.xm ...

  3. 洛谷 [P1995] 程序自动分析

    并查集+ 离散化 首先本题的数据范围很大,需要离散化, STL离散化代码: //dat是原数据,id是编号,sub是数据的副本 sort(sub + 1, sub + tot + 1); size = ...

  4. springboot开发 第一个案例之hello,world!

    开发环境:(1)Eclipse Java EE  Version: Neon Release (4.6.0)  Build id: 20160613-1800    (2)apache-maven-3 ...

  5. POJ1861 Network

    Time Limit: 1000MS   Memory Limit: 30000KB   64bit IO Format: %lld & %llu Description Andrew is ...

  6. objective-c中#import和@class的区别

    在Objective-C中,可以使用#import和@class来引用别的类型, 但是你知道两者有什么区别吗? @class叫做forward-class,  你经常会在头文件的定义中看到通过@cla ...

  7. Day 4 Linux基础

    Linux基础(指令篇) 一.Linux命令 1.Linux命令行的语法格式: 命令+选项+参数 命令:告诉Linux(UNIX)操作系统做(执行)什么. 选项:说明命令运行的方式(可以改变命令的功能 ...

  8. android获取手机号

    private String getPhoneNum(){ //与手机建立连接 TelephonyManager tm = (TelephonyManager)getSystemService(Con ...

  9. SELinux 服务检查与关闭

    查看SELinux状态: 1./usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态 SELinux status:         ...

  10. T1046 旅行家的预算 codevs

    http://codevs.cn/problem/1046/ 题目描述 Description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D ...