-- 使用数据库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. Redis的持久化——AOF

    上一篇博文给大家介绍了redis持久化的方式之一RDB,其中说到过RDB的缺陷是可能会导致数据丢失严重,所以redis的作者 由于强迫症又开发出了AOF来你补这一不足.好接下来我将为大家介绍AOF. ...

  2. 解决mybatis xml文件代码提示

    今天在开源项目社区看到一个插件挺不错的,推荐给大家.叫MyBatis MyBatis 是一个流行的 Java 数据持久层框架.MyBatipse 是一个 Eclipse 插件,在编辑 MyBatis ...

  3. jenkins执行自动化用例(详细、有用、mark 优先级高高高)

    http://blog.sina.com.cn/s/blog_68f262210102vx8o.html 第七章 测试用例接入jenkins自动运行 ------Web自动化测试之Webdriver+ ...

  4. day1之校花网小试牛刀

    一 利用生成器来完成爬去校花网视频 import requests import re import os import hashlib import time DOWLOAD_PATH=r'D:\D ...

  5. ORACLE:除去回车符,换行符

    ORACLE:除去回车符,换行符 replace(fa,chr(),'') ; --- 除去回车符 replace(fa,chr(),'') ; --- 除去换行符  

  6. Mountaineers

    Mountaineers 时间限制: 3 Sec  内存限制: 128 MB 题目描述 The Chilean Andes have become increasingly popular as a ...

  7. 【Codeforces Round #502 (Div. 1 + Div. 2) 】

    A:https://www.cnblogs.com/myx12345/p/9843032.html B:https://www.cnblogs.com/myx12345/p/9843050.html ...

  8. django cookie session操作

    Cookie是什么? cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是 ...

  9. Codeforces 616 E Sum of Remainders

    Discription Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + ... + n mod m. As the resu ...

  10. 【TFS】TFS2015链接TFS出现TF31002/TF400324问题解决方案

    安装VS2015后链接TFS发现出现TF31002错误,然后用浏览器打开TFS URL能正常访问,在TFS online中点击用vs打开按钮,提示TF400324错误 1. VS2015中打开: 2. ...