2023_10_11_MYSQL_DAY_03_笔记_上
| 10章 作业题01答案 |
| INSERT INTO class(classid,cname) VALUES(1,'Java1班'); |
| INSERT INTO class(cname,classid) VALUES('Java2班',2); |
| INSERT INTO class VALUES(3,'Java3班',NULL); |
| |
| 10章 作业题02 03 04答案 |
| INSERT INTO student VALUES('A001','张三','男','2005-5-1',100,1); |
| INSERT INTO student VALUES('A002','MIKE','男','1905-05-06',10,NULL); |
| INSERT INTO student(xh,xm,sex) VALUES('A003','JOHN','女' ); |
| |
| 10章 作业题05答案 |
| UPDATE student |
| SET sex='女' |
| WHERE xh='A002'; |
| |
| 10章 作业题06答案 |
| UPDATE student |
| SET sex='男',birthday='1980-04-01' |
| WHERE xh='A003'; |
| |
| 10章 作业题07答案 |
| 做法1 |
| UPDATE student |
| SET studentcid=3 |
| WHERE studentcid IS NULL; |
| |
| 做法2 |
| UPDATE student |
| SET studentcid=(SELECT classid FROM class WHERE cname='Java3班') |
| WHERE studentcid IS NULL; |
| |
| |
| |
| |
| |
| |
| |
| |
| DELETE FROM emp_back |
| WHERE (deptno,sal) IN (SELECT deptno,AVG(sal) FROM emp GROUP BY deptno); |
| |
| |
| |
| DELETE FROM emp_back |
| WHERE deptno = (SELECT deptno FROM dept WHERE loc='NEW YORK'); |
| |
| |
| DELETE FROM emp_back |
| WHERE mgr=7566; |
| |
| |
| DELETE FROM emp_back |
| WHERE job='CLERK'; |
| |
| |
| |
| UPDATE manager |
| SET sal=sal+500 |
| WHERE deptno IN (SELECT deptno FROM dept WHERE loc='NEW YORK' OR loc='CHICAGO'); |
| |
| |
| UPDATE manager |
| SET comm=0.0 |
| WHERE comm IS NULL; |
| |
| |
| UPDATE manager |
| SET job='CLERK' |
| WHERE deptno=20; |
| |
| |
| |
| UPDATE emp |
| SET deptno=20,comm=1200 |
| WHERE empno=8888; |
| |
| |
| CREATE TABLE emp_back AS |
| SELECT * FROM emp WHERE 1=0; |
| |
| INSERT INTO emp_back |
| SELECT * FROM emp WHERE hiredate > '1982-1-1' |
| |
| |
| INSERT INTO manager |
| SELECT * FROM emp WHERE job='MANAGER'; |
| |
| |
| CREATE TABLE manager |
| SELECT * FROM emp WHERE 1=0; |
| |
| |
| INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) |
| VALUES (8888,'BOB','CLEAK',7788,SYSDATE(),3000,NULL,NULL); |
| |
| |
| INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) |
| VALUES (7196,'GREEN','SALESMAN',7782,SYSDATE(),2000,NULL,10); |
| |
| INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) |
| VALUES (7197,'GREEN2','SALESMAN',7782,'2023-9-1',2000,NULL,10); |
| |
| |
| SELECT SYSDATE(); |
| |
| |
| INSERT INTO dept(deptno,dname) VALUES(90,'MARKET'); |
| |
| INSERT INTO dept(loc,deptno,dname) VALUES('SY',80,'HR'); |
| |
| |
| INSERT INTO dept VALUES(201,'宣传部','上海'); |
| |
| INSERT INTO dept VALUES(203,'后勤部',NULL); |
| |
| |
| |
| INSERT INTO dept(loc,deptno,dname) VALUES('河南新乡',200,'研发部'); |
| |
| INSERT INTO dept(loc,deptno,dname) VALUES(NULL,202,'服务部'); |
| INSERT INTO dept(deptno,dname) VALUES(205,'小麦部'); |
| |
| 06章04题作业答案 |
| SELECT e.`ename` ,d.`dname`,e.`sal`,s.`grade` |
| FROM emp e LEFT OUTER JOIN dept d ON(e.`deptno`=d.`deptno`), salgrade s |
| WHERE e.`sal` BETWEEN s.`losal` AND s.`hisal` AND s.`grade` > 4 |
| |
| |
| |
| SELECT a.ename, a.sal, a.deptno, b.salavg |
| FROM emp a, (SELECT deptno, AVG(sal) salavg |
| FROM emp |
| GROUP BY deptno) b |
| WHERE a.deptno = b.deptno AND a.sal > b.salavg; |
| |
| |
| |
| SELECT ename |
| FROM emp |
| WHERE empno NOT IN (SELECT IFNULL (mgr,0) FROM emp); |
| |
| |
| SELECT deptno,ename,hiredate |
| FROM emp |
| WHERE (deptno,hiredate) IN (SELECT deptno ,MIN(hiredate) |
| FROM emp |
| GROUP BY deptno); |
| |
| |
| |
| SELECT ename,job |
| FROM emp |
| WHERE job = ANY (SELECT job FROM emp WHERE deptno=10) |
| AND deptno <> 10; |
| |
| |
| |
| |
| SELECT ename,hiredate |
| FROM emp |
| WHERE hiredate > ALL (SELECT hiredate FROM emp WHERE deptno=10) |
| AND deptno <> 10; |
| |
| |
| SELECT ename,hiredate |
| FROM emp |
| WHERE hiredate > ANY (SELECT hiredate FROM emp WHERE deptno=10) |
| AND deptno <> 10; |
| |
| |
| SELECT empno, ename, job, sal |
| FROM emp |
| WHERE sal > ALL (SELECT sal FROM emp WHERE deptno= 20) |
| AND deptno <> 20; |
| |
| SELECT empno, ename, job, sal |
| FROM emp |
| WHERE sal < ALL (SELECT sal FROM emp WHERE deptno= 20) |
| AND deptno <> 20; |
| |
| |
| SELECT ename,sal,empno |
| FROM emp |
| WHERE empno < ANY (SELECT mgr FROM emp ORDER BY mgr DESC); |
| |
| SELECT ename,sal,empno |
| FROM emp |
| WHERE empno > ANY (SELECT mgr FROM emp ORDER BY mgr DESC); |
| |
| SELECT ename,sal,empno |
| FROM emp |
| WHERE empno = ANY (SELECT mgr FROM emp ORDER BY mgr DESC); |
| |
| |
| |
| SELECT ename,sal |
| FROM emp |
| WHERE empno IN (SELECT mgr FROM emp); |
| |
| |
| SELECT deptno,AVG(sal) |
| FROM emp |
| GROUP BY deptno |
| HAVING AVG(sal) > (SELECT AVG(sal) FROM emp WHERE deptno=10); |
| |
| |
| SELECT ename,sal,dname |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| AND sal > (SELECT sal FROM emp WHERE ename='SMITH') |
| AND d.`loc`='CHICAGO'; |
| |
| |
| SELECT ename,hiredate |
| FROM emp |
| WHERE hiredate = (SELECT MIN(hiredate) FROM emp); |
| |
| |
| |
| SELECT deptno, MIN(sal) |
| FROM emp |
| GROUP BY deptno |
| HAVING MIN(sal) > (SELECT MIN(sal) FROM emp WHERE deptno = 20); |
| |
| |
| |
| SELECT ename,job,sal |
| FROM emp |
| WHERE sal = (SELECT MIN(sal) FROM emp); |
| |
| |
| SELECT ename,job |
| FROM emp |
| WHERE job = (SELECT job FROM emp WHERE empno=7369) |
| AND sal > (SELECT sal FROM emp WHERE empno=7876); |
| |
| |
| SELECT ename |
| FROM emp |
| WHERE sal > (SELECT sal FROM emp WHERE ename='JONES'); |
| |
| |
| |
| SELECT ename,hiredate,deptno |
| FROM emp |
| LIMIT 0,5 |
| |
| SELECT ename,hiredate,deptno |
| FROM emp |
| LIMIT 5,5 |
| |
| SELECT ename,hiredate,deptno |
| FROM emp |
| LIMIT 10,5 |
| |
| |
| |
| SELECT e.deptno,dname,COUNT(*),AVG(sal) |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| GROUP BY e.deptno,dname |
| HAVING COUNT(*) > 2 AND AVG(sal) > 2000 |
| ORDER BY COUNT(*); |
| |
| |
| SELECT job,SUM(sal) |
| FROM emp |
| WHERE job NOT LIKE 'SALES%' |
| GROUP BY job |
| HAVING SUM(sal) > 5000 |
| ORDER BY SUM(sal) |
| LIMIT 0,2; |
| |
| |
| SELECT empno,ename,deptno,sal |
| FROM emp |
| ORDER BY empno |
| LIMIT 5,5 |
| |
| SELECT empno,ename,deptno,sal |
| FROM emp |
| ORDER BY empno |
| LIMIT 0,5 |
| |
| |
| SELECT e.deptno,dname,COUNT(*) |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| GROUP BY e.deptno,dname |
| HAVING COUNT(*) > 2; |
| |
| 总结: |
| 1、WHERE子句用来过滤分组之前的记录,不能使用组函数 |
| 2、HAVING子句用来过滤分组之后的记录,可以使用组函数 |
| |
| |
| SELECT job,SUM(sal) |
| FROM emp |
| WHERE job NOT LIKE 'SALES%' |
| GROUP BY job |
| HAVING SUM(sal) > 5000 |
| ORDER BY SUM(sal); |
| |
| 查询语句执行过程: |
| 1、通过FROM子句中找到需要查询的表; |
| 2、通过WHERE子句进行非分组函数筛选判断; |
| 3、通过GROUP BY子句完成分组操作; |
| 4、通过HAVING子句完成组函数筛选判断; |
| 5、通过SELECT子句选择显示的列或表达式及组函数; |
| 6、通过ORDER BY子句进行排序操作。 |
| |
| |
| SELECT deptno,COUNT(empno) |
| FROM emp |
| GROUP BY deptno |
| HAVING COUNT(empno) > 3; |
| |
| SELECT deptno,MAX(sal) |
| FROM emp |
| GROUP BY deptno |
| HAVING MAX(sal) > 2900; |
| |
| |
| |
| SELECT COUNT(*),MAX(sal),MIN(sal),d.`loc` |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` AND d.`loc`='CHICAGO' |
| GROUP BY d.`loc`; |
| |
| |
| |
| |
| |
| SELECT e2.`empno` 经理编号,e2.`ename` 经理姓名,COUNT(*) |
| FROM emp e,emp e2 |
| WHERE e.`mgr`=e2.`empno` |
| GROUP BY e2.`empno`,e2.`ename`; |
| |
| |
| SELECT d.`deptno`,d.`dname`,e.`job`,COUNT(empno),MAX(sal),MIN(sal) |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| GROUP BY d.`deptno`,d.`dname`,e.`job`; |
| |
| |
| SELECT d.`deptno`,d.`dname`,COUNT(empno),MAX(sal) |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| GROUP BY d.`deptno`,d.`dname`; |
| |
| |
| |
| SELECT deptno,job,SUM(sal) |
| FROM emp |
| GROUP BY deptno,job; |
| |
| |
| SELECT job,COUNT(empno) |
| FROM emp |
| GROUP BY job; |
| |
| SELECT deptno,AVG(sal) |
| FROM emp |
| GROUP BY deptno; |
| |
| |
| SELECT COUNT(*),MAX(sal),MIN(sal) |
| FROM emp |
| WHERE deptno=30; |
| |
| |
| SELECT (sal+IFNULL(comm,0))*12 年收入 |
| FROM emp |
| |
| |
| SELECT COUNT(job), COUNT(DISTINCT job) |
| FROM emp |
| |
| |
| |
| SELECT SUM(sal),AVG(sal) |
| FROM emp |
| WHERE deptno=20; |
| |
| |
| SELECT AVG(comm),AVG(IFNULL(comm,0)) |
| FROM emp; |
| |
| |
| SELECT ename 员工姓名,sal 工资收入,comm 奖金收入,sal+IFNULL(comm,0) 总收入 |
| FROM emp; |
| |
| SELECT COUNT(deptno),COUNT(DISTINCT deptno) |
| FROM emp |
| |
| |
| SELECT MIN(hiredate),MAX(hiredate),MIN(sal),MAX(sal),AVG(sal),SUM(sal),COUNT(*) |
| FROM emp; |
| |
| |
| SELECT e.empno,e.ename,e.`job`,d.deptno,d.`loc` |
| FROM emp e,dept d |
| WHERE e.deptno = d.deptno AND (d.`loc`='CHICAGO' OR job='MANAGER'); |
| |
| |
| |
| SELECT e.empno,e.ename,d.deptno,d.dname |
| FROM emp e LEFT OUTER JOIN dept d ON(e.deptno = d.deptno) |
| UNION |
| SELECT e.empno,e.ename,d.deptno,d.dname |
| FROM emp e RIGHT OUTER JOIN dept d ON(e.deptno = d.deptno); |
| |
| |
| SELECT e.empno,e.ename,d.deptno,d.dname |
| FROM emp e LEFT OUTER JOIN dept d ON(e.deptno = d.deptno) |
| UNION ALL |
| SELECT e.empno,e.ename,d.deptno,d.dname |
| FROM emp e RIGHT OUTER JOIN dept d ON(e.deptno = d.deptno); |
| |
| |
| |
| SELECT e.`ename` ,e2.`ename` |
| FROM emp e RIGHT OUTER JOIN emp e2 ON(e.`mgr`=e2.`empno`); |
| |
| |
| |
| SELECT e.`ename` ,e2.`ename` |
| FROM emp e LEFT OUTER JOIN emp e2 ON(e.`mgr`=e2.`empno`); |
| |
| |
| |
| SELECT ename,dname,hiredate |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` AND e.`hiredate` > '1980-5-1' |
| |
| |
| SELECT ename,dname |
| FROM emp,dept |
| |
| |
| |
| SELECT e.`ename` ,e.`deptno`,d.`loc` |
| FROM emp e RIGHT OUTER JOIN dept d ON(e.`deptno`=d.`deptno`); |
| |
| |
| |
| SELECT e.`ename` ,e.`deptno`,d.`loc` |
| FROM emp e LEFT OUTER JOIN dept d ON(e.`deptno`=d.`deptno`); |
| |
| |
| SELECT e.`ename` ,e.`deptno`,d.`loc` |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| |
| |
| |
| SELECT e.`ename` 员工姓名,e.`empno` 员工编号,e2.`ename` 经理姓名,e2.`empno` 经理编号 |
| FROM emp e,emp e2,dept d |
| WHERE e.`mgr`=e2.`empno` AND e.`deptno`=d.`deptno` AND (d.`loc`='NEW YORK' OR d.`loc`='CHICAGO'); |
| |
| |
| SELECT e.`ename` 员工姓名,e2.`ename` 上级姓名 |
| FROM emp e,emp e2 |
| WHERE e.`mgr`=e2.`empno` |
| |
| |
| SELECT e.`empno`,e.`ename`,e.`sal`,s.`grade`,d.`loc` |
| FROM emp e,dept d,salgrade s |
| WHERE e.`deptno`=d.`deptno` AND e.`sal` BETWEEN s.`losal` AND s.`hisal` |
| ORDER BY s.`grade` DESC; |
| |
| |
| SELECT e.`ename`,e.`sal`,d.`dname`,s.`grade` |
| FROM emp e,dept d,salgrade s |
| WHERE e.`deptno`=d.`deptno` AND e.`sal` BETWEEN s.`losal` AND s.`hisal`; |
| |
| |
| SELECT ename,sal,grade |
| FROM emp e,salgrade s |
| WHERE e.`sal` BETWEEN s.`losal` AND s.`hisal`; |
| |
| |
| SELECT ename,e.deptno,dname,sal |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` AND dname = 'RESEARCH' AND sal < 1500; |
| |
| |
| SELECT ename,loc |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` AND ename LIKE '%A%'; |
| |
| |
| SELECT ename,comm,loc |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` AND loc='CHICAGO' AND comm IS NOT NULL; |
| |
| |
| SELECT ename,e.deptno,dname |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| |
| |
| |
| SELECT empno,ename,dept.deptno,dname |
| FROM emp,dept |
| WHERE emp.`deptno`=dept.`deptno` |
| |
| SELECT empno,ename,d.deptno,dname |
| FROM emp e,dept d |
| WHERE e.`deptno`=d.`deptno` |
| |
| |
| SELECT ename,hiredate,job |
| FROM emp |
| WHERE hiredate BETWEEN '1982-1-1' AND '1983-12-31' AND (job LIKE 'SALES%' OR job LIKE 'MAN%') |
| ORDER BY hiredate DESC |
| |
| |
| SELECT ename,deptno,sal |
| FROM emp |
| WHERE deptno NOT IN (10) AND sal BETWEEN 2000 AND 3000 |
| ORDER BY deptno ASC,sal DESC |
| |
| |
| |
| SELECT ename,deptno,sal |
| FROM emp |
| WHERE deptno IN (20,30) |
| ORDER BY sal |
| |
| SELECT ename,deptno |
| FROM emp |
| WHERE deptno IN (20,30) |
| ORDER BY sal |
| |
| |
| |
| |
| SELECT ename,deptno,sal |
| FROM emp |
| ORDER BY deptno ASC,sal DESC; |
| |
| |
| SELECT ename,job,deptno,hiredate |
| FROM emp |
| ORDER BY hiredate DESC |
| |
| |
| SELECT ename,job,deptno,hiredate |
| FROM emp |
| ORDER BY hiredate |
| |
| SELECT ename,job,deptno,hiredate 入职日期 |
| FROM emp |
| ORDER BY 入职日期 |
| |
| SELECT ename,job,deptno,hiredate 入职日期 |
| FROM emp |
| ORDER BY 4 |
| |
| |
| 可以按照3种方式进行排序:分别是按列名排序、按列别名排序、按列序号排序。 |
| ASC表示按升序排序(默认值), DESC表示按降序排序。 |
| 可以同时按照多个列名进行排序 |
| 空值在升序排列中排在最前面,在降序排列中排在最后 == 空值小 |
| |
| |
| 4种特殊比较运算符 BETWEEN..AND.. , IN, LIKE, IS NULL |
| |
| |
| SELECT ename,job,deptno |
| FROM emp |
| WHERE job IN ('SALESMAN','MANAGER') AND deptno IN (10,20) AND ename LIKE '%A%'; |
| |
| SELECT ename,job,deptno |
| FROM emp |
| WHERE (job ='SALESMAN' OR job='MANAGER') AND (deptno=10 OR deptno=20) AND ename LIKE '%A%'; |
| |
| |
| |
| SELECT ename,hiredate,job |
| FROM emp |
| WHERE hiredate BETWEEN '1981-1-1' AND '1981-12-31' AND job NOT LIKE 'SALES%'; |
| |
| SELECT ename,hiredate,job |
| FROM emp |
| WHERE hiredate >= '1981-1-1' AND hiredate <='1981-12-31' AND job NOT LIKE 'SALES%'; |
| |
| |
| SELECT ename,deptno,sal |
| FROM emp |
| WHERE deptno IN (10,20) AND sal BETWEEN 3000 AND 5000; |
| |
| SELECT ename,deptno,sal |
| FROM emp |
| WHERE (deptno = 10 OR deptno=20) AND (sal >= 3000 AND sal <= 5000); |
| |
| |
| |
| SELECT ename,job,sal |
| FROM emp |
| WHERE sal > 2000 AND (job='MANAGER' OR job='SALESMAN'); |
| |
| |
| SELECT ename, job, sal |
| FROM emp |
| WHERE ( job='SALESMAN' |
| OR job='PRESIDENT') |
| AND sal>1500; |
| |
| SELECT ename, job, sal |
| FROM emp |
| WHERE job='SALESMAN' |
| OR job='PRESIDENT' |
| AND sal>1500; |
| |
| |
| SELECT ename,comm |
| FROM emp |
| WHERE comm IS NOT NULL; |
| |
| SELECT ename,sal |
| FROM emp |
| WHERE sal NOT BETWEEN 3000 AND 5000; |
| |
| NOT BETWEEN .. AND .. :不在某个区间 |
| NOT IN (集合):不在某个集合内 |
| NOT LIKE :不像..... |
| IS NOT NULL: 不是空 |
| |
| |
| |
| SELECT ename,comm |
| FROM emp |
| WHERE comm IS NULL; |
| |
| |
| SELECT * |
| FROM emp |
| WHERE ename LIKE '%T_'; |
| |
| |
| SELECT * |
| FROM emp |
| WHERE ename LIKE 'W%'; |
| |
| |
| SELECT ename,mgr |
| FROM emp |
| WHERE mgr IS NULL; |
| |
| |
| SELECT ename,comm |
| FROM emp |
| WHERE comm IS NULL; |
| |
| |
| SELECT ename |
| FROM emp |
| WHERE ename LIKE 'S%'; |
| |
| SELECT ename |
| FROM emp |
| WHERE ename LIKE 'S_'; |
| |
| SELECT ename |
| FROM emp |
| WHERE ename LIKE '%A%'; |
| |
| SELECT ename |
| FROM emp |
| WHERE ename LIKE '__A%'; |
| |
| |
| SELECT ename,sal |
| FROM emp |
| WHERE sal BETWEEN 3000 AND 5000; |
| |
| |
| SELECT ename,hiredate |
| FROM emp |
| WHERE hiredate BETWEEN '1982-1-1' AND '1985-12-31'; |
| |
| |
| select empno,ename,deptno |
| from emp |
| where deptno in (10,20); |
| |
| |
| SELECT empno,ename,sal |
| FROM emp |
| WHERE sal BETWEEN 1250 AND 1600; |
| |
| |
| SELECT empno,ename,deptno |
| FROM emp |
| WHERE deptno <> 10; |
| |
| SELECT empno,ename,deptno |
| FROM emp |
| WHERE deptno != 10; |
| |
| |
| SELECT empno,ename,hiredate |
| FROM emp |
| WHERE hiredate < '1985-12-31'; |
| |
| |
| SELECT empno,ename,job |
| FROM emp |
| WHERE job='SALESMAN'; |
| |
| |
| SELECT empno,ename,hiredate |
| FROM emp |
| WHERE hiredate > '1985-01-01'; |
| |
| |
| |
| SELECT empno,ename,job |
| FROM emp |
| WHERE job='CLERK'; |
| |
| SELECT empno,ename,job |
| FROM emp |
| WHERE job="CLERK"; |
| |
| |
| SELECT empno,ename,deptno |
| FROM emp |
| WHERE deptno=20; |
| |
| |
| SELECT DISTINCT job FROM emp |
| |
| |
| SELECT DISTINCT deptno FROM emp |
| |
| |
| SELECT ename 员工姓名,sal 工资收入,comm 奖金收入,sal+comm 总收入 FROM emp; |
| |
| |
| SELECT ename,sal 涨薪前,sal*1.2 涨薪后 FROM emp; |
| |
| |
| SELECT ename,sal,comm,sal+comm 月总收入 FROM emp |
| |
| |
| SELECT empno,ename,sal,sal*12 年薪 FROM emp |
| |
| |
| SELECT empno 编号,ename "姓 名",sal '工 资',comm "奖,金" FROM emp |
| |
| |
| SELECT empno 编号,ename 姓名,sal 工资,comm 奖金 FROM emp |
| |
| |
| SELECT empno,ename,sal,comm FROM emp |
| |
| |
| SELECT * FROM emp |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)