首页 > 数据库技术 > 详细

sql查询

时间:2020-03-26 20:59:09      阅读:61      评论:0      收藏:0      [点我收藏+]

sql查询

 

技术分享图片

 

表的结构

Student(sno,sname,ssex,sage,sdept)

Course(cno,cname,credit)

SC(sno,cno,grade)

建立上述表单,使用Navicat

 

技术分享图片
ER图

 

查询要求

询所有同学的选课情况,属性显示“姓名”和“课程名”

方法一

简单的连接查询

语句

SELECT s.sname as ‘姓名‘, c.cname as ‘课程名‘ from student as s ,course as c,sc where s.sno=sc.sno and c.cno=sc.cno ORDER BY s.sno

结果

 

技术分享图片
结果一

 

上述分析可以知道,姓名为1的学生选择了课程名为a,b,c的课程。

方法二

简单的子查询
经过仔细考虑,由于这个是要查询所同学的选课纪路所以这种方式,没有意义

sql文件

/*
 Navicat Premium Data Transfer

 Source Server         : how
 Source Server Type    : MySQL
 Source Server Version : 80017
 Source Host           : localhost:3306
 Source Schema         : student

 Target Server Type    : MySQL
 Target Server Version : 80017
 File Encoding         : 65001

 Date: 26/03/2020 19:45:21
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course`  (
  `cno` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `cname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `ccredit` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`cno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES (‘a‘, ‘a‘, ‘a‘);
INSERT INTO `course` VALUES (‘b‘, ‘b‘, ‘b‘);
INSERT INTO `course` VALUES (‘c‘, ‘c‘, ‘c‘);

-- ----------------------------
-- Table structure for sc
-- ----------------------------
DROP TABLE IF EXISTS `sc`;
CREATE TABLE `sc`  (
  `sno` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `cno` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `grade` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`sno`, `cno`) USING BTREE,
  INDEX `cno`(`cno`) USING BTREE,
  CONSTRAINT `c_cno` FOREIGN KEY (`cno`) REFERENCES `course` (`cno`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `c_sno` FOREIGN KEY (`sno`) REFERENCES `student` (`sno`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sc
-- ----------------------------
INSERT INTO `sc` VALUES (‘1‘, ‘a ‘, ‘1‘);
INSERT INTO `sc` VALUES (‘1‘, ‘b‘, ‘1‘);
INSERT INTO `sc` VALUES (‘1‘, ‘c‘, ‘1‘);
INSERT INTO `sc` VALUES (‘2‘, ‘a‘, ‘2‘);
INSERT INTO `sc` VALUES (‘2‘, ‘b‘, ‘2‘);
INSERT INTO `sc` VALUES (‘2‘, ‘c‘, ‘2‘);
INSERT INTO `sc` VALUES (‘3‘, ‘c‘, ‘3‘);

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `sno` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `sname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `ssex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `sage` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `sdept` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`sno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (‘1‘, ‘1‘, ‘1‘, ‘1‘, ‘1‘);
INSERT INTO `student` VALUES (‘2‘, ‘2‘, ‘2‘, ‘2‘, ‘2‘);
INSERT INTO `student` VALUES (‘3‘, ‘3‘, ‘3‘, ‘3‘, ‘3‘);
INSERT INTO `student` VALUES (‘4‘, ‘4‘, ‘4‘, ‘4‘, ‘4‘);
INSERT INTO `student` VALUES (‘5‘, ‘5‘, ‘5‘, ‘5‘, ‘5‘);
INSERT INTO `student` VALUES (‘6‘, ‘6‘, ‘6‘, ‘6‘, ‘6‘);

SET FOREIGN_KEY_CHECKS = 1;

sql查询

原文:https://www.cnblogs.com/Howbin/p/12576850.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!