创建数据库db6

  1. create database db6 charset=utf8;

user db6;

# 创建班级表

  1. mysql> create table class(cid int primary key auto_increment,caption varchar(50) not null unique);
  2. Query OK, 0 rows affected (0.15 sec)
  3.  
  4. mysql> select * from class;
  5. Empty set (0.00 sec)
  6.  
  7. mysql> insert into class(caption) values('三年二班'),('一年三班'),('三年一班');
  8. Query OK, 3 rows affected (0.00 sec)
  9. Records: 3 Duplicates: 0 Warnings: 0
  10.  
  11. mysql> select * from class;
  12. +-----+--------------+
  13. | cid | caption |
  14. +-----+--------------+
  15. | 2 | 一年三班 |
  16. | 3 | 三年一班 |
  17. | 1 | 三年二班 |
  18. +-----+--------------+
  19. 3 rows in set (0.00 sec)

# 创建老师表

  1. mysql> create table teacher(tid int primary key auto_increment,tname varchar(50) not null);
  2. Query OK, 0 rows affected (0.11 sec)
  3.  
  4. mysql> insert into teacher(tname) values('李老师'),('吴老师'),('陈老师');
  5. Query OK, 3 rows affected (0.12 sec)
  6. Records: 3 Duplicates: 0 Warnings: 0
  7.  
  8. mysql> select * from teacher;
  9. +-----+-----------+
  10. | tid | tname |
  11. +-----+-----------+
  12. | 1 | 李老师 |
  13. | 2 | 吴老师 |
  14. | 3 | 陈老师 |
  15. +-----+-----------+
  16. 3 rows in set (0.00 sec)

多对一关系建表

# 学生表与班级表建立关系

创建学生表

  1. mysql> create table student(
  2. sid int primary key auto_increment,
  3. sname varchar(20) not null,
  4. gender enum('男','女') not null,
  5. class_id int not null,
  6. foreign key(class_id) references class(cid)
  7. on delete cascade
  8. on update cascade);
  9. Query OK, 0 rows affected (0.06 sec)
  1. mysql> insert into student(sname,gender,class_id) values('小红','女',1),('小李','女',1),('小刚','男',2);
  2. Query OK, 3 rows affected (0.36 sec)
  3. Records: 3 Duplicates: 0 Warnings: 0
  4.  
  5. mysql> select * from student;
  6. +-----+--------+--------+----------+
  7. | sid | sname | gender | class_id |
  8. +-----+--------+--------+----------+
  9. | 1 | 小红 | | 1 |
  10. | 2 | 小李 | | 1 |
  11. | 3 | 小刚 | | 2 |
  12. +-----+--------+--------+----------+
  13. 3 rows in set (0.00 sec)

# 老师表和课程表建立关系

