主頁 > 資料庫 > day10-習題

day10-習題

2022-10-12 08:43:11 資料庫

習題

1.Homework01

image-20221010175854766
(1)	D -- 沒有在別名上加引號(ps:別名的as可以省略)
(2)	B -- 判斷null或非空不能用不等于號
(3)	C 

2.Homework02

  1. 寫出查看dept表和emp表的結構的sql陳述句

  2. 使用簡單查詢陳述句完成

    1. 顯示所有部門名稱
    2. 顯示所有雇員名及其全年收入 13月(工資+補助),并指定列別名“年收入”
  3. 限制查詢資料

    1. 顯示工資超過2850的雇員的姓名和工資
    2. 顯示工資不在1500到2850之間的員工名和工資
    3. 顯示編號為7566的雇員姓名及所在的部門編號
    4. 顯示部門10和30中工資超過1500的員工名及工資
    5. 顯示無管理者的雇員名及崗位
  4. 排序資料

    1. 顯示在1991-2-1到1991-5-1之間雇用的員工名,崗位以及雇用日期,并以雇用日期進行排序
    2. 顯示獲得補助的所有員工名,工資以及補助,并以工資降序進行排序

練習

-- 2.寫出查看dept表和emp表的結構的sql陳述句
DESC dept;
DESC emp;

-- 3.使用簡單查詢陳述句完成
-- 3.1 顯示所有部門名稱
SELECT dname FROM dept;
-- 3.2 顯示所有雇員名及其全年收入 13月(工資+補助),并指定列別名“年收入”
SELECT ename,(sal+IFNULL(comm ,0.0))*13 AS '年收入' FROM emp;

-- 4.限制查詢資料
-- 4.1顯示工資超過2850的雇員的姓名和工資
SELECT ename,sal FROM emp
	WHERE sal>2850;
-- 4.2顯示工資不在1500到2850之間的員工名和工資
SELECT ename,sal FROM emp
	WHERE sal>2850 OR sal<1500;
-- 4.3顯示編號為7566的雇員姓名及所在的部門編號
SELECT ename,deptno FROM emp
	WHERE empno=7566;
-- 4.4顯示部門10和30中工資超過1500的員工名及工資
SELECT ename,sal FROM emp
	WHERE deptno IN (10,30) AND sal >1500;
-- 4.5顯示無管理者的雇員名及崗位
SELECT ename,job FROM emp
	WHERE mgr IS NULL;

-- 5.排序資料
-- 5.1顯示在1991-2-1到1991-5-1之間雇用的員工名,崗位以及雇用日期,
-- 并以雇用日期進行排序
SELECT ename,job,hiredate FROM emp
	WHERE hiredate>='1991-02-01' AND hiredate<='1991-05-01'
	ORDER BY hiredate;
-- 顯示獲得補助的所有員工名,工資以及補助,并以工資降序進行排序
SELECT ename,sal,comm FROM emp
	WHERE comm IS NOT NULL
	ORDER BY sal DESC;

3.Homework03

根據emp表寫出正確的sql

  1. 選擇部門30中的所有員工
  2. 列出所有辦事員(CLERK)的姓名,編號和部門編號
  3. 找出傭金高于薪金的員工
  4. 找出傭金高于薪金60%的員工
  5. 找出部門10中所有經理(MANAGER)和部門20中的所有辦事員(CLERK)的詳細資料
  6. 找出部門10中所有經理(MANAGER),部門20中的所有辦事員(CLERK),還有既不是經理又不是辦事員但其薪金大于或等于2000的所有員工的詳細資料
  7. 找出收取傭金的員工的不同作業
  8. 找出不收取傭金或收取傭金低于100的員工
  9. 找出各月倒數第三天受雇的所有員工
  10. 找出早于12年前受雇的員工
  11. 以首字母小寫的方式顯示所有員工的姓名
  12. 顯示正好為5個字符的員工的姓名

練習

