【Mysql作业】

第一次作业

要求

1.首先打开Windows PowerShell

2.连接到MYSQL服务器

3.执行以下SQL语句:

-- 创建数据库

CREATE DATABASE mydb6_product;

-- 使用数据库

USE mydb6_product;

-- 创建employees表

CREATE TABLE employees (

id INT PRIMARY KEY,

name VARCHAR(50) NOT NULL,

age INT,

gender VARCHAR(10) NOT NULL DEFAULT 'unknown',

salary FLOAT

);

-- 创建orders表

CREATE TABLE orders (

id INT PRIMARY KEY,

name VARCHAR(100) NOT NULL,

price FLOAT,

quantity INT,

category VARCHAR(50)

);

-- 创建invoices表

CREATE TABLE invoices (

number INT PRIMARY KEY AUTO_INCREMENT,

order_id INT,

in_date DATE,

total_amount FLOAT CHECK (total_amount > 0),

FOREIGN KEY (order_id) REFERENCES orders(id)

);

4.运行结果图

总结

-创建数据库和表:使用 `CREATE DATABASE` 和 `CREATE TABLE`。

  • 验证数据库:`SHOW DATABASES LIKE 'mydb6_product'`。

  • 验证表:`SHOW TABLES` 查看所有表,`SHOW CREATE TABLE 表名` 查看表结构。

第二次作业

要求

1.建库建表

-- 创建数据库

CREATE DATABASE IF NOT EXISTS mydb8_worker;

-- 使用数据库

USE mydb8_worker;

-- 创建表

CREATE TABLE IF NOT EXISTS t_worker (

department_id INT(11) NOT NULL COMMENT '部门号',

worker_id INT(11) PRIMARY KEY NOT NULL COMMENT '职工号',

worker_date DATE NOT NULL COMMENT '工作时间',

wages FLOAT(8,2) NOT NULL COMMENT '工资',

politics VARCHAR(10) NOT NULL DEFAULT '群众' COMMENT '政治面貌',

name VARCHAR(20) NOT NULL COMMENT '姓名',

birth_date DATE NOT NULL COMMENT '出生日期'

);

2.插入数据

INSERT INTO t_worker VALUES (101,1001,'2015-5-4',7500.00,'群众','张春燕','1990-7-1');

INSERT INTO t_worker VALUES (101,1002,'2019-2-6',5200.00,'团员','李名博','1997-2-8');

INSERT INTO t_worker VALUES (102,1003,'2008-1-4',10500.00,'党员','王博涵','1983-6-8');

INSERT INTO t_worker VALUES (102,1004,'2016-10-10',5500.00,'群众','赵小军','1994-9-5');

INSERT INTO t_worker VALUES (102,1005,'2014-4-1',8800.00,'党员','钱有财','1992-12-30');

INSERT INTO t_worker VALUES (103,1006,'2019-5-5',5500.00,'党员','孙菲菲','1996-9-2');

3.完成查询

-- (1) 显示所有职工的基本信息

SELECT * FROM t_worker;

-- (2) 查询所有职工所属部门的部门号,不显示重复的部门号

SELECT DISTINCT department_id FROM t_worker;

-- (3) 求出所有职工的人数

SELECT COUNT(*) AS 职工总数 FROM t_worker;

-- (4) 列出最高工资和最低工资

SELECT MAX(wages) AS 最高工资, MIN(wages) AS 最低工资 FROM t_worker;

-- (5) 列出职工的平均工资和总工资

SELECT AVG(wages) AS 平均工资, SUM(wages) AS 总工资 FROM t_worker;

-- (6) 创建一个只有职工号、姓名和参加工作的新表,名为工作日期表

CREATE TABLE IF NOT EXISTS 工作日期表 AS

SELECT worker_id AS 职工号, name AS 姓名, worker_date AS 参加工作时间

FROM t_worker;

-- (8) 列出工资在4000---8000之间的所有职工姓名

SELECT name AS 姓名 FROM t_worker WHERE wages BETWEEN 4000 AND 8000;

-- (9) 列出所有姓张和孙的职工姓名

SELECT name AS 姓名 FROM t_worker WHERE name LIKE '张%' OR name LIKE '孙%';

-- (10) 列出所有部门号为102和103且不是党员的职工号、姓名

SELECT worker_id AS 职工号, name AS 姓名

FROM t_worker

WHERE department_id IN (102, 103) AND politics != '党员';

-- (13) 求出各部门党员的人数

SELECT department_id, COUNT(*) AS party_member_count

FROM t_worker

WHERE politics = '党员'

GROUP BY department_id;

-- (15) 列出人数大于等于3的部门号和总人数

SELECT department_id, COUNT(*) AS dept_total

FROM t_worker

GROUP BY department_id

HAVING dept_total >= 3;

相关推荐
清水白石00842 分钟前
解构异步编程的两种哲学:从 asyncio 到 Trio,理解 Nursery 的魔力
运维·服务器·数据库·python
资生算法程序员_畅想家_剑魔44 分钟前
Mysql常见报错解决分享-01-Invalid escape character in string.
数据库·mysql
PyHaVolask1 小时前
SQL注入漏洞原理
数据库·sql
ptc学习者1 小时前
黑格尔时代后崩解的辩证法
数据库
代码游侠1 小时前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
!chen2 小时前
EF Core自定义映射PostgreSQL原生函数
数据库·postgresql
霖霖总总2 小时前
[小技巧14]MySQL 8.0 系统变量设置全解析:SET GLOBAL、SET PERSIST 与 SET PERSIST_ONLY 的区别与应用
数据库·mysql
马克学长2 小时前
SSM校园食堂订餐系统531p9(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·ssm 校园食堂订餐系统
alonewolf_992 小时前
深入剖析MySQL索引底层:B+树、联合索引与跳跃扫描原理全解
数据库·b树·mysql
oMcLin2 小时前
如何在 AlmaLinux 9 上配置并优化 Redis 集群,支持高并发的实时数据缓存与快速查询?
数据库·redis·缓存