ACS Workshop (SQL)
Question 1 (Create,Insert)
1.1 CREATE TABLE
และ กำหนด id
เป็น primary key
CREATE TABLE employees (
id INT,
name TEXT,
salary REAL,
job TEXT,
--INPUT CODE HERE
);
1.2 ใช้คำสั่ง INSERT
data เพื่อใส่ข้อมูลเข้าไปใน table employees และ ใส่ข้อมูลของตัวเองลงไปตามตัวอย่าง
โดยสามารถดาวน์โหลดข้อมูลได้จาก Data Question 1
INSERT INTO employees (id, name, salary, job) VALUES
(1, 'Lalita Suriya', 25000, 'Developer'),
(2, 'Somsak Somporn', 42500, 'UX/UI Designer'),
(3, 'Siriporn Amporn', 35000, 'Developer'),
(4, 'alita Somsak', 50000, 'UX/UI Designer'),
(5, 'Preecha Kamon', 55000, 'Frontend Developer'),
(6, 'Preecha Kanya', 27500, 'Backend Developer'),
(7, 'Somporn Thaksin', 30000, 'UX/UI Designer'),
(8, 'Sunan Intira', 20000, 'Frontend Developer'),
(9, 'Kanda Ratree', 23500, 'Developer'),
(10, 'Klahan Suchart', 20000, 'Fullstack Developer'),
(11, 'Sukhon Intira', 60000, 'Data scientist'),
(12, 'Wattana Somboon', 30000, 'Data analytics'),
(13, 'Lalita Thaksin', 55000, 'DevOps'),
(14, 'Somchai Malai', 43500, 'Data analytics'),
(15, 'Mali Amporn', 60000, 'Developer'),
(16, 'Pranee Porntip', 25000, 'DevOps'),
(17, ' Somporn Prasert', 35000, 'Web Developer'),
(18, 'Mongkut Arum', 20000, 'Frontend Developer'),
(19, 'Pranee Wattana', 45000, 'Backend Developer');
INSERT INTO employees (id, name, salary, job) VALUES
--ใส่ข้อมูลของตัวเอง ex. (1, 'Teacher', 25000, 'Student')
Question 2 (UPDATE)
ให้ทำการ อัปเดตข้อมูล job
จาก DevOps
เป็น DevOps Engineer
UPDATE ____ ___ job = 'DevOps Engineer' ____ job = 'DevOps';
SELECT * FROM _____ WHERE ____ = ____;
OUTPUT:
Question 3 (Delete)
จงลบข้อมูล job
ทีมีค่าเท่ากับ 'UX/UI Designer'
DELETE FROM ___ WHERE ___ = "UX/UI Designer";
SELECT * FROM ___ where ___ = "UX/UI Designer";
OUTPUT:
Question 4 (Select)
Question 4.1 (Where)
ให้แสดงข้อมูลออกมาตามเงื่อนไขดังนี้
SELECT * FROM ____ ____ ____ > 50000 or ____ = 'Developer' order by job ;
OUTPUT:
Question 4.2.1 (Order by)
จงแสดงข้อมูลจากน้อยไปมากโดยใช้ salary
เป็นเกณฑ์ Hint: ASC
SELECT * FROM ____ ORDER BY ___ ___;
OUTPUT:
จงแสดงข้อมูลจากน้อยไปมากโดยใช้ salary
เป็นเกณฑ์ Hint: DESC
SELECT * FROM ____ ORDER BY ___ ___;
OUTPUT:
Question 4.3 (Like)
ให้แสดงชื่อที่ขึ้นต้นด้วยตัว S%
จงแสดงข้อมูล ทั้งหมดที่มี name
ขึ้นต้นด้วยตัว S
Hint: S%
SELECT * FROM ___ WHERE ___ LIKE ___ ;
OUTPUT:
Question 4.4 (Operator)
ให้แสดงข้อมูลทั้งหมด โดยมีเงื่อนไขว่าเป็นคนที่ salary > 30000
และ job = 'Developer'
SELECT * FROM ____ where ____ > 30000 ____ ____ = 'Developer';
Question 5 (alter)
1.import to SQLsqlite from Data Question 5
2.เพิ่ม column email
ALTER TABLE ____ add ___ ___;
3.update email
โดยให้ขึ้นต้นว่า id + @kmutt.ac.th
UPDATE ___ SET ___ = ___ || '@kmutt.ac.th';
4.จงแสดงข้อมูลทั้งหมด
SELECT ___ FROM ___ ;
Question 6 (Specialllllllll)
1.create
table from data
2. กำหนด id
เป็น primary key
3. ใช้คำสั่ง select
เพื่อแสดงคนที่มีเงินเดือนมากกว่า 100000 และน้อยกว่า 150000เรียงลำดับจากน้อยไปมาก
4. insert
ข้อมูลของตัวเองเข้าไปในตาราง
5.เพิ่มข้อมูล column บริษัทที่อยากทำในข้อมูลของตัวเอง
6. เพิ่มข้อมูลใน column บริษัทที่อยากทำในข้อมูลของตัวเอง และของเพื่อนอีก 2 คน และ delete
ข้อมูลคนที่เงินเดือนมากที่สุด
7.เปลี่ยนชื่อ table
เป็น job_table_by_ชื่อตัวเอง
8.แสดงข้อมูลคนที่มีเพศขึ้นต้นด้วยตัว M
และ มีเงินเดือนมากกว่า 86000 และน้อยกว่า 130000 โดยเรียงลำดับจาก มากไปน้อย
9. update
ข้อมูล company ตามเงื่อนไงดังนี้
company 1 Microsoftmicrosoft = salary
> 100000 and year of experience
> 10
company 2 Thaitech = salary
< 50000 and year of experience
< 5
company 3 Google = company IS NULL
10. ALTER TABLE [table name] add email TEXT;
11.ให้ทำการ update
email
ตามชื่อบริษัท ดังนี้
Google = @gmail.com
Microsoft = @microsoft.com
Thaitech = @thaitech.com
hint: email = id || @mail.com WHERE ...