一对多关系表

1

1
2
3
4
SHOW CREATE DATABASE test;
SHOW databases;
CREATE DATABASE test DEFAULT CHARSET utf8;
#drop database test;#删除表text

2选择数据库test

1
use test

2建表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE book (
book_id int PRIMARY KEY AUTO_INCREMENT,
book_name varchar(60) NOT NULL,
book_author varchar(60) NOT NULL,
book_shelf int DEFAULT 0,
book_addtime datetime NOT NULL
);

CREATE TABLE book_shelf
(
shelf_id int PRIMARY KEY AUTO_INCREMENT ,
shelf_manager varchar(60) NOT NULL,
shelf_position varchar(60) NOT NULL,
record_time datetime NOT NULL
);

3插入

1
2
INSERT INTO book_shelf (shelf_manager, shelf_position, record_time)
VALUES ('manager1','A123', NOW()), ('manager1','A124', NOW()),('manager1','A125', NOW()) ;

2.

1
SELECT * FROM book_shelf;

3.

1
2
INSERT INTO book (book_name, book_author, book_shelf, book_addtime)
VALUES ('life', 'yu', 1, NOW()), ('倾城之恋','张爱玲', 2, NOW());

4.

1
2
SELECT book_name, book_author, shelf_manager, shelf_position FROM book, book_shelf
WHERE shelf_id = book.book_shelf AND book_id = 1;

多对多关系

1建立数据库map

  1. 建立
1
2
3
4
SHOW CREATE DATABASE map;
SHOW databases;
CREATE DATABASE map DEFAULT CHARSET utf8;

  1. 选择数据库
1
use map

2建表

  1. 学生表
1
2
3
4
5
6
7
8
CREATE TABLE student
(
stu_id int PRIMARY KEY AUTO_INCREMENT,
stu_name varchar(60) NOT NULL,
stu_class varchar(60) NOT NULL,
stu_phone varchar(60) NOT NULL,
record_time datetime NOT NULL
);
  1. 课程表
1
2
3
4
5
6
7
CREATE TABLE course
(
course_id int PRIMARY KEY AUTO_INCREMENT,
course_name varchar(60) NOT NULL,
teacher_id int DEFAULT 0,
record_time datetime NOT NULL
);
  1. 教师
1
2
3
4
5
6
CREATE TABLE teacher
(
teacher_id int PRIMARY KEY AUTO_INCREMENT,
teacher_name varchar(60),
record_time datetime NOT NULL
);

3学生和课程多对多

  1. 建立学生和课程多对多的表
1
2
3
4
5
6
CREATE TABLE course_student
(
course_id int,
stu_id int,
PRIMARY KEY(course_id, stu_id)
);
  1. 插入
1
2
INSERT INTO student (stu_name, stu_class, stu_phone, record_time)
VALUES ('aaa', '001', '12345', NOW()),('bbb', '001', '12346', NOW());
  1. 查询学生表
1
SELECT * FROM student;
  1. 插入课程
1
2
INSERT INTO course (course_name, teacher_id, record_time)
VALUES ('c', 1, NOW()), ('android',2, NOW()),('computer', 3, NOW());
  1. 查询学生和老师
1

  1. 插入
1
INSERT INTO course_student (course_id, stu_id) VALUES (1,1),(1, 2),(2,1), (3, 1);
  1. 选择课程名和学生名
1
2
3
SELECT course_name,stu_name FROM course, student, course_student
WHERE student.stu_id = 1 AND course_student.stu_id = student.stu_id
AND course_student.course_id = course.course_id;