Skip to main content

ACS Workshop (SQL)

Question 1 (Create)

 

Question 2 (UPDATE)

 


Question 3 (Delete)

 

Question  4 (Select)

                 Question 4.1 (Where)
 
                 Question 4.2 (Order by)
 
                 Question 4.3 (Like)
 
                 Question 4.4 (Operator)
 

Question 5 (debug)

       เขียนโปรแกรมเพื่อหาข้อมูลที่ซ้ำกัน แก้ไขข้อมูล และกำหนด primary key


1. สร้าง table จาก data นี้

CREATE TABLE 'ws1' ('id' INTEGER ,
                                           'Age' INTEGER,
                                           'Gender' TEXT,
                                           'Education_Level' TEXT,
                                           'Job_Title' TEXT,
                                           'Years_of_Experience' TEXT,
                                           'Salary' INTEGER                                           );
INSERT INTO 'ws1' ('id','Age','Gender','Education_Level','Job_Title','Years_of_Experience','Salary') VALUES 
 ('00163','28','Female','Bachelor''s','Software Engineer','5','160000'), 
 ('00162','27','Female','Bachelor''s Degree','Software Engineer','3','70000'), 
 ('00189','28','Male','Bachelor''s Degree','Web Developer','3','55000'), 
 ('00074','25','Female','Bachelor''s Degree','Junior Software Developer','S','35000'), 
 ('00177','54','Male','PhD','Software Engineer Manager','16','190000'), 
 ('00177','54','Male','PhD','Software Engineer Manager','16','190000'), 
 ('00078','33','Male','Bachelor''s','Junior Software Developer','5','50000'), 
 ('00065','27','Female','Bachelor''s Degree','Graphic Designer','2','50000'), 
 ('00166','27','Female','Bachelor''s Degree','Software Engineer','3','70000'), 
 ('00085','27','Female','Bachelor''s Degree','Junior Software Engineer','1','45000'), 
 ('00147','45','Female','PhD','Senior UX Designer','16','160000'), 
 ('00103','30','Male','Bachelor''s','Network Engineer','3','60000'), 
 ('00139','54','Male','Master''s Degree','Senior Software Engineer','32','195270'), 
 ('00178','54','Female','PhD','Software Engineer Manager','32','191510'), 
 ('00132','38','Female','Bachelor''s','Senior Project Manager','9','120000'), 
 ('00146','40','Female','PhD','Senior Software Engineer','12','160000'), 
 ('00081','26','Female','Bachelor''s Degree','Junior Software Developer','2','35000'), 
 ('00066','27','Female','Bachelor''s Degree','Graphic Designer','2','50000'), 
 ('00107','45','Male','PhD','Senior Data Engineer','16','150000'), 
 ('00058','36','Male','Master''s Degree','Full Stack Engineer','11','137775'), 
 ('00117','36','Male','PhD','Senior Data Scientist','12','170000'), 
 ('00019','25','Female','Master''s','Data Analyst','1','100000'), 
 ('00123','41','Female','Master''s Degree','Senior Project Engineer','11','165000'), 
 ('00007','38','Male','Bachelor''s Degree','Back end Developer','14','136449'), 
 ('00109','36','Male','PhD','Senior Data Scientist','12','170000'),
 ('00025','33','Male','PhD','Data Scientist','8','190000'),
 ('00012','37','Male','Bachelor''s Degree','Data Analyst','11','160000'), 
 ('00063','28','Male','Bachelor''s Degree','Graphic Designer','3','60000'), 
 ('00136','34','Male','Master''s','Senior Software Developer','8','105000'), 
 ('00098','23','Female','Bachelor''s Degree','Junior Web Developer','1','40000'), 
 ('00069','27','Male','Bachelor''s Degree','Graphic Designer','2','50000'), 
 ('00025','33','Male','PhD','Data Scientist','8','190000'), 
 ('00131','42','Female','Bachelor''s','Senior Project Manager','12','120000'), 
 ('00184','33','Male','Bachelor''s Degree','Web Developer','5','70000'), 
 ('00144','36','Male','Master''s Degree','Senior Software Engineer','7','140000'), 
 ('00141','37','Male','Master''s Degree','Senior Software Engineer','9','145000'), 
 ('00006','46','Female','Bachelor''s Degree','Back end Developer','18','155795'), 
 ('00158','28','Male','Bachelor''s Degree','Software Developer','3','60000'), 
 ('00093','34','Male','Bachelor''s Degree','Junior Web Developer','3','50000'), 
 ('00035','29','Male','Bachelor''s Degree','Front End Developer','4','80000'), 
 ('00122','43','Male','PhD','Senior Project Engineer','13','185000'), 
 ('00154','24','Female','Bachelor''s Degree','Software Developer','2','55000'), 
 ('00037','29','Male','Bachelor''s Degree','Front End Developer','4','80000'), 
 ('00015','30','Female','Bachelor''s','Data Analyst','5','145000'), 
 ('00070','26','Female','Bachelor''s Degree','Graphic Designer','2','50000'), 
 ('00095','34','Male','Bachelor''s Degree','Junior Web Developer','3','50000'), 
 ('00038','29','Male','Bachelor''s Degree','Front End Developer','4','80000'), 
 ('00068','26','Female','Bachelor''s Degree','Graphic Designer','2','50000'), 
 ('00114','36','Male','PhD','Senior Data Scientist','12','170000'), 
 ('00051','38','Male','Bachelor''s Degree','Front end Developer','11','136062'), 
 ('00088','26','Female','Bachelor''s Degree','Junior Software Engineer','1','45000'), 
 ('00191','36','Female','Master''s Degree','Web Developer','7','85000'), 
 ('00099','24','Female','Bachelor''s Degree','Junior Web Developer','1','40000'), 
 ('00018','26','Male','Bachelor''s','Data Analyst','3','120000'), 
 ('00014','31','Male','Bachelor''s','Data Analyst','9','195000'), 
 ('00094','32','Male','Bachelor''s Degree','Junior Web Developer','2','45000'), 
 ('00143','42','Male','PhD','Senior Software Engineer','14','170000'), 
 ('00040','25','Male','Bachelor''s Degree','Front End Developer','2','50000'), 
 ('00130','39','Female','Bachelor''s','Senior Project Manager','12','130000'), 
 ('00017','25','Female','Bachelor''s','Data Analyst','2','110000'), 
 ('00153','29','Male','Bachelor''s Degree','Software Developer','5','80000'), 
 ('00174','54','Male','PhD','Software Engineer Manager','17','195000'), 
 ('00009','36','Male','Master''s Degree','Back end Developer','9','150000'), 
 ('00086','27','Female','Bachelor''s Degree','Junior Software Engineer','2','48000'), 
 ('00057','25','Other','High School','Full Stack Engineer','2','69032'), 
 ('00031','27','Male','PhD','Developer','7','100000'), 
 ('00060','29','Female','Bachelor''s Degree','Full Stack Engineer','6','103579'), 
 ('00073','25','Female','Bachelor''s Degree','Junior Software Developer','1','35000'), 
 ('00047','30','Female','Master''s Degree','Front end Developer','5','105000'), 
 ('00186','27','Female','Bachelor''s Degree','Web Developer','2','50000'), 
 ('00021','32','Female','PhD','Data Scientist','9','145000'), 
 ('00124','47','Male','PhD','Senior Project Engineer','16','190000'), 
 ('00140','44','Male','Master''s Degree','Senior Software Engineer','18','152168'), 
 ('00028','31','Male','Master''s','Data Scientist','9','195000'), 
 ('00113','33','Male','Master''s Degree','Senior Data Scientist','8','120000'), 
 ('00112','36','Male','PhD','Senior Data Scientist','12','170000'), 
 ('00089','25','Male','Bachelor''s Degree','Junior Software Engineer','1','55000'), 
 ('00142','46','Male','Master''s Degree','Senior Software Engineer','20','174938'), 
 ('00090','27','Female','Bachelor''s Degree','Junior Software Engineer','2','48000'), 
 ('00062','26','Female','Bachelor''s Degree','Graphic Designer','2','50000'), 
 ('00179','37','Female','Master''s','Software Manager','11','110000'), 
 ('00127','43','Male','PhD','Senior Project Engineer','13','185000'), 
 ('00014','31','Male','Bachelor''s','Data Analyst','9','195000'), 
 ('00039','29','Male','Bachelor''s Degree','Front End Developer','4','80000'), 
 ('00108','44','Female','PhD','Senior Data Engineer','16','160000'), 
 ('00033','29','Male','Bachelor''s Degree','Front End Developer','4','80000'), 
 ('00046','29','Male','Bachelor''s Degree','Front end Developer','3','80000'), 
 ('00148','45','Female','PhD','Senior UX Designer','16','160000'), 
 ('00168','28','Male','Bachelor''s Degree','Software Engineer','4','75000'), 
 ('00032','29','Male','Bachelor''s Degree','Front End Developer','4','80000'), 
 ('00145','31','Female','Bachelor''s Degree','Senior Software Engineer','6','104378'), 
 ('00029','31','Female','PhD','Data Scientist','8','140000'), 
 ('00004','24','Male','Bachelor''s Degree','Back end Developer','1','55000'), 
 ('00100','26','Female','Bachelor''s Degree','Junior Web Developer','2','45000'), 
 ('00135','46','Male','PhD','Senior Researcher','18','150000'), 
 ('00056','27','Female','Master''s Degree','Full Stack Engineer','3','100000'), 
 ('00165','23','Female','Bachelor''s Degree','Software Engineer','1','50000');


 