SELECT * FROM emp;
-- 1. 選擇部門30中的所有員工
SELECT * FROM emp
	WHERE deptno = 30;

-- 2. 列出所有辦事員(CLERK)的姓名,編號和部門編號
SELECT ename,empno,deptno FROM emp
	WHERE job = 'CLERK';
	
-- 3. 找出傭金高于薪金的員工
SELECT ename FROM emp
	WHERE IFNULL(comm,0)>sal; 
	
-- 4. 找出傭金高于薪金60%的員工
SELECT ename FROM emp
	WHERE IFNULL(comm,0)>(sal*0.6); 
	
-- 5. 找出部門10中所有經理(MANAGER)和部門20中的所有辦事員(CLERK)的詳細資料
SELECT * FROM emp
	WHERE (deptno = 10 AND job= 'MANAGER')OR 
		(deptno = 20 AND job= 'CLERK');
	
-- 6. 找出部門10中所有經理(MANAGER),部門20中的所有辦事員(CLERK),
-- 還有既不是經理又不是辦事員但其薪金大于或等于2000的所有員工的詳細資料
SELECT * FROM emp
	WHERE (deptno = 10 AND job= 'MANAGER')OR 
		(deptno = 20 AND job= 'CLERK')OR
		(job NOT IN ('MANAGER','CLERK') AND sal>=2000);
		
-- 7. 找出收取傭金的員工的不同作業
SELECT DISTINCT job FROM emp
	WHERE comm IS NOT NULL;
	
-- 8. 找出不收取傭金或收取傭金低于100的員工
SELECT ename FROM emp
	WHERE comm IS NULL OR IFNULL(comm,0) <100;
	
-- 9. 找出各月倒數第三天受雇的所有員工
-- 關于最后一天 last_day(日期)可以回傳該日期所在月份的最后一天 
SELECT * FROM emp
	WHERE LAST_DAY(hiredate)-2 = hiredate;

-- 10. 找出早于12年前受雇的員工
SELECT * FROM emp
	WHERE hiredate < DATE_SUB(NOW(),INTERVAL 12 YEAR);

-- 11. 以首字母小寫的方式顯示所有員工的姓名
-- 先截取首字母,將其小寫 LCASE (LEFT(ename,1))
-- 再截取剩下的字母 RIGHT(ename, (LENGTH(ename)-1))
-- 將兩者拼起來 CONCAT
SELECT CONCAT(LCASE(LEFT(ename,1)),RIGHT(ename, (LENGTH(ename)-1))) FROM emp	
-- 或者
SELECT CONCAT( LCASE(LEFT(ename,1)) ,SUBSTRING(ename,2)) FROM emp; 

-- 12. 顯示正好為5個字符的員工的姓名
SELECT ename FROM emp
	WHERE ename LIKE '_____';
-- 或者
SELECT ename FROM emp
	WHERE LENGTH(ename)=5; 

4.Homework04

根據emp員工表,寫出正確的sql陳述句

  1. 顯示不帶有R的員工的姓名
  2. 顯示所有員工姓名的前三個字符
  3. 顯示所有員工的姓名,用a替換所有的A
  4. 顯示滿10年服務年限的員工的姓名和受雇日期
  5. 顯示員工的詳細資料,按姓名排序
  6. 顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面
  7. 顯示所有的員工的姓名,作業和薪金,按作業降序排序,若作業相同則按薪金排除
  8. 顯示所有員工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面
  9. 顯示在一個月為30天的情況所有員工的日薪金,忽略余數
  10. 找出在(任何年份的)2月受聘的所有員工
  11. 對于每個員工,顯示其加入公司的天數
  12. 顯示姓名欄位的任何位置包含A的所有員工的姓名
  13. 以年月日的方式顯示所有員工的服務年限(大概)

練習

-- 根據emp員工表,寫出正確的sql陳述句
SELECT * FROM emp;
-- 13. 顯示不帶有R的員工的姓名
SELECT ename FROM emp
	WHERE ename NOT LIKE '%R%';
	