创建课程表

  1. mysql> create table course(
  2. cid int primary key auto_increment,
  3. cname varchar(20) not null,
  4. tearch_id int not null,
    foreign key(tearch_id) references teacher(tid)
    on delete cascade
  5. on update cascade);
  6. Query OK, 0 rows affected (0.12 sec

插入记录 并查询

  1. mysql> insert into course(cname,tearch_id) values('生物',1),('体育',1),('物理',2);
  2. Query OK, 3 rows affected (0.11 sec)
  3. Records: 3 Duplicates: 0 Warnings: 0
  4.  
  5. mysql> select * from course;
  6. +-----+--------+-----------+
  7. | cid | cname | tearch_id |
  8. +-----+--------+-----------+
  9. | 1 | 生物 | 1 |
  10. | 2 | 体育 | 1 |
  11. | 3 | 物理 | 2 |
  12. +-----+--------+-----------+
  13. 3 rows in set (0.00 sec)

建立多对多关系

# 建立一张score表 与 学生表 课程表建立关系

  1. mysql> create table score(
  2. sid int not null unique auto_increment,
  3. student_id int not null,
  4. corse_id int not null,
  5. number char(16) not null,
  6. foreign key(student_id) references student(sid)
  7. on delete cascade
  8. on update cascade,
  9. foreign key(corse_id) references course(cid)
  10. on delete cascade
  11. on update cascade,
  12. primary key(student_id,corse_id)
    );

插入记录

  1. mysql> insert into score(student_id,corse_id,number) values(1,1,''),(1,2,''),(2,2,'');
  2. Query OK, 3 rows affected (0.70 sec)
  3. Records: 3 Duplicates: 0 Warnings: 0
  4.  
  5. mysql> select * from score;
  6. +-----+------------+----------+--------+
  7. | sid | student_id | corse_id | number |
  8. +-----+------------+----------+--------+
  9. | 1 | 1 | 1 | 60 |
  10. | 2 | 1 | 2 | 59 |
  11. | 3 | 2 | 2 | 100 |
  12. +-----+------------+----------+--------+
  13. 3 rows in set (0.00 sec)

mysql 建立表之间关系 练习 2的更多相关文章

  1. mysql 建立表之间关系 练习 1

    练习:账号信息表,用户组,主机表,主机组 #用户表 mysql> create table user( id int not null unique auto_increment, userna ...

  2. mysql 建立表之间关系 一对一 练习1

    创建db5数据库 create database db5 charset=utf8; use db5; 例一:一个用户只有一个博客 用户表: id name 1 mike 2 alex 3 jack ...

  3. mysql 建立表之间关系 一对一 练习2

    创建db5数据库 create database db5 charset=utf8; use db5; 例二:一个管理员唯一对应一个用户 用户表: id user password 1 egon xx ...

  4. Django数据库的查看、删除,创建多张表并建立表之间关系

    配置以下两处,可以方便我们直接右键运行tests.py一个文件,实现对数据库操作语句的调试: settings里面的设置: #可以将Django对数据库的操作语法,能输出对应的的sql语句 LOGGI ...

  5. 【转】Oracle - 数据库的实例、表空间、用户、表之间关系

    [转]Oracle - 数据库的实例.表空间.用户.表之间关系 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机 ...

  6. Hibernate_day03--课程安排_表之间关系_一对多操作

    Hibernate_day03 上节内容 今天内容 表与表之间关系回顾(重点) Hibernate的一对多操作(重点) 一对多映射配置(重点) 一对多级联操作 一对多级联保存 一对多级联删除 一对多修 ...

  7. 阶段3 1.Mybatis_09.Mybatis的多表操作_1 mybatis表之间关系分析

    4.mybatis中的多表查询     表之间的关系有几种:         一对多         多对一         一对一         多对多     举例:         用户和订单 ...

  8. Oracle - 数据库的实例、表空间、用户、表之间关系

    完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Ora ...

  9. [转]Oracle - 数据库的实例、表空间、用户、表之间关系

    本文转自:http://www.cnblogs.com/adforce/p/3312252.html 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物 ...

随机推荐

  1. 初识PowerShell

    一.简介 Windows PowerShell 是微软公司为Windows环境所开发的壳程序(shell)及脚本语言技术,采用的是命令行界面.这项全新的技术提供了丰富的控制与自动化的系统管理能力.之前 ...

  2. jdbc preparedstatement 调用存储过程的问题

    preparedstatement   是可以执行正常的存储过程 executeQuery() 正常执行 在实际开发中遇到一种问题当 preparedstatement.setMaxRows 设置了这 ...

  3. js将秒数换算成时分秒

    转载自:http://jingyan.baidu.com/article/375c8e19a0413925f2a229d2.html <script language="javascr ...

  4. Linux svn仓库备份到Windows机器上

    Linux svn仓库备份到Windows机器上 1,需求说明,Linux作为主库(A),Windows作为本地备份库(B),要求每天将Linux库中的代码备份到本地 2,B机器上安装svn服务端 3 ...

  5. 再来一个expect脚本

    [root@jenkins scripts]# cat expect_test1205.sh #!/usr/bin/expect ################################### ...

  6. Docker 和一个正常的虚拟机有何区别?

    问: 我多次重读Docker.io文档,希望搞明白Docker.io和一个完全的虚拟机的区别.Docker是如何做到提供一个完整的文件系统,独立的网络环境等等这些功能,同时还没有如此庞大? 为什么部署 ...

  7. String类和StringBuffer类

    位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以.它用于封装内容可变的字符串.它可以使用tostring()转换成stri ...

  8. js常用API汇总(转)

    typeof(); 检测数据类型 String(); 转换成字符串 parseInt(); 解析出一个string或number的整数部分 parseFloat(); 解析出一个string的浮点数部 ...

  9. Cannot call sendRedirect() after the response has been committed错误;

    Cannot call sendRedirect() after the response has been committed提示信息其实很清楚,如果response已经提交过了,就无法再发送sen ...

  10. 网络虚拟化之FlowVisor:网络虚拟层(上)

    概念解释:切片:虚拟网络的一个实例 一. 网络虚拟化(虚拟网络) 人类社会的发展在很大方面得益于自然界,飞机受益于鸟,雷达受益于蝙蝠等等,所以专门有个学科为仿生学就是研究和模仿生物的特殊本质,利用生物 ...