mysql建表: 主键,外键约束

CREATE DATABASE db_studentinfo;
USE  db_studentinfo ;

DROP TABLE IF EXISTS  t_student ;
CREATE TABLE  t_student(
   studentId  varchar(40) NOT NULL,
   stuNo  varchar(20) DEFAULT NULL,
   stuName  varchar(20) DEFAULT NULL,
   stuSex  varchar(10) DEFAULT NULL,
   stuBirthday  date DEFAULT NULL,
   stuRxsj  date DEFAULT NULL,
   stuNation  varchar(20) DEFAULT NULL,
   stuZzmm  varchar(20) DEFAULT NULL,
   classId  int(11) DEFAULT NULL,
   stuDesc  text,
   stuPic  varchar(20) DEFAULT NULL,
   PRIMARY KEY ( studentId )
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS  t_class ;
CREATE TABLE  t_class(
   classId  int(11) NOT NULL AUTO_INCREMENT,
   className  varchar(20) DEFAULT NULL,
   gradeId  int(11) DEFAULT NULL,
   classDesc  text,
  PRIMARY KEY ( classId )
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS  t_grade ;
CREATE TABLE  t_grade(
   gradeId  int(11) NOT NULL AUTO_INCREMENT,
   gradeName  varchar(20) DEFAULT NULL,
   gradeDesc  text,
   PRIMARY KEY(gradeId)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

insert  into  t_student(studentId , stuNo , stuName , stuSex , stuBirthday , stuRxsj , stuNation , stuZzmm , classId , stuDesc , stuPic ) values (‘10bea402-23e4-4066-a4fd-534c3798a7d7‘,‘0011‘,‘美女111‘,‘男‘,‘2014-05-16‘,‘2014-06-08‘,‘回族‘,‘共青团员‘,5,‘美女12222222‘,‘20140712081542.jpg‘),(‘13‘,‘21‘,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL),(‘14‘,‘21‘,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL),(‘15‘,‘2‘,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL),(‘17‘,‘2‘,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL),(‘18‘,‘2‘,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL),(‘19‘,‘小三‘,‘21‘,‘女‘,‘2014-05-14‘,‘2014-05-14‘,‘汉族‘,‘中共党员‘,5,‘是‘,‘20140502030158.jpg‘),(‘4‘,‘11‘,‘212‘,‘男‘,‘2014-04-08‘,‘2014-04-05‘,‘蒙古族‘,‘中共预备党员‘,4,‘21‘,‘20140429052236.JPG‘),(‘5‘,‘11‘,‘21‘,‘男‘,‘2014-04-08‘,‘2014-04-05‘,‘蒙古族‘,‘中共预备党员‘,4,‘21‘,‘20140429052433.JPG‘),(‘6‘,‘21‘,‘2‘,‘男‘,‘2014-04-08‘,‘2014-04-05‘,‘蒙古族‘,NULL,4,NULL,NULL),(‘7fac0234-59ef-46ea-981a-de50d24741b2‘,‘000‘,‘11‘,‘男‘,‘2014-07-10‘,‘2014-07-09‘,‘汉族‘,‘中共党员‘,4,‘测试图片‘,‘20140710090403.jpg‘),(‘a1cf592d-d9d4-4de1-b8ff-0db7e9852411‘,‘sss22‘,‘ss2‘,‘女‘,‘2014-05-08‘,‘2014-05-10‘,‘蒙古族‘,‘共青团员‘,3,‘大2‘,‘20140508022528.jpg‘),(‘a8a1816b-f24c-4fb9-b160-c8c107c80acf‘,‘21‘,‘321‘,‘男‘,‘2014-05-13‘,‘2014-05-15‘,‘蒙古族‘,‘民革党员‘,3,‘123‘,‘20140508020709.jpg‘),(‘b53b0b8a-7f1c-4254-8cff-e8353902f012‘,‘121‘,‘21‘,‘男‘,‘2014-07-09‘,‘2014-07-16‘,‘汉族‘,‘中共党员‘,3,‘21‘,‘‘);
insert  into  t_class ( classId , className , gradeId , classDesc ) values (3,‘09计本‘,2,‘22‘),(4,‘08计本‘,1,‘111‘),(5,‘08网本‘,1,‘222‘),(6,‘10网本‘,3,‘22‘),(7,‘10计本‘,3,‘10年级计算机本科‘);
insert  into  t_grade(gradeId , gradeName , gradeDesc) values (1,‘08级‘,‘111‘),(2,‘09级‘,‘222‘),(3,‘10级‘,‘33‘);

DROP TABLE IF EXISTS  t_datadic ;

CREATE TABLE t_datadic(
   ddId  int(11) NOT NULL AUTO_INCREMENT,
   ddTypeId  int(11) DEFAULT NULL,
   ddValue  varchar(20) DEFAULT NULL,
   ddDesc  text,
  PRIMARY KEY ( ddId )
) ENGINE=InnoDB AUTO_INCREMENT=343 DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS  t_datadictype ;

CREATE TABLE  t_datadictype(
   ddTypeId  int(11) NOT NULL AUTO_INCREMENT,
   ddTypeName  varchar(20) DEFAULT NULL,
   ddTypeDesc  text,
  PRIMARY KEY(ddTypeId)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

insert  into  t_datadic( ddId , ddTypeId , ddValue , ddDesc ) values (1,1,‘男‘,‘1‘),(2,1,‘女‘,NULL),(3,2,‘中共党员‘,NULL),(4,2,‘中共预备党员‘,NULL),(5,2,‘共青团员‘,NULL),(6,2,‘民革党员‘,NULL),(7,2,‘民盟盟员‘,NULL),(8,2,‘民建会员‘,NULL),(9,2,‘民进会员‘,NULL),(10,2,‘农工党党员‘,NULL),(11,2,‘致公党党员‘,NULL),(12,2,‘九三学社社员‘,NULL),(13,2,‘台盟盟员‘,NULL),(14,2,‘无党派人士‘,NULL),(15,2,‘普通公民‘,NULL),(16,2,‘港澳同胞‘,NULL),(17,2,‘叛徒‘,NULL),(18,2,‘反革命分子‘,NULL),(334,3,‘汉族‘,NULL),(335,3,‘蒙古族‘,NULL),(336,3,‘回族‘,NULL),(337,3,‘藏族‘,NULL),(338,3,‘维吾尔族‘,NULL),(339,3,‘门巴族‘,NULL),(340,3,‘外国血统‘,NULL),(342,3,‘哈哈族‘,‘11‘);
insert  into  t_datadictype( ddTypeId , ddTypeName , ddTypeDesc ) values (1,‘性别‘,‘121‘),(2,‘政治面貌‘,NULL),(3,‘名族‘,NULL);

DROP TABLE IF EXISTS  t_user ;

CREATE TABLE  t_user(
   userId  int(11) NOT NULL AUTO_INCREMENT,
   userName  varchar(20) DEFAULT NULL,
   password  varchar(20) DEFAULT NULL,
  PRIMARY KEY ( userId )
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
insert  into  t_user( userId , userName , password ) values (1,‘java1234‘,‘12‘);

alter table t_student add constraint FK_t_student foreign key(classId) REFERENCES  t_class  ( classId );
alter table t_class add constraint FK_t_class foreign key(gradeId) REFERENCES t_grade(gradeId);
alter table t_datadic add constraint FK_t_datadic foreign key(ddTypeId) REFERENCES  t_datadictype  (ddTypeId);

  

时间: 2024-11-09 09:26:35

mysql建表: 主键,外键约束的相关文章

Mysql 截断表时由于外键约束无法完成时的处理方法

而在MySQL?5.5中,存在外键约束的InnoDB表,在任何情况下都不允许进行Truncate操作,并报错(Error 1701),如果朋友你实在是有点强迫症,那么可以用下面的方式拐着弯解决: 导出数据库数据位.sql文件. 随便用个文本编辑器打开文件. 手动编辑一下.sql文件,怎样编辑相信你看了下面这个图就知道了 4.再将编辑好的.sql文件重新导入就OK了.

MySQL基础之 主键外键设置

外键: 定义:如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 作用:外键是用来实现参照完整性的,不同的外键约束方式将可以是两张表紧密的结合起来.比如修改或者删除的级联操作等,外键主要用来保证数据的完整性和一致性. 条件: 1.创建外键的两个表,父表与子表必须是InnoDB存储引擎. 2.创建外键的时候,父表要创建索引,一般为主键索引.子表在创建外键的时候也必须要创建索引. 3.子表的外键必须和父表的主键数据类型相对应(字段的类型和值必须一样或者相似,比如i

MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表

今日重点:外键 一对多 多对多      一对一 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一.引言: 我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id

Sql Server 主键 外键约束

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

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

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

MySQL 主键外键

笛卡儿积 多表查询 ,多个表变成一个表 完整性约束条件primary key    标识该属性为该表的主键,可以唯一的标识对应的元组foreign key    标识该属性为该表的外键,是与之联系的某表的主键not null       标识该属性不能为空unique         标识该属性的值是唯一的auto_increment 标识该属性的值自动增加default        为该属性设置默认值设置从表 外键constraint 外键别名 foreign key(属性1.1, 属性1.

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

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

MySQL主键 外键 索引

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

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

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