-- 14. 顯示所有員工姓名的前三個字符
SELECT LEFT(ename,3) FROM emp;

-- 15. 顯示所有員工的姓名,用a替換所有的A
SELECT REPLACE(ename,'A','a') FROM emp;

-- 16. 顯示滿10年服務年限的員工的姓名和受雇日期
SELECT ename,hiredate FROM emp
	WHERE (DATEDIFF(NOW(),hiredate)/365)>10;
	
-- 17. 顯示員工的詳細資料,按姓名排序
SELECT * FROM emp
	ORDER BY ename;

-- 18. 顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面
SELECT ename,hiredate FROM emp
	ORDER BY hiredate;

-- 19. 顯示所有的員工的姓名,作業和薪金,按作業降序排序,若作業相同則按薪金排序
SELECT ename,job,sal FROM emp
	ORDER BY job DESC,sal;

-- 20. 顯示所有員工的姓名,加入公司的年份和月份,
-- 按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面
SELECT ename,CONCAT(YEAR(hiredate),'-',MONTH(hiredate))FROM emp
	ORDER BY MONTH(hiredate),YEAR(hiredate);

-- 21. 顯示在一個月為30天的情況所有員工的日薪金,忽略余數
SELECT ename,FLOOR(sal/30) FROM emp
	WHERE LAST_DAY(hiredate) LIKE '____-__-30';
	
-- 22. 找出在(任何年份的)2月受聘的所有員工
SELECT * FROM emp
	WHERE hiredate LIKE '____-02-__';
	
-- 23. 對于每個員工,顯示其加入公司的天數
SELECT ename,DATEDIFF(NOW(),hiredate) FROM emp;

-- 24. 顯示姓名欄位的任何位置包含A的所有員工的姓名
SELECT ename FROM emp
	WHERE ename LIKE '%A%';

-- 25. 以年月日的方式顯示所有員工的服務年限(大概)
SELECT ename,
	(DATEDIFF(NOW(),hiredate)-DATEDIFF(NOW(),hiredate)%365)/365 AS '年',
	(DATEDIFF(NOW(),hiredate)%365-DATEDIFF(NOW(),hiredate)%365%31)/31 AS '月',
	DATEDIFF(NOW(),hiredate)%31 AS '天'
	FROM emp
	
-- 或者
SELECT ename,
	FLOOR((DATEDIFF(NOW(),hiredate)/365)) AS '年',
	FLOOR(DATEDIFF(NOW(),hiredate)%365/31) AS '月',
	DATEDIFF(NOW(),hiredate)%31 AS '天'
	FROM emp	

5.Homework05

根據emp員工表,dept部門表,工資=薪金+傭金,寫出正確的sql

  1. 列出至少有一個員工的所有部門
  2. 列出薪金比Smith多的所有員工
  3. 列出受雇日期晚于其直接上級的所有員工
  4. 列出部門名稱和這些部門的員工資訊,同時列出那些沒有員工的部門
  5. 列出所有CLERK(辦事員)的姓名及其部門名稱
  6. 列出最低薪金大于1500的各種作業
  7. 列出在部門SALES(銷售部)作業的員工的姓名
  8. 列出薪金高于公司平均薪金的所有員工
-- 根據emp員工表,dept部門表,工資=薪金+傭金,寫出正確的sql
SELECT * FROM emp;
SELECT * FROM dept;
SELECT * FROM salgrade;

-- 1. 列出至少有一個員工的所有部門
SELECT DISTINCT dname FROM emp,dept
	WHERE emp.deptno=dept.deptno;
-- 或者
SELECT COUNT(*) AS c ,deptno
	FROM emp
	GROUP BY deptno
	HAVING c > 1;

	