2.หาข้อมูลที่ซ้ำกัน

SELECT __, COUNT(*) AS duplicate_count
FROM ____
GROUP BY __
HAVING COUNT(*) > 1;

3. select ข้อมูลตัวที่ซ้ำกันออกมา

SELECT ___ FROM  ___ WHERE ___= ___;

4.delete ข้อมูลที่ซ้ำกัน

DELETE ___ FROM ___ WHERE ___ = ___ ;


Question 6 (alter)

เพิ่ม column ใน table ws2

1. กำหนด id เป็น primary key

CREATE TABLE 'ws2' ('id' INTEGER,

                             'name' TEXT,

                             'nickname' TEXT)

                              #INPUT CODE HERE;
INSERT INTO 'ws2' ('id','name','nickname') VALUES 
 ('66090500433','ธันยธรณ์ กองทองหลาง','เนท'), 
 ('66090500412','ปานวาด คะบูชา','มิ้ว'), 
 ('66090500434','ธีรภัทร์ ไพฑูรย์','ธี'), 
 ('66090500450','นภาเดช แก้วนอก','โอม'), 
 ('66090500403','ชานาธิป เขียวฉอ้อน','ฟลุ๊ค'), 
 ('66090500423','อธิฐาน มหามนต์','เดียร์'), 
 ('66090500436','นิชานันท์ บุญถนอม','กิ๊บ'), 
 ('66090500439','ยศพัทธ์ คุ้มวงศ์','ยูโร'), 
 ('66090500438','ปวรเกียรติ เมฆงาม','ปั๊บ'), 
 ('66090500422','นายสุขุมพัฒน์ รุจิธนัตโรจน์','ปาล์ม'), 
 ('66090500424','เอมี่ สุกัลญา ทริปป์','เอมี่'), 
 ('66090500408','นาย ณัฐวัฒน์ น้อยอุทัย','นัด'), 
 ('66090500432','ทินภัทร ตาคะนานันท์','ทิน'), 
 ('66090500421','สิทธาร คุณานิธ','ไหม'), 
 ('66090500402','ชนะโชติ บึงไกร','ป๊อบอาย'), 
 ('66090509437','นิติภูมิ พราหมณ์ศรีชาย','ภูมิ'), 
 ('66090500415','มงกุฎ วัฒนศิลปกิจ','ป๋วย'), 
 ('66090500451','พรพิมล พูลสวัสดิ์','อีฟ'), 
 ('66090500442','นายสุชาครีย์ พันชมภู','ต้า'), 
 ('66090500409','ต้นหยก บูรณวานิช','น้ำใส'), 
 ('66090500449','ณัฐวรา สาศรีเมือง','แอ้น'), 
 ('66090500420','สรวิชญ์ ห้องโสภา','นัม'), 
 ('66090500428','จิรัชญา สุวรรณชีวะศิริ','เฟิร์น'), 
 ('66090500444','สุพิชญากรณ์ ทองวร','เบสท์'), 
 ('66090500404','ณัฎฐินันท์ เกิดศรี','เซฟ'), 
 ('66090500419','วัฒนาสุข ลิมป์จรรยาวงศ์','แฟรงค์'), 
 ('66090500426','นายกิตติพศ วรรณภานุปทีป','เมเจอร์'), 
 ('66090500411','ธนวัฒน์ มะปะเท','แบงค์'), 
 ('66090500407','ณัฐภัทร สุวรรณศรีไพศาล','แบงค์'), 
 ('66090500416','นายวชิรวิทย์ เปรมไธสง','กาย'), 
 ('66090500401','นางสาวจันทร์ธิมา จันทร์หอม','พลอยดาว'), 
 ('66090500445','สุรสัณห์ โพธิจักร','ปุ้ย'), 
 ('66090500406','ณัฐพล เปรมกมล','ข้าวฟ่าง'), 
 ('66090500418','วัชรินทร์ ธาดาเจตสมบัติ','ก้อง'), 
 ('66090500425','กฤษฏิ์ ท้าวนาง','กิต'), 
 ('66090500440','รชตภัทร บุญมะหันต์','ไนซ์'), 
 ('66090500443','สุชานันท์ ทองชันลุก','มายด์'), 
 ('66090500427','นายเกียรติภูมิ ตั้งศรีทวีสุข','ภูมิ'), 
 ('66090500413','พงศธร ไวยวรณ์','ตี๋'), 
 ('66090502457','วิมลลักษณ์ สัตถาพร','หงส์'), 
 ('66090500429','นางสาว ญาณิศา คล่องแคล่ว','จูเลีย'), 
 ('66090500435','นฤพนธ์ ฉายสุวรรณคีรี','โอม'), 
 ('66090500447','อาชวิน ศุภนิทัศนาภร','ปลื้ม'), 
 ('66090500414','พิริยากร ศรีสุข','โอปอ');

