MySQL table
-- 使用数据库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的更多相关文章
- MySQL: Table 'mysql.plugin' doesn't exist的解决
安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...
- 解决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 ...
- MySQL Table is marked as crashed 解决方法
MYSQL数据表出现问题,提示: ERROR 144 (HY000): Table './dpt/dpt_production' is marked as crashed and last (auto ...
- mysql table readonly
if the table does not have primary key or unique non-nullable defined, then MySql workbench could no ...
- mysql table is marked as crashed and last (automatic?) repair failed
1.同事的服务器在mysqldump备份的时候报错了 这个原因是myisam的表数据太多,在某个时刻, 存放数据的这个MyISAM表数据急速长大. 比如一些log表, 当硬盘写满了.这个时候还在继续写 ...
- 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 ...
- MySql:Table 'database.TABLE_ONE' doesn't exist
1. 问题描述 由于最近使用本地的MySQL奔溃了,在修改管理员密码时,不慎修改错误,导致无法重新写会,甚至按照MySQL官网手册都无法修改正确,遂放弃修改root密码,直接将一个未有数据的纯净版My ...
- 学习笔记:ALTERing a Huge MySQL Table - 对一个超大表做alter调整
Table of Contents The ProblemFuture SolutionsOverview of SolutionShortcutAssumptions/Restrictions/Co ...
- mysql Table 'performance_schema.session_variables' doesn't exist
CMD 进入MYSQL的安装目录..Bin 下 执行 mysql_upgrade -u root -p --force 输入密码..然后等待一会儿..会跑一些东西..然后重启服务
随机推荐
- [luoguP3172] [CQOI2015]选数(递推+容斥原理)
传送门 不会莫比乌斯反演,不会递推. 但是我会看题解. 先将区间[L,H]变成(L-1,H],这样方便处理 然后求这个区间内gcd为k的方案数 就是求区间((L-1)/k,H/k]中gcd为1的方案数 ...
- Mysql安装及自动化部署脚本方案
一.简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文件中,但是 ...
- 学习linux之 rwx对于目录和档案的意义(节选自鸟哥)
權限對檔案的重要性 檔案是實際含有資料的地方,包括一般文字檔.資料庫內容檔.二進位可執行檔(binary program)等等. 因此,權限對於檔案來說,他的意義是這樣的: r (read):可讀取此 ...
- Mac 10.9 安装及使用 phoneGap
公司网速是个坑啊 绝对掉进去就起不来的那种..... 按官网的说法: 1. 下载并安装Node.js 2. sudo npm install -g phonegap 官网的安装步骤到此为止....坑 ...
- Laravel 控制器的middleware中间件
场景:活动开始前只能访问宣传页面,开始后才可以访问其他页面: 步骤: 新建中间件, 注册中间件, 使用中间件, 中间件的前置和后置操作. 控制器: public function activity0( ...
- jquery知识汇总
jQuery 选择器 选择器 实例 选取 * $ ...
- android控件-images
1.imageButton 图片按钮 <ImageButton android:id="@+id/imageButton" android:layout_width=&quo ...
- TCP/IP 协议栈
TCP(传输控制协议) 传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义. 在因特 ...
- HDU - 5974 A Simple Math Problem (数论 GCD)
题目描述: Given two positive integers a and b,find suitable X and Y to meet the conditions: X+Y=a Least ...
- Ubuntu 16.04下更新Atom
在Ubuntu下Atom好像不会自动更新,但是可以通过这些方法去实现: 1.安装插件:https://atom.io/packages/up2date 2.使用apt源更新: sudo apt-get ...