-- 2. 列出薪金比Smith多的所有員工
-- 先查出Smith的sal
-- 然后其他的員工的sal>smith.sal
SELECT ename FROM emp
	WHERE sal>(SELECT sal FROM emp WHERE ename='SMITH');
	
-- 3. 列出受雇日期晚于其直接上級的所有員工
-- 先把emp表當做是兩張表,worker , leader  (自連接)
-- 條件1. emp.hiredate>d.hiredate 條件2.emp.mgr=d.empno
SELECT worker.ename AS '員工名',worker.hiredate AS '員工入職時間',
	leader.ename AS '上級名',leader.hiredate AS '上級入職時間'
	FROM emp AS worker, emp AS leader
	WHERE worker.mgr=leader.empno AND worker.hiredate>leader.hiredate;


-- 4. 列出部門名稱和這些部門的員工資訊,同時列出那些沒有員工的部門
-- 這里因為需要顯示所有部門,需要使用外連接
SELECT dname,emp.* FROM emp RIGHT JOIN dept
	ON emp.deptno=dept.deptno ;

-- 5. 列出所有CLERK(辦事員)的姓名及其部門名稱
SELECT ename,dname FROM emp,dept
	WHERE job='CLERK' AND emp.deptno=dept.deptno;


-- 6. 列出最低薪金大于1500的各種作業
SELECT DISTINCT job FROM emp 
    WHERE job NOT IN 
	(SELECT job FROM emp 
	WHERE sal <1500);
 -- 或者 
 -- 查詢各個部門的最低工資
 -- 使用having子句進行過濾
SELECT MIN(sal) AS min_sal ,job 
	FROM emp
	GROUP BY job 
	HAVING min_sal > 1500;

	
-- 7. 列出在部門SALES(銷售部)作業的員工的姓名
SELECT ename FROM emp,dept  
    WHERE emp.deptno = dept.deptno AND dname = 'SALES';

-- 8. 列出薪金高于公司平均薪金的所有員工
SELECT ename FROM emp 
	WHERE sal>(SELECT AVG(sal) FROM emp)

6.Homework06

根據emp員工表,dept部門表,工資=薪金+傭金,寫出正確的sql

  1. 列出與SCOTT從事相同作業的所有員工
  2. 列出薪金高于,在部門30作業的所有員工的薪金,的員工姓名和薪金
  3. 列出在每個部門作業的員工數量,平均工資和平均服務期限
  4. 列出所有員工的姓名,部門名稱和工資
  5. 列出所有部門的詳細資訊和部門人數
  6. 列出各種作業的最低工資
  7. 列出MANAGER(經理)的最低薪金
  8. 列出所有員工的年工資,按年薪從低到高排序
SELECT * FROM emp;
SELECT * FROM dept;
SELECT * FROM salgrade;

-- 1. 列出與SCOTT從事相同作業的所有員工
SELECT * FROM emp
	WHERE job=(SELECT job FROM emp WHERE ename='SCOTT');

-- 2. 列出薪金高于,在部門30作業的所有員工的薪金,的員工姓名和薪金
-- 先查詢出30號部門的最高工資
SELECT ename ,sal FROM emp 
	WHERE sal>(SELECT MAX(sal) FROM emp 
			WHERE deptno = 30)
			
-- 3. 列出在每個部門作業的員工數量,平均工資和平均服務期限
SELECT COUNT(*) AS '員工數量',
	deptno,
	AVG(sal+IFNULL(comm,0)) AS '部門平均工資',
	AVG(DATEDIFF(NOW(),hiredate)/365) AS '平均服務期限年'
	FROM emp 
	GROUP BY deptno

-- 4. 列出所有員工的姓名,部門名稱和工資
SELECT ename,dname,sal+IFNULL(comm,0) FROM emp,dept
	WHERE emp.deptno= dept.deptno

