在一个学生表中 有学号 姓名 年龄 根据学号查询单条数据 并且查询所有同学的年龄
时间: 2024-03-08 22:51:18 浏览: 75
好的,根据您的需求,可以使用以下的SQL语句来查询单条数据并且查询所有同学的年龄:
```
-- 查询单条数据
SELECT 学号, 姓名, 年龄
FROM 学生表
WHERE 学号 = '要查询的学号';
-- 查询所有同学的年龄
SELECT 年龄
FROM 学生表;
```
其中,`学生表`是您的学生信息表的表名。第一个SQL语句中,我们使用了`WHERE`关键字筛选出学号为指定值的那一行数据,并且只查询了该行数据中的`学号`、`姓名`和`年龄`三列。第二个SQL语句中,我们没有使用`WHERE`关键字,因此会返回`学生表`中所有行的`年龄`列数据,用于查询所有同学的年龄。
相关问题
库表操作 ·新建一个数据库(-DB““+学号) ·(siudent学生信息表:序号、学号、姓名、性别、出生年月、学院、地址)。新建一张表·(score 分数表:学号(外键)、学科、分数) 。单条数据的插入 。批量数据的插入 ·join两张表,查询出某个学生某个学科的分数!
库表操作通常是指在关系型数据库中进行的一系列操作,包括创建数据库、创建表、插入数据、查询数据等。以下是根据您提供的信息,使用SQL语言进行的库表操作的示例:
1. 新建一个数据库:
```sql
CREATE DATABASE IF NOT EXISTS `学号`;
```
注意:这里的“学号”应替换成具体的学号值。
2. 新建一张学生信息表(student):
```sql
USE `学号`;
CREATE TABLE IF NOT EXISTS `student` (
`序号` INT AUTO_INCREMENT PRIMARY KEY,
`学号` VARCHAR(20) NOT NULL,
`姓名` VARCHAR(50) NOT NULL,
`性别` CHAR(1) NOT NULL,
`出生年月` DATE NOT NULL,
`学院` VARCHAR(50) NOT NULL,
`地址` VARCHAR(100) NOT NULL
);
```
3. 新建一张分数表(score):
```sql
CREATE TABLE IF NOT EXISTS `score` (
`序号` INT AUTO_INCREMENT PRIMARY KEY,
`学号` VARCHAR(20) NOT NULL,
`学科` VARCHAR(50) NOT NULL,
`分数` DECIMAL(5, 2) NOT NULL,
FOREIGN KEY (`学号`) REFERENCES `student`(`学号`)
);
```
4. 单条数据的插入:
```sql
-- 插入学生信息
INSERT INTO `student` (`学号`, `姓名`, `性别`, `出生年月`, `学院`, `地址`) VALUES ('123456', '张三', 'M', '2000-01-01', '计算机学院', '某省某市');
-- 插入分数信息
INSERT INTO `score` (`学号`, `学科`, `分数`) VALUES ('123456', '数学', 92.5);
```
5. 批量数据的插入:
```sql
-- 批量插入学生信息
INSERT INTO `student` (`学号`, `姓名`, `性别`, `出生年月`, `学院`, `地址`) VALUES
('123457', '李四', 'F', '2000-02-02', '物理学院', '某省某市'),
('123458', '王五', 'M', '2000-03-03', '化学学院', '某省某市');
-- 批量插入分数信息
INSERT INTO `score` (`学号`, `学科`, `分数`) VALUES
('123457', '数学', 88.0),
('123458', '物理', 93.0);
```
6. join两张表,查询出某个学生某个学科的分数:
```sql
SELECT `student`.`姓名`, `score`.`学科`, `score`.`分数`
FROM `student`
JOIN `score` ON `student`.`学号` = `score`.`学号`
WHERE `student`.`姓名` = '张三' AND `score`.`学科` = '数学';
```
以上就是基于您提供的信息的库表操作的基本介绍。在实际操作中,可能还需要考虑数据的完整性约束、性能优化等因素。
1. 创建关系表student、course、sc表,具体的属性见课本,要求第一、用可视化的界面创建 第二,用SQL语言来创建基本表,并修改student表插入新的属性列address(地址),然后删除新的属性列address; 2. 创建关系表并插入3条以上的元组,注意外码和主码的取值。 3. 练习使用select实现的单表查询; (1)查询计算系姓“王”的所有学生的信息; (2)查询考试成绩有不及格的学生的学号; (3)查询课程名称为“DB_design”的课程信息; (4)查询选修了3号课程的学生姓名,并按照学号降序排列 (5)统计每个系的男生总人数 (6)分别统计每个系的男生和女生总人数、男生最大年龄、女生最大年龄,并按照系降序排序
好的,您的问题我已经收到了!以下是对您的问题的回答:
1.
(1)使用可视化界面创建表:
- 学生表student:id、name、sex、birthday、address、department
- 课程表course:id、name、teacher、credit
- 成绩表sc:id、student_id、course_id、score
(2)使用SQL语言创建基本表:
- 学生表student:
```
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(20),
sex VARCHAR(10),
birthday DATE,
address VARCHAR(100),
department VARCHAR(20)
);
```
- 课程表course:
```
CREATE TABLE course (
id INT PRIMARY KEY,
name VARCHAR(50),
teacher VARCHAR(20),
credit INT
);
```
- 成绩表sc:
```
CREATE TABLE sc (
id INT PRIMARY KEY,
student_id INT,
course_id INT,
score INT,
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (course_id) REFERENCES course(id)
);
```
- 修改student表插入新的属性列address(地址):
```
ALTER TABLE student ADD COLUMN address VARCHAR(100);
```
- 删除新的属性列address:
```
ALTER TABLE student DROP COLUMN address;
```
2. 创建关系表并插入3条以上的元组,注意外码和主码的取值。
以学生表student为例,创建并插入3条以上的元组:
```
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(20),
sex VARCHAR(10),
birthday DATE,
department VARCHAR(20)
);
INSERT INTO student VALUES (1, '张三', '男', '2000-01-01', '计算机科学与技术');
INSERT INTO student VALUES (2, '李四', '女', '2001-02-02', '软件工程');
INSERT INTO student VALUES (3, '王五', '男', '2002-03-03', '数据科学与大数据技术');
```
3. 练习使用select实现的单表查询:
(1)查询计算系姓“王”的所有学生的信息:
```
SELECT * FROM student WHERE department = '计算机科学与技术' AND name LIKE '王%';
```
(2)查询考试成绩有不及格的学生的学号:
```
SELECT DISTINCT student_id FROM sc WHERE score < 60;
```
(3)查询课程名称为“DB_design”的课程信息:
```
SELECT * FROM course WHERE name = 'DB_design';
```
(4)查询选修了3号课程的学生姓名,并按照学号降序排列:
```
SELECT s.name FROM student s
INNER JOIN sc ON s.id = sc.student_id
WHERE sc.course_id = 3
ORDER BY s.id DESC;
```
(5)统计每个系的男生总人数:
```
SELECT department, COUNT(*) FROM student WHERE sex = '男' GROUP BY department;
```
(6)分别统计每个系的男生和女生总人数、男生最大年龄、女生最大年龄,并按照系降序排序:
```
SELECT department,
SUM(CASE WHEN sex='男' THEN 1 ELSE 0 END) AS male_count,
SUM(CASE WHEN sex='女' THEN 1 ELSE 0 END) AS female_count,
MAX(CASE WHEN sex='男' THEN YEAR(NOW()) - YEAR(birthday) ELSE 0 END) AS male_max_age,
MAX(CASE WHEN sex='女' THEN YEAR(NOW()) - YEAR(birthday) ELSE 0 END) AS female_max_age
FROM student
GROUP BY department
ORDER BY department DESC;
```
阅读全文