mysql 建立表之间关系 练习 2

创建数据库db6

create database db6 charset=utf8;

user db6;

# 创建班级表

mysql> create table class(cid int primary key auto_increment,caption varchar(50) not null unique);
Query OK, 0 rows affected (0.15 sec)

mysql> select * from class;
Empty set (0.00 sec)

mysql> insert into class(caption) values(‘三年二班‘),(‘一年三班‘),(‘三年一班‘);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from class;
+-----+--------------+
| cid | caption      |
+-----+--------------+
|   2 | 一年三班     |
|   3 | 三年一班     |
|   1 | 三年二班     |
+-----+--------------+
3 rows in set (0.00 sec)

# 创建老师表

mysql> create table teacher(tid int primary key auto_increment,tname varchar(50) not null);
Query OK, 0 rows affected (0.11 sec)

mysql> insert into teacher(tname) values(‘李老师‘),(‘吴老师‘),(‘陈老师‘);
Query OK, 3 rows affected (0.12 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from teacher;
+-----+-----------+
| tid | tname     |
+-----+-----------+
|   1 | 李老师    |
|   2 | 吴老师    |
|   3 | 陈老师    |
+-----+-----------+
3 rows in set (0.00 sec)

多对一关系建表

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

创建学生表

mysql> create table student(
sid int primary key auto_increment,
sname varchar(20) not null,
gender enum(‘男‘,‘女‘) not null,
class_id int not null,
foreign key(class_id) references class(cid)
on delete cascade
on update cascade);
Query OK, 0 rows affected (0.06 sec)
mysql> insert into student(sname,gender,class_id) values(‘小红‘,‘女‘,1),(‘小李‘,‘女‘,1),(‘小刚‘,‘男‘,2);
Query OK, 3 rows affected (0.36 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from student;
+-----+--------+--------+----------+
| sid | sname  | gender | class_id |
+-----+--------+--------+----------+
|   1 | 小红   | 女     |        1 |
|   2 | 小李   | 女     |        1 |
|   3 | 小刚   | 男     |        2 |
+-----+--------+--------+----------+
3 rows in set (0.00 sec)

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

创建课程表

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

插入记录 并查询

mysql> insert into course(cname,tearch_id) values(‘生物‘,1),(‘体育‘,1),(‘物理‘,2);
Query OK, 3 rows affected (0.11 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from course;
+-----+--------+-----------+
| cid | cname  | tearch_id |
+-----+--------+-----------+
|   1 | 生物   |         1 |
|   2 | 体育   |         1 |
|   3 | 物理   |         2 |
+-----+--------+-----------+
3 rows in set (0.00 sec)

建立多对多关系

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

mysql> create table score(
sid int not null unique auto_increment,
student_id int not null,
corse_id int not null,
number char(16) not null,
foreign key(student_id) references student(sid)
on delete cascade
on update cascade,
foreign key(corse_id) references course(cid)
on delete cascade
on update cascade,
primary key(student_id,corse_id));

插入记录

mysql> insert into score(student_id,corse_id,number) values(1,1,‘60‘),(1,2,‘59‘),(2,2,‘100‘);
Query OK, 3 rows affected (0.70 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from score;
+-----+------------+----------+--------+
| sid | student_id | corse_id | number |
+-----+------------+----------+--------+
|   1 |          1 |        1 | 60     |
|   2 |          1 |        2 | 59     |
|   3 |          2 |        2 | 100    |
+-----+------------+----------+--------+
3 rows in set (0.00 sec)

原文地址:https://www.cnblogs.com/mingerlcm/p/9868437.html

时间: 2024-10-03 06:20:45

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

mysql 建立表之间关系 练习 1

练习:账号信息表,用户组,主机表,主机组 #用户表 mysql> create table user( id int not null unique auto_increment, username varchar(50) not null, password varchar(50) not null, primary key(username,password)); Query OK, 0 rows affected (0.12 sec) 插入用户信息 mysql> insert into

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

配置以下两处,可以方便我们直接右键运行tests.py一个文件,实现对数据库操作语句的调试: settings里面的设置: #可以将Django对数据库的操作语法,能输出对应的的sql语句 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': {

8.3.7 - mysql 表之间关系

如何找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id) #3.总结: #多对一: 如果只有步骤1成立,则是左表多对一右表 如果只有步骤2成立,则是右表多对一左表 #多对多 如果步骤1和2同时成立,则证明这两张表时一个双

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

[转]Oracle - 数据库的实例.表空间.用户.表之间关系 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘

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

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件.Oracle有一个很大的内存快,成为全局区(SGA

表与表之间关系回顾

------------------siwuxie095 表与表之间关系回顾 1.一对多 (1) 1)场景:分类和商品的关系 2)描述:一个分类里面有多个商品,一个商品只能属于一个分类 (2) 1)场景:客户和联系人的关系 2)描述:一个客户里面有多个联系人,一个联系人只能属于一个客户 注意:这里的客户是公司级的,即 公司,联系人 即 公司里的员工,实 际上就是公司和员工的关系 (3)一对多建表:通过外键建立关系 在多的那一方创建字段作为外键,指向一的那一方的主键 客户: cid cname 1

ACCESS 实例学生信息管理表之间关系图

ACCESS 实例学生信息管理表之间关系图 汉语编程1 汉语编程2 汉语编程3 原文地址:http://blog.51cto.com/13172026/2164352

导航猫(NaviCat for MySql)建立表的方法

我知道在客户端上建立表一共了三种(我自己知道,不知道还有木有别的方法,如果有请留言) 1.右键某数据库建立一张表,自己填写字段 2.导入.sql文件(sql语句已经写好),如下图: 右键数据点运行SQL文件就出现了上面的截图部分,执行完sql,刷新一下数据库,表就建立好了.(前提是sql文件中的语句是对的). 3.点击查询->新建查询->此时写sql语句,如下图: 我就知道这三种了,其实sql文件应该是可以生成的(如果切换数据,应该可以在原来的数据库中生成),我建议还是第三种可以联系一下sql

mysql建立表及表的简单操作-插入数据-删除主键-删除表-修改表的数据-删除表的数据

-- 1.使用数据库 USE ren; -- 2.建立student表 CREATE TABLE student ( sid INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,   -- UNSIGNED(无符号) AUTO_INCREMENT(自增) sname VARCHAR(10),    -- 只能保存10个字符 saddress VARCHAR(15)   -- 只能保存15个字符 )ENGINE=MYISAM DEFAULT CHARSET=utf8;