文、意如
續上篇 —基礎工程師面試時,常用的技術問與答(一、基本程式邏輯基礎篇)
本篇要跟大家分享的是工程師面試筆試中最常出現的題型資料庫應用SQL語法,有關資料庫的部分我在這裡分成兩大類型
- 基礎語法篇
- 資料表連結
一、基礎語法篇
工程師大多的時間都在跟資料庫打交道,所以最基本的語法一定要把它背熟,尤其是(新增、修改、刪除、查詢)的語句,就算筆試沒考,進入工作時也是百分之百一定會使用到,所以基礎語法沒過的基本上就可以刷掉一大票人了。
常見考題如下:
Q1、請寫出新增三筆資料的語法,解答為:
INSERT INTO `資料表`
(`欄位1`, `欄位2`, `欄位3`, `欄位4`)
VALUES
(“值1″,”值2”, “值3″,”值4”), #第一筆
(“值1″,”值2”, “值3″,”值4”), #第二筆
(“值1″,”值2”, “值3″,”值4”) #第三筆
Q2、有一張表紀錄著問卷調查的資料,欄位Answer為喜歡運動的程度,1.喜歡 2.不喜歡 3.普通,請查詢喜歡的人數,不喜歡的人數共幾筆
資料表名稱:survey
Pk | Name | Answer |
1 | 班尼爾 | 2 |
2 | 阿曼達 | 1 |
3 | 賈斯汀 | 1 |
4 | 卡斯頓 | 3 |
Q2參考解答為:
喜歡的人數語法為:SELECT COUNT(pk) FROM survey Where Answer = 1
不喜歡的人數語法為:SELECT COUNT(pk) FROM survey Where Answer = 2
類似相關的考題很多,請務必記得把(新增、修改、刪除、查詢)等基本語法練熟後,
另外像是排序(ORDER BY)、抓取資料筆數(LIMIT)也都是很常出現在筆試的題目中。
二、資料表連結
第二類常考的題型大多都是有關資料表的關聯與結合,再調取資料時,
很多都是好幾張資料表中去做關聯然後再取出我們所需要的資料,
所以JOIN資料表的方式也要熟悉。
必背的INNER JOIN語法如下:
SELECT table_column1, table_column2… #搜尋的欄位
FROM table_name1 #資料表1
INNER JOIN table_name2 #要跟資料表2做合併
ON table_name1.column_name=table_name2.column_name; #兩個表一樣的欄位
熟悉了JOIN語法後,我們來看看類似的考題如下:
資料表1:customer客戶表
cus pk | name | addr | |
35 | 班尼爾 | 台北 | abc@gmail.com |
36 | 阿曼達 | 宜蘭 | qaz@gmail.com |
37 | 賈斯汀 | 高雄 | t61@gmail.com |
38 | 卡斯頓 | 桃園 | w12@gmail.com |
資料表2:order訂單表
ord pk | addr | cus pk | |
1 | 台北 | 35 | abc@gmail.com |
2 | 宜蘭 | 36 | qaz@gmail.com |
3 | 高雄 | 37 | t61@gmail.com |
4 | 桃園 | 38 | w12@gmail.com |
Q1、請結合兩張資料表,資料表需要有姓名name與地址addr欄位
SELECT customer. name, order. addr,
FROM customer
INNER JOIN order
ON customer. cus_pk= order. cus_pk
Q2、請查詢37號客戶的訂單編號ord_pk
SELECT customer. name, order. ord_pk
FROM customer
INNER JOIN order
ON customer. cus_pk= order. cus_pk
WHERE order. cus_pk = ‘37’
把基礎功練熟是必然的,不論您使用的是什麼程式語言,
基礎的資料庫SQL語法是不變的,以上分享的題型都是工作中一定會使用到的語法,
因此也常常被拿來當作筆試的題目。
Yiru@Studio - 關於我 - 意如