2025-02-06

This commit is contained in:
2025-02-06 22:43:19 +08:00
parent 9480e81242
commit af0d9cdab6
82 changed files with 12564 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
### MySQL-1
```sql
#1.添加字段
ALTER TABLE t_student ADD descr VARCHAR(200) DEFAULT '无';
#2.插入记录
INSERT INTO t_student()
VALUES(DEFAULT, '林小莉', '女', 8, 10005,'13971555555', '身体瘦弱,训练强度需要调整');
#3.简单查询 tj11
SELECT c.id, c.`name`, CONCAT(YEAR(c.time),'年',MONTH(c.time),'月', DAY(c.time),'日')
FROM t_class c;
#4.排序、分页查询 tj12
SELECT *
FROM t_coach c
ORDER BY c.salary
LIMIT 1, 2;
#5.模糊、多表连接查询 tj13
SELECT co.`name`, cl.`name`, cl.period
FROM t_coach co, t_class cl
WHERE co.id = cl.coachId AND co.`name` LIKE '何%';
#6.更新记录
UPDATE t_coach c
SET c.salary = c.salary + 200
WHERE c.age >= 30;
#7.多表联查+视图
CREATE VIEW v_swim AS
SELECT s.`name` '学员姓名', co.`name` '教练姓名', cl.`name` '班级名称'
FROM t_student s, t_class cl, t_coach co
WHERE s.classId = cl.id AND cl.coachId = co.id;
#8.插入操作的触发器
DELIMITER $$
DROP TRIGGER IF EXISTS tri_familylog;
CREATE TRIGGER tri_familylog
AFTER DELETE ON t_family
FOR EACH ROW
BEGIN
INSERT INTO t_log()
VALUES(DEFAULT, OLD.fid, '删除家庭', '2024-01-01');
END $$
DELIMITER ;
#9.条件查询+聚合函数 存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS pro_getStudentNumber;
CREATE PROCEDURE pro_getStudentNumber(IN in_classId INT, OUT out_number INT)
BEGIN
SELECT COUNT(*) INTO out_number
FROM t_student s
WHERE s.classId = in_classId;
END $$
DELIMITER ;
#测试存储过程
CALL pro_getStudentNumber(10002, @result);
SELECT @result;
```
+181
View File
@@ -0,0 +1,181 @@
### C语言-1
```c
/*------------------------------------------------------------------------------
(1)【程序设计】定义一个大小为50的整型数组,将数字1~50存入该数组,利用指针将数组中的值输出,每行5个,每个数字占4个符号位,左对齐。
------------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,*p,array[50];
for(i=0;i<50;i++)
{
array[i]=i+1;
}
p=array;
/**********Program**********/
for(i=0;i<50;i++){
//p指针变量 存着数组array首元素地址
printf("%-4d ", *(p+i));//*间接访问符 用来返回指针所指向数值
if((i+1)%5==0){
printf("\n");
}
}
/********** End **********/
}
```
### C语言-2
```c
/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
题目:要求实现一个函数,能够合并两个整数数组,合并后进行降序排序并删除重复元素。
示例1:
输入输出如下所示:
请输入第一个数组的6个元素,每个元素之间用空格隔开:1 3 5 7 10 6
请输入第二个数组的6个元素,每个元素之间用空格隔开:10 4 2 6 11 30
合并后降序排列的数组:30 11 10 7 6 5 4 3 2 1
------------------------------------------------------------------------
注意:请勿改动程序中的其他内容。
----------------------------------------------------------------------*/
#include <stdio.h>
int* mergeArrays(int *arr1, int size1, int *arr2, int size2,int *newLen);
int main() {
int size1=6;
int size2=6;
int arr1[6];
int arr2[6];
int i;
int newLen = 0;
int* mergedArray;
printf("请输入第一个数组的6个元素,每个元素之间用空格隔开:");
for ( i = 0; i < size1; i++) {
scanf("%d", &arr1[i]);
}
printf("请输入第二个数组的6个元素,每个元素之间用空格隔开:");
for ( i = 0; i < size2; i++) {
scanf("%d", &arr2[i]);
}
mergedArray = mergeArrays(arr1, size1, arr2, size2, &newLen);
printf("合并后降序排列的数组:");
for (i = 0; i < newLen; i++) {
printf("%d ", mergedArray[i]);
}
printf("\n");
return 0;
}
int* mergeArrays(int *arr1,int size1,int *arr2,int size2,int *newLen) {
static int mergedArray[20];
/**********Program**********/
//将两个数组中的元素合并到一个新的数组里
int i, j=0, temp;
*newLen = 1;
//合并
for(i=0;i<6;i++){
mergedArray[j++] = arr1[i];
mergedArray[j++] = arr2[i];
}
//排序
for(i=0;i<size1*2-1;i++){
for(j=0;j<size1*2-1-i;j++){
if(mergedArray[j] < mergedArray[j+1]){
temp = mergedArray[j];
mergedArray[j] = mergedArray[j+1];
mergedArray[j+1] = temp;
}
}
}
//去重
for(i=1;i<size1*2;i++){
if(mergedArray[(*newLen)- 1] != mergedArray[i]){
mergedArray[(*newLen)++] = mergedArray[i];
}
}
/********** End **********/
return mergedArray;
}
```
### 数据库-1
```sql
#1. 设置字段主键+自动增长
ALTER TABLE t_user MODIFY uid INT(11) PRIMARY KEY AUTO_INCREMENT;
#2. 插入记录
INSERT INTO t_user()
VALUES(DEFAULT, 'mike', 'mm123', '小明', DEFAULT);
#3. 更新记录
UPDATE t_user u
SET u.`password` = '888888'
WHERE u.username = 'Dennis';
#4. tj11 条件查询+多表联查
SELECT u.nickname, c.mid, c.score, c.content
FROM t_user u, t_comment c
WHERE u.uid = c.uid AND u.nickname = '白色';
#5. tj12 分组查询+多表联查
SELECT m.mname, ROUND(AVG(c.score), 2)
FROM t_movie m, t_comment c
WHERE m.mid = c.mid
GROUP BY m.mid;
#6. tj13 分组查询+多表联查
SELECT m.mname, COUNT(*)
FROM t_movie m, t_comment c
WHERE m.mid = c.mid
GROUP BY m.mid;
#7 视图 多表联查
CREATE VIEW v_movie AS
SELECT m.mname, u.nickname, c.score, c.content
FROM t_user u, t_movie m , t_comment c
WHERE u.uid = c.uid AND m.mid = c.mid;
#8 存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS pro_getUserNumber;
CREATE PROCEDURE pro_getUserNumber(IN in_uid INT, OUT out_number INT)
BEGIN
SET out_number = (
SELECT COUNT(*)
FROM t_user u, t_comment c
WHERE u.uid = c.uid AND u.uid = in_uid
);
END $$
DELIMITER ;
#9 触发器
DELIMITER $$
DROP TRIGGER IF EXISTS tri_userlog;
CREATE TRIGGER tri_userlog
AFTER INSERT ON t_user
FOR EACH ROW
BEGIN
INSERT INTO t_log()
VALUES(DEFAULT, NEW.uid, '新增用户', '2024-01-01');
END $$
DELIMITER ;
```
### 数据库-2
```sql
```
+126
View File
@@ -0,0 +1,126 @@
### 数据库-1
```sql
#1 添加字段
ALTER TABLE t_customer ADD integral INT(10) DEFAULT 0;
#2 插入记录
INSERT INTO t_goods()
VALUES(10011, '口香糖', 2.5, 10, '零食');
#3 tj11 排序+分页+子查询查询
#先将第五个的库存数量查询出来 LIMIT 起始位置(从0开始), 取的个数;
SELECT g1.gname, g1.stock
FROM t_goods g1
WHERE g1.stock <= (
SELECT g2.stock
FROM t_goods g2
ORDER BY g2.stock
LIMIT 4, 1
)
ORDER BY g1.stock;
#4 tj12 子查询
SELECT g1.gname, g1.type, g1.price
FROM t_goods g1
WHERE g1.price = (
SELECT MIN(g2.price)
FROM t_goods g2
WHERE g2.type = g1.type
);
#5 tj13 分组查询
SELECT o.ono, g.gname, o.num * g.price, o.otime
FROM t_order o, t_goods g
WHERE o.gno = g.gno;
#6 tj14 排序查询+连接查询
SELECT c.cno, c.cname, o.ono, o.gno, o.num, o.otime
FROM t_customer c, t_order o
WHERE c.cno = o.cno AND c.cname = '龙睿'
ORDER BY o.otime DESC;
#7 排序查询+分组查询+连接查询
CREATE VIEW v_order AS
SELECT o.ono, c.cname, g.gname, o.num, o.otime
FROM t_customer c, t_order o, t_goods g
WHERE c.cno = o.cno AND o.gno = g.gno
ORDER BY o.otime DESC
LIMIT 49, 31;
#8 触发器
DELIMITER $$
DROP TRIGGER IF EXISTS tri_customerlog;
CREATE TRIGGER tri_customerlog
AFTER UPDATE ON t_customer
FOR EACH ROW
BEGIN
INSERT INTO t_log()
VALUES(DEFAULT, NEW.cno, '更新客户信息', '2024-06-06');
END $$
DELIMITER ;
#9 存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS pro_getSaleNumber;
CREATE PROCEDURE pro_getSaleNumber(IN in_gno CHAR(10), OUT out_number INT)
BEGIN
SELECT COUNT(DISTINCT cno) INTO out_number
FROM t_order
WHERE gno = in_gno;
END $$
DELIMITER ;
#测试
CALL pro_getSaleNumber(10001, @result);
SELECT @result;
```
### 数据库-2
```sql
#1 插入记录
INSERT INTO t_student()
VALUES(DEFAULT, '赵十', '男', 17, '10006');
#2 添加字段
ALTER TABLE t_student ADD notes VARCHAR(255);
#3 创建表
CREATE TABLE t_teacher(
tid CHAR(10) PRIMARY KEY,
tname VARCHAR(20) NOT NULL,
sex CHAR(2),
age INT(2),
subject VARCHAR(20),
salary DECIMAL(10, 2)
);
#4 设置薪资默认值
#ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 默认值;
ALTER TABLE t_teacher ALTER salary SET DEFAULT 5000;
#5 插入记录
INSERT INTO t_teacher()
VALUES('t0001', '王老师', '男', 42, '数学', 6000);
#6 数据更新
UPDATE t_class c
SET c.address = '四层'
WHERE c.cname = '高三2班';
#7 tj11 条件查询
SELECT *
FROM t_student s
WHERE s.sex = '男';
#8 视图
CREATE VIEW v_class AS
SELECT c.cname, COUNT(IF(s.sex = '男', TRUE, NULL)), COUNT(IF(s.sex = '女', TRUE, NULL))
FROM t_student s, t_class c
WHERE s.cid = c.cid
GROUP BY c.cid;
```