2. เพิ่ม column email

alter table ____ add ___  ___;

3. ใส่ email ของตัวเองในชื่อ

UPDATE ___  SET ___ = ___ WHERE ___ = ___;

4.โชว์ข้อมูลของตัวเอง

SELECT ___ FROM ___ WHERE ___ ;

Question 7 (Specialllllllll)

1.create table from data

 

2. กำหนด id เป็น primary key 

 

3. ใช้คำสั่ง select เพื่อแสดงคนที่มีเงินเดือนมากกว่า 100000 และน้อยกว่า 150000เรียงลำดับจากน้อยไปมาก

4.update ข้อมูลของตัวเองเข้าไปในตาราง 

5.delete ข้อมูลคนที่เงินเดือนมากที่สุด

6. เพิ่มข้อมูล column บริษัทที่อยากทำในข้อมูลของตัวเอง และของเพื่อนอีก 2 คน

7.เปลี่ยนชื่อ table เป็น job_table_by_ชื่อตัวเอง

8.ใช้ join เพิ่มรวมตาราง 2 เพื่อแสดงชื่อ id , ประเทศ, ตำแหน่งงาน 

9.แสดงข้อมูลคนที่มีประเทศขึ้นต้นด้วยตัว M  และ มีเงินเดือนมากกว่า 120000 โดยเรียงลำดับจาก มากไปน้อย