2017.10.20笔记:多表数据操作
来源:互联网 发布:修复老电影软件下载 编辑:程序博客网 时间:2024/05/18 11:48
一.创建表
1.学员表
-- 创建学员表DROP TABLE IF EXISTS t_student;CREATE TABLE t_student( id INT PRIMARY KEY AUTO_INCREMENT, code VARCHAR(255), name VARCHAR(255), id_card_number VARCHAR(255), clazz_id VARCHAR(255), CONSTRAINT fk_student_clazz FOREIGN KEY (clazz_id) REFERENCES t_clazz(id));
2.班级表
-- 创建班级表DROP TABLE IF EXISTS t_clazz;CREATE TABLE t_clazz( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255));
3.课程表
DROP TABLE IF EXISTS t_course;CREATE TABLE t_course( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255));
4.学员账号表
-- 创建学员账号表DROP TABLE IF EXISTS t_account;CREATE TABLE t_account( id INT PRIMARY KEY AUTO_INCREMENT, student_id INT UNIQUE, userName VARCHAR(255), password VARCHAR(255), CONSTRAINT fk_account_student FOREIGN KEY (student_id) REFERENCES t_student(id))
5.学员课程关系表
-- 创建学员课程关系表DROP TABLE IF EXISTS t_student_course;CREATE TABLE t_student_course( id INT PRIMARY KEY AUTO_INCREMENT, student_id INT, course_id INT, CONSTRAINT fk_middle_student FOREIGN KEY (student_id) REFERENCES t_student(id), CONSTRAINT fk_middle_course FOREIGN KEY (course_id) REFERENCES t_course(id));
二.表关联查询
1.自然连接查询
使用 WHERE 条件将两个表之间进行关联查询
-- 查询学员的学号、姓名、所在班级名称SELECT s.clazz_id,s.code,s.`name`,c.id,c.`name`FROM student as s, clazz as cWHERE S.clazz_id = C.id
2.内连接查询
-- 内连接查询SELECT s.`code`, s.`name`, c.`name` FROM student s INNER JOIN clazz c ON s.clazz_id = c.id
3.左外连接查询
以左表为主表,左表中的数据都会被显示出来,关联的右表中,如果存在符合条件的数据,那么会被关联出并显示,如果没有,则会显示 NULL。
-- 左外连接SELECT s.`code`, s.`name`, c.`name` FROM student s LEFT JOIN clazz c ON s.clazz_id = c.id
4.综合查询
-- 查询学员选课信息,要求显示出班级、账号、课程等基础信息SELECT cl.name as '班级名称',s.`code` as '学号',s.`name` as '姓名', a.username as '账号',a.password as '账号密码',c.`name` as '课程名称'FROM student_course scLEFT JOIN student s ON sc.student_id = s.idLEFT JOIN course c on sc.course_id = c.idLEFT JOIN clazz cl on s.clazz_id = cl.idLEFT JOIN account a on a.student_id = s.id
阅读全文
0 0
- 2017.10.20笔记:多表数据操作
- 数据操作相关函数笔记
- MongoDB学习笔记(数据操作)
- MongoDB学习笔记(数据操作)
- hive学习笔记-数据操作
- MongoDB学习笔记(数据操作)
- shell 操作oracle数据笔记
- MongoDB学习笔记(数据操作)
- Oracle学习笔记(七)操作表中的数据
- 【JavaEE学习笔记】MySQL_01_概述,操作库,操作表,管理数据
- [XML学习笔记][2.5]XML数据操作
- oracle学习笔记之七 数据操作
- 笔记:OpenCV操作XML存储数据
- 【JAVA IO】_数据操作流笔记
- MongoDB学习笔记2(数据操作)
- opencv学习笔记2--Mat数据操作
- hive学习笔记之-数据操作
- 【JAVA IO】_数据操作流笔记
- C 语言现代编程一 C与模块化
- 分布式事务之说说TCC事务
- 连续第十天
- ubuntu/linux下查看端口使用情况
- 【Android】时钟控件AnalogClock和DigitalClock
- 2017.10.20笔记:多表数据操作
- 关于编码的问题
- 链栈
- ubuntu Linux 设置记录
- C6748_UART轮询模式
- vue 分页
- 假设检验(Hypothesis Testing)
- 链表练习:多项式的加法和乘法
- java的自我总结