CREATE TABLE person
(
person_code varchar(3) PRIMARY KEY,
first_name varchar(15),
last_name varchar(20),
hiredate DATE
);
CREATE TABLE purchase
(
product_name varchar(25),
salesperson varchar(3),
purchase_date DATE,
quantity numeric(4, 2)
);
CREATE TABLE product
(
product_name varchar(25) PRIMARY KEY,
product_price numeric(8, 2),
quantity_on_hand numeric(5, 0),
laststockdate DATE
);
CREATE TABLE old_item
(
item_id CHAR(20),
item_desc CHAR(25)
);
CREATE TABLE purchase_archive
(
product_name varchar (25),
salesperson varchar(3),
purchase_date DATE,
quantity numeric (4, 2)
);
ALTER TABLE purchase
ADD CONSTRAINT purchase_fk_person FOREIGN KEY (salesperson) REFERENCES person;
ALTER TABLE purchase
ADD CONSTRAINT purchase_fk_product FOREIGN KEY (product_name) REFERENCES product;
INSERT INTO product
VALUES ('Small Widget',
99,
1,
'15-JAN-2011');
INSERT INTO product
VALUES ('Medium Widget',
75,
1000,
'15-JAN-2010');
INSERT INTO product
VALUES ('Chrome Phoobar',
50,
100,
'15-JAN-2011');
INSERT INTO product
VALUES ('Round Chrome Snaphoo',
25,
10000,
NULL);
INSERT INTO product
VALUES ('Extra Huge Mega Phoobar +',
9.95,
1234,
'15-JAN-2012');
INSERT INTO product
VALUES ('Square Zinculator',
45,
1,
'31-DEC-2010');
INSERT INTO product
VALUES ('Large Widget',
NULL,
5,
'11-JAN-2011');
INSERT INTO person
VALUES ('CA',
'Charlene',
'Atlas',
'01-FEB-2010');
INSERT INTO person
VALUES ('GA',
'Gary',
'Anderson',
'15-FEB-2010');
INSERT INTO person
VALUES ('BB',
'Bobby',
'Barkenhagen',
'28-FEB-2010');
INSERT INTO person
VALUES ('LB',
'Laren',
'Baxter',
'01-MAR-2010');
INSERT INTO person
VALUES ('JS',
'John',
'Smith',
'15-FEB-2002');
INSERT INTO person
VALUES ('DS',
'Dany',
'Smith',
'15-FEB-2002');
INSERT INTO purchase
VALUES ('Small Widget',
'CA',
'14-JUL-2011',
1);
INSERT INTO purchase
VALUES ('Medium Widget',
'BB',
'14-JUL-2011',
75);
INSERT INTO purchase
VALUES ('Chrome Phoobar',
'GA',
'14-JUL-2011',
2);
INSERT INTO purchase
VALUES ('Small Widget',
'GA',
'15-JUL-2011',
8);
INSERT INTO purchase
VALUES ('Medium Widget',
'LB',
'15-JUL-2011',
20);
INSERT INTO purchase
VALUES ('Round Chrome Snaphoo',
'CA',
'16-JUL-2011',
5);
INSERT INTO old_item
VALUES ('MSC-101',
'Bottle, Small');
INSERT INTO old_item
VALUES ('MSC-102',
'Bottle, Large');
INSERT INTO old_item
VALUES ('SPB-101',
'Box, Small');
INSERT INTO old_item
VALUES ('SPB-102',
'Box, Large');
INSERT INTO purchase_archive
VALUES ('Round Snaphoo',
'BB',
'21-JUN-01',
10);
INSERT INTO purchase_archive
VALUES ('Large Harf linger',
'GA',
'22-JUN-01',
50);
INSERT INTO purchase_archive
VALUES ('Medium Wodget',
'LB',
'23-JUN-01',
20);
INSERT INTO purchase_archive
VALUES ('Small Widget',
'ZZ',
'24-JUN-02 ',
80);
INSERT INTO purchase_archive
VALUES ('Chrome Phoobar',
'CA',
'25-JUN-02',
2);
INSERT INTO purchase_archive
VALUES ('Small Widget',
'JT',
'26-JUN-02',
50);
/* 1. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΈΡΡ purchase.
*/
SELECT *
FROM purchase;
/* 2. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ±ΠΈΡΠ°ΡΡΠΈΠΉ ΡΡΠΎΠ»Π±ΡΡ product_name ΠΈ quantity ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Purchase.
*/
SELECT product_name, quantity
FROM purchase;
/* 3. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ±ΠΈΡΠ°ΡΡΠΈΠΉ ΡΡΠΈ ΡΡΠΎΠ»Π±ΡΡ (Π½Π΅ Π΄Π°Π½Π½ΡΠ΅) Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
*/
SELECT quantity, product_name
FROM purchase;
/* 4. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ person ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ:
<first_name> <last_name> started working on<hiredate>*. ΠΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠΌΡ ΡΡΠΎΠ»Π±ΡΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ
ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ "Enrolled onβ.
* MSSQL Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠΎΠ² Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
varchar ΠΈ date.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ½Π²Π΅ΡΠ°ΡΠΈΠΈ: CONVERT(VARCHAR, hiredate).
*/
--!!! ΠΠ ΠΠΠΠ ΠΠ’Π¬
SELECT first_name + ' ' + last_name + ' started working on' + CONVERT(VARCHAR, hiredate) as 'Enrolled on'
FROM person;
--MySQL
--SELECT CONCAT(first_name, ' ', last_name, ' started working on', hiredate) as 'Enrolled on'
--FROM person;
/* 5. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² product_name (ΡΠ°Π±Π»ΠΈΡΠ° product), Π΄Π»Ρ
ΠΊΠΎΡΠΎΡΡΡ
ΡΠ΅Π½Π° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° (NULL).
*/
SELECT product_name
FROM product
WHERE product_price is NULL;
/* 6. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² product_name (ΡΠ°Π±Π»ΠΈΡΠ° purchase),
ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΎΠ΄Π°Π»ΠΈ ΠΎΡ 3 Π΄ΠΎ 23 ΡΡΡΠΊ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΎΡΠ±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
Π² ΡΠ°Π·Π΄Π΅Π»Π΅
WHERE.
*/
SELECT product_name
FROM purchase
WHERE quantity > 3 AND quantity < 23;
SELECT product_name
FROM purchase
WHERE quantity BETWEEN 3 AND 23;
/* 7. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΈΠ½ΡΠ»ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΡ 1Π³ΠΎ, 15Π³ΠΎ ΠΈ 28Π³ΠΎ
ΡΠ΅Π²ΡΠ°Π»Ρ 2010 Π³ΠΎΠ΄Π°.
*/
--!!! ΠΠ ΠΠΠΠ ΠΠ’Π¬
SELECT last_name
FROM person
WHERE hiredate IN (CONVERT(DATE,'01-FEB-2010'), CONVERT(DATE,'15-FEB-2010'), CONVERT(DATE,'28-FEB-2010'));
--WHERE CONVERT(VARCHAR, hiredate) IN ('01-FEB-2010', '15-FEB-2010', '28-FEB-2010');
--WHERE hiredate IN ('01-02-2010', '15-02-2010', '28-02-2010');
--WHERE hiredate IN ('2010-02-01', '2010-02-15', '2010-02-28');
/* 8. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² product_name (ΡΠ°Π±Π»ΠΈΡΠ° purchase),
ΠΏΡΠΎΠ΄Π°Π½Π½ΡΡ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ
Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π½Π° "Bβ.
*/
SELECT product_name
FROM purchase
WHERE salesperson LIKE '_B';
/* 9. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² product_name (ΡΠ°Π±Π»ΠΈΡΠ° purchase),
ΠΏΡΠΎΠ΄Π°Π½Π½ΡΡ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΠ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π½Π° "Bβ.
*/
SELECT product_name
FROM purchase
WHERE salesperson NOT LIKE '_B';
/* 10. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΠΈ Π΄Π°ΡΡ ΠΏΡΠΈΠ΅ΠΌΠ° Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ
Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π½Π° "Bβ ΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠΈΠ½ΡΠ»ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠ°Π½ΡΡΠ΅ 1 ΠΌΠ°ΡΡΠ° 2010 Π³ΠΎΠ΄Π°.
*/
--!!! ΠΠ ΠΠΠΠ ΠΠ’Π¬
SELECT last_name, hiredate
FROM person
WHERE last_name LIKE 'B%'
AND hiredate < CONVERT(DATE,'01-MAR-2010');
--AND hiredate < '01-03-2010';
--AND hiredate < '2010-03-01';
/* 11. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π·Π°ΠΏΡΠΎΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² product_name ΠΈ Π΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ
ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ laststockdate (ΡΠ°Π±Π»ΠΈΡΠ° product), Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ
Small Widget, Medium Widget ΠΈ
Large Widget ΠΈΠ»ΠΈ ΡΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π° Π΄Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ. ΠΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ
Π΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ.
*/
SELECT product_name, laststockdate
FROM product
WHERE product_name IN ('Small Widget', 'Medium Widget', 'Large Widget')
OR laststockdate is NULL
ORDER BY laststockdate DESC;
--------------------------------------------------------------------------------
-- SELECT * FROM person;
-- SELECT * FROM purchase;
-- SELECT * FROM product;
-- SELECT * FROM old_item;
-- SELECT * FROM purchase_archive;