-- 5. 列出所有部門的詳細資訊和部門人數
-- 先得到各個部門的平均人數
SELECT dept.*, `all`
	FROM dept 
	LEFT JOIN
		(SELECT COUNT(*) AS `all`,deptno
			FROM emp
			GROUP BY emp.deptno) AS temp
	ON dept.deptno=temp.deptno
	
-- 6. 列出各種作業的最低工資
SELECT job ,MIN(sal+IFNULL(comm,0))AS '最低工資' FROM emp
	GROUP BY job;

-- 7. 列出MANAGER(經理)的最低薪金
SELECT MIN(sal+IFNULL(comm,0))AS '最低工資' FROM emp
	WHERE job= 'MANAGER';

-- 8. 列出所有員工的年工資,按年薪從低到高排序
SELECT ename,(sal+IFNULL(comm,0))*12 AS '年工資' FROM emp
	ORDER BY (sal+IFNULL(comm,0));

7.Homework07

設學校環境如下:一個系有若干個專業,每一個專業一年只招一個班,每個班有若干個學生,先要建立關于系、學生和班級的資料庫,關系模式為:

班CLASS (班號classid,專業名subject,系名deptname,入學年份enrolltime,人數num)

學生STUDENT(學號studentid,姓名name,年齡age,班號classid)

系DEPARTMENT(系號departmentid,系名deptname)

試用sql語言完成下面功能:

  1. 建表,在定義中要求宣告:

    • 每個表的主外鍵
    • deptname是唯一約束
    • 學生姓名不能為空
  2. 插入如下資料

    DEPARTMENT(
        001,數學;
        002,計算機;
        003,計算機;
        004,計算機;
        005,計算機; )
    
    CLASS(
        101,軟體,計算機,1995,20;
        102,微電子,計算機,1996,30;
        111,無機化學,化學,1995,29;
        112,高分子化學,化學,1996,25;
        121,統計數學,數學,1995,20;
        131,現代語言,中文,1996,20;
        141,國際貿易,經濟,1997,30;
        142,國際金融,經濟,1996,14;       
         )
    
    STUDENT(
        8101,張三,18,101;
        8102,錢四,16,121;
        8103,王玲,17,131;
        8105,李飛,19,102;
        8109,趙四,18,141;
        8110,李可,20,142;
        8201,張飛,18,111;
        8302,周瑜,16,112;
        8203,王亮,17,111;
        8305,董慶,19,102;
        8409,趙龍,18,101;
        8510,李麗,20,142;
    )
    
  3. 完成以下查詢功能

    1. 找出所有姓李的學生
    2. 列出所有開設超過1個專業的系的名字
    3. 列出人數大于等于30的系的編號和名字
  4. 學校又新增了一個物理系,編號為006

  5. 學生張三退學,請更新相關的表

-- 試用sql語言完成下面功能:

-- 1. 建表,在定義中要求宣告:
--    - 每個表的主外鍵
--    - deptname是唯一約束
--    - 學生姓名不能為空

-- 系DEPARTMENT(系號departmentid,系名deptname)
CREATE TABLE DEPARTMENT(
	departmentid VARCHAR(32) PRIMARY KEY,
	deptname VARCHAR(32) UNIQUE NOT NULL
);

-- 班CLASS  (班號classid,專業名subject,系名deptname,入學年份enrolltime,人數num)
CREATE TABLE CLASS(
	classid INT PRIMARY KEY,
	`subject` VARCHAR(32) NOT NULL DEFAULT '',
	deptname VARCHAR(32),
	enrolltime INT NOT NULL DEFAULT 2000,
	num INT NOT NULL DEFAULT 0,
	FOREIGN KEY (deptname) REFERENCES DEPARTMENT(deptname)
);

-- 學生STUDENT(學號studentid,姓名name,年齡age,班號classid)
CREATE TABLE hsp_STUDENT(
	studentid INT PRIMARY KEY,
	`name` VARCHAR(32) NOT NULL DEFAULT '',
	age INT NOT NULL DEFAULT 0,
	classid INT,
	FOREIGN KEY (classid) REFERENCES CLASS(classid)
);

-- 2. 插入如下資料
INSERT INTO DEPARTMENT VALUES('001','數學');
INSERT INTO DEPARTMENT VALUES('002','計算機');
INSERT INTO DEPARTMENT VALUES('003','化學');
INSERT INTO DEPARTMENT VALUES('004','中文');
INSERT INTO DEPARTMENT VALUES('005','經濟');

INSERT INTO CLASS VALUES(101,'軟體','計算機',1995,20);
INSERT INTO CLASS VALUES(102,'微電子','計算機',1996,30);
INSERT INTO CLASS VALUES(111,'無機化學','化學',1995,29);
INSERT INTO CLASS VALUES(112,'高分子化學','化學',1996,25);
INSERT INTO CLASS VALUES(121,'統計數學','數學',1995,20);
INSERT INTO CLASS VALUES(131,'現代語言','中文',1996,20);
INSERT INTO CLASS VALUES(141,'國際貿易','經濟',1997,30);
INSERT INTO CLASS VALUES(142,'國際金融','經濟',1996,14);

INSERT INTO hsp_STUDENT VALUES(8101,'張三',18,101);
INSERT INTO hsp_STUDENT VALUES(8102,'錢四',16,121);
INSERT INTO hsp_STUDENT VALUES(8103,'王玲',17,131);
INSERT INTO hsp_STUDENT VALUES(8105,'李飛',19,102);
INSERT INTO hsp_STUDENT VALUES(8109,'趙四',18,141);
INSERT INTO hsp_STUDENT VALUES(8110,'李可',20,142);
INSERT INTO hsp_STUDENT VALUES(8201,'張飛',18,111);
INSERT INTO hsp_STUDENT VALUES(8302,'周瑜',16,112);
INSERT INTO hsp_STUDENT VALUES(8203,'王亮',17,111);
INSERT INTO hsp_STUDENT VALUES(8305,'董慶',19,102);
INSERT INTO hsp_STUDENT VALUES(8409,'趙龍',18,101);
INSERT INTO hsp_STUDENT VALUES(8510,'李麗',20,142);

SELECT * FROM DEPARTMENT;
SELECT * FROM CLASS;
SELECT * FROM hsp_STUDENT;

-- 3. 完成以下查詢功能
--    3.1 找出所有姓李的學生
SELECT * FROM hsp_STUDENT
	WHERE `name` LIKE '李%';
	
--    3.2 列出所有開設超過1個專業的系的名字
SELECT deptname,COUNT(*) AS nums FROM CLASS
	GROUP BY deptname
	HAVING nums > 1;
	
--    3.3 列出人數大于等于30的系的編號和名字
		
-- 先查出每個系有多少人
-- 將上面的結果看成是一個臨時表,與DEPARTMENT表進行聯合查詢即可
SELECT temp.*,departmentid 
FROM DEPARTMENT,
		(SELECT SUM(num) AS nums,deptname 
		FROM CLASS
		GROUP BY deptname
		HAVING nums>=30) AS temp
	WHERE DEPARTMENT.deptname=temp.deptname;
		
		
-- 4. 學校又新增了一個物理系,編號為006
INSERT INTO department VALUES('006','物理系');

-- 5. 學生張三退學,請更新相關的表
-- 使用事務處理
START TRANSACTION ;
-- 5.1張三所在的班級人數要減1
UPDATE class SET num=num-1
	WHERE classid =(
	SELECT classid 
		FROM hsp_STUDENT
		WHERE `name` = '張三'
	);
-- 5.2將張三從學生表中洗掉	
DELETE 
	FROM hsp_STUDENT
	WHERE `name` = '張三';
-- 提交事務
COMMIT;

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/513729.html

標籤:其他

上一篇:[Raft共識演算法] Dragonboat Log Replication 代碼走讀

下一篇:如何獲取已定義行程訪問的IP串列?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more