13. CREATE DATABASE songo
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;
USE songo;
CREATE TABLE IF NOT EXISTS tolbor_helber_lavlah
(helber_id INT NOT NULL AUTO_INCREMENT,
helber_name VARCHAR(45),
PRIMARY KEY(helber_id));
CREATE TABLE IF NOT EXISTS torol
(torol_id INT NOT NULL AUTO_INCREMENT,
torol_name VARCHAR(45),
PRIMARY KEY(torol_id));
CREATE TABLE IF NOT EXISTS hurgelt
(hurgelt_id INT NOT NULL AUTO_INCREMENT,
hurgelt_hayg VARCHAR(45),
hurgelt_tolov VARCHAR(45),
PRIMARY KEY(hurgelt_id));
CREATE TABLE IF NOT EXISTS une_lavlah
(lavlah_id INT NOT NULL AUTO_INCREMENT,
lavlah_hemjee VARCHAR(45),
lavlah_une VARCHAR(45),
14. PRIMARY KEY(lavlah_id));
CREATE TABLE IF NOT EXISTS tsutslalt
(tsutslalt_id INT NOT NULL AUTO_INCREMENT,
tsutslalt_ognoo DATE,
tsutslalt_shaltgaan VARCHAR(45),
zahialga_zahialga_id INT,
PRIMARY KEY(tsutslalt_id));
CREATE TABLE IF NOT EXISTS customer
(customer_id INT NOT NULL AUTO_INCREMENT,
customer_name VARCHAR(45),
customer_email VARCHAR(45),
customer_phone_number INT,
customer_address VARCHAR(45),
customer_password VARCHAR(16),
songo_songo_id INT,
PRIMARY KEY(customer_id));
CREATE TABLE IF NOT EXISTS zahialga
(zahialga_id INT NOT NULL AUTO_INCREMENT,
customer_customer_id INT,
kartiin_guilgee_guilgee_id INT,
PRIMARY KEY(zahialga_id));
15. CREATE TABLE IF NOT EXISTS tolbor
(tolbor_id INT NOT NULL AUTO_INCREMENT,
tolbor_hemjee VARCHAR(45),
tolbor_helber_lavlah_helber_id INT,
zahialga_zahialga_id INT,
PRIMARY KEY(tolbor_id));
CREATE TABLE IF NOT EXISTS kartiin_guilgee
(guilgee_id INT NOT NULL AUTO_INCREMENT,
kart_torol VARCHAR(45),
guilgee_hemjee VARCHAR(45),
PRIMARY KEY(guilgee_id));
CREATE TABLE IF NOT EXISTS songo
(songo_id INT NOT NULL AUTO_INCREMENT,
kartiin_guilgee_guilgee_id VARCHAR(8),
restaurant_restaurant_id VARCHAR(8),
hurgelt_hurgelt_id INT,
PRIMARY KEY(songo_id));
CREATE TABLE IF NOT EXISTS une_lavlah
(lavlah_id INT NOT NULL AUTO_INCREMENT,
lavlah_hemjee VARCHAR(45),
16. lavlah_une VARCHAR(45),
PRIMARY KEY(lavlah_id));
CREATE TABLE IF NOT EXISTS tolov_lavlah
(tolov_id varchar(8) NOT NULL,
tolov_name VARCHAR(50),
PRIMARY KEY(tolov_id));
CREATE TABLE IF NOT EXISTS food
(food_id INT NOT NULL AUTO_INCREMENT,
food_name VARCHAR(45),
food_hemjee VARCHAR(45),
food_une INT,
une_lavlah_lavlah_id INT,
restaurant_restaurant_id INT,
torol_torol_id INT,
PRIMARY KEY(food_id));
CREATE TABLE IF NOT EXISTS restaurant
(restaurant_id INT NOT NULL ,
restaurant_name VARCHAR(45),
restaurant_address VARCHAR(45),
PRIMARY KEY(restaurant_id));
17. ХҮСНЭГТ ЗАСВАРЛАХ
/*Үүсгэсэн байгаа аль нэг лавлах хүснэгтийнхээ анхдагч түлхүүр баганыг устга.*/
ALTER TABLE food
drop column food_id ;
/* 2. Дараа нь шинээр 2 багана нэмж, нэгийг нь анхдагч түлхүүр болго. */
ALTER TABLE food
ADD food_id INT NOT NULL PRIMARY KEY,
ADD food_angilal INT;
/*3. Нэмсэн 2 баганыхаа нэр, болон өгөгдлийн төрлийг өөрчил. */
ALTER TABLE food
MODIFY COLUMN food_id VARCHAR(8);
ALTER TABLE food
CHANGE COLUMN food_id food_num VARCHAR(8);
ALTER TABLE food
MODIFY COLUMN food_angilal VARCHAR(20);
ALTER TABLE food
CHANGE COLUMN food_angilal food_category VARCHAR(20);
18. /*4. Анхдагч түлхүүр болгоогүй баганаа устга.*/
ALTER TABLE food
DROP COLUMN food_une;
ALTER TABLE food
ADD food_une INT;
/* 5. Лавлах хүснэгтийнхээ нэрийг өөрчил.*/
RENAME TABLE torol
TO torol_lavlah;
19. Гадаад түлхүүр тодорхойлох, бичлэгтэй ажиллах
ALTER TABLE tolbor
ADD FOREIGN KEY (tolbor_helber_lavlah_helber_id)
REFERENCES tolbor_helber_lavlah(helber_id);
ALTER TABLE tolbor
ADD FOREIGN KEY (zahialga_zahialga_id)
REFERENCES zahialga(zahialga_id);
ALTER TABLE food
ADD FOREIGN KEY (une_lavlah_lavlah_id)
REFERENCES une_lavlah(lavlah_id);
ALTER TABLE food
ADD FOREIGN KEY (restaurant_restaurant_id)
REFERENCES restaurant(restaurant_id);
ALTER TABLE food
ADD FOREIGN KEY (torol_torol_id)
REFERENCES torol_lavlah(torol_id);
ALTER TABLE zahialga
ADD FOREIGN KEY (customer_customer_id)
REFERENCES customer(customer_id);
20. ALTER TABLE zahialga
ADD FOREIGN KEY (kartiin_guilgee_guilgee_id)
REFERENCES kartiin_guilgee(guilgee_id);
ALTER TABLE songo
ADD FOREIGN KEY (kartiin_guilgee_guilgee_id)
REFERENCES kartiin_guilgee(guilgee_id);
ALTER TABLE songo
ADD FOREIGN KEY (restaurant_restaurant_id)
REFERENCES restaurant(restaurant_id);
ALTER TABLE songo
ADD FOREIGN KEY (hurgelt_hurgelt_id)
REFERENCES hurgelt(hurgelt_id);
ALTER TABLE customer
ADD FOREIGN KEY (songo_songo_id)
REFERENCES songo(songo_id);
ALTER TABLE tsutslalt
ADD FOREIGN KEY (zahialga_zahialga_id)
REFERENCES zahialga(zahialga_id);
26. ALTER TABLE `tolbor`
ADD constraint foreign key (tolbor_helber_lavlah_helber_id)
REFERENCES tolbor_helber_lavlah (helber_id)
ON DELETE RESTRICT ON UPDATE RESTRICT;
DELETE FROM tolbor
WHERE tolbor_helber_lavlah_helber_id = '1';
ALTER TABLE `customer`
ADD constraint foreign key (songo_songo_id)
REFERENCES songo (songo_id)
ON DELETE CASCADE ON UPDATE CASCADE;
Дотоод холболт болон гадаад холболттой query
/*Ogogdson ognoond zahialagdan hoolnii ner, hvrgeh hayg bolon zahialsan hereglegchiin
ner, utas-iig haygiin jagsaalt harah*/
SELECT zahialga_ognoo, zahialga_une, hool_ner, z_hurgeh_hayg, cus_ner, cus_utas
FROM (zahialga INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id)
INNER JOIN customer
ON customer.cus_id = zahialga.customer_cus_id
WHERE zahialga_ognoo = '2016-10-18';
27. /*10000-30000 hoorond unetei zahialagdsan hooliig zahialagdsan
ognoogoor ni erembelj haruulah*/
SELECT zahialga_ognoo, hool_ner, zahialga_une
FROM zahialga INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
WHERE zahialga.zahialga_une
BETWEEN 10000 AND 20000
GROUP BY zahialga_ognoo asc;
/*Onoodor hiigdsen zahialguudiig zahialgiin dugaar,
zahialagdsan hoolnii ner, hoolnii torol gesen baganuudaar haruulah*/
SELECT zahialga_id, hool_ner, htl_ner
FROM (zahialga INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id)
INNER JOIN hool_torol_lavlah
ON hool.hool_htl_id = hool_torol_lavlah.htl_id
WHERE zahialga.zahialga_ognoo = '2016-10-18';
28. /*10000-aas deesh zahialga buyu hvrgelt hiilegsen hereglegchiin
neriig zahialga hiisen restaurantiin ner , haygtai ni gargah */
SELECT cus_ner, zahialga_une, zahialga_ognoo, hurgelt_id, hurgelt_tolov
FROM (zahialga INNER JOIN customer
ON zahialga.customer_cus_id = customer.cus_id)
INNER JOIN hurgelt
ON zahialga.zahialga_id = hurgelt.zahialga_zahialga_id
WHERE zahialga.zahialga_une > '10000'
ORDER BY zahialga_ognoo asc;
/*5. hvrgegdsen hooliig hereglegchiin ner, hvrgeh hayg,
hoolnii nertei haruulah*/
SELECT cus_ner, z_hurgeh_hayg, hool_ner, hurgelt_tolov
FROM (zahialga INNER JOIN customer
ON zahialga.customer_cus_id = customer.cus_id)
INNER JOIN hool ON zahialga.hool_hool_id = hool.hool_id
INNER JOIN hurgelt ON hurgelt.zahialga_zahialga_id = zahialga.zahialga_id
WHERE zahialga.zahialga_ognoo > '2016-10-01'
AND hurgelt.hurgelt_tolov like '%хүргэгдсэн%';
29. /*6. Suuliin 2 sard zahialgdsan hoolnii niit uniig haruulah
(hoolnii ner, hoolnii une, zarsan une niit orlogo)*/
SELECT hool_ner, lavlah_une, zahialga_une, hool_too
FROM zahialga INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
INNER JOIN une_lavlah
ON hool.hool_lavlah_id = une_lavlah.lavlah_id
WHERE MONTH(zahialga_ognoo) > MONTH(now()) - 2;
гадаад холболт
/*1. Ene sard hurgelt hiigdesen zahialguudaas tsutslalt
hiigdeegvi zahialgiig medeelliig hereglegchtei ni hamt haruulah */
30. SELECT zahialga_id, zahialga_ognoo, z_hurgeh_hayg, hool_ner, tsuts_id,
tsuts_ognoo, tsuts_shaltgaan
FROM zahialga RIGHT JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
LEFT JOIN tsutslalt
ON zahialga.zahialga_id = tsutslalt.zahialga_zahialga_id
WHERE tsutslalt.zahialga_zahialga_id is null AND zahialga.zahialga_id >'2016-11-01'
AND zahialga.zahialga_ognoo < '2016-11-31';
/*2. zahialga hiisen bolovch hvrgelt hiigdeegvi baigaa zahialga,
bolon zahialagchiin medeelliig haruulah */
SELECT zahialga_id, zahialga_ognoo, hurgelt_id, hurgelt_tolov, zahialga_une, hool_too,
cus_ner, hool_too, hool_ner
FROM zahialga RIGHT JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
right JOIN customer
ON zahialga.customer_cus_id = customer.cus_id
LEFT JOIN hurgelt
ON zahialga.zahialga_id = hurgelt.hurgelt_id
WHERE hurgelt.zahialga_zahialga_id is null
AND zahialga.zahialga_ognoo >'2016-11-01'
31. AND zahialga.zahialga_ognoo < '2016-12-15';
/*3. ene jil hoolnii torol tus bvreer niit heden
togrog olsoniig haruulah (hoolnii torol, une
hoolnii too, niit olson orlogo)*/
SELECT hool_torol_lavlah.htl_ner, lavlah_une, SUM(zahialga.zahialga_une) AS
Niit_Orlogo
FROM zahialga RIGHT JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
RIGHT JOIN hool_torol_lavlah
ON hool.hool_htl_id = hool_torol_lavlah.htl_id
LEFT JOIN une_lavlah
ON hool.hool_lavlah_id = une_lavlah.lavlah_id
WHERE zahialga.zahialga_ognoo > '2016-10-01'
AND zahialga.zahialga_ognoo < '2016-12-15'
group by hool_torol_lavlah.htl_ner;
4. Индекс үүсгэж ашиглах, Процедур, курсор, сторед функц
/*1. ажилтны код нь оролтын параметр.
32. Тухайн ажилтны нийт авсан захиалгын тоог харуулах*/
DELIMITER //
CREATE PROCEDURE proc1(IN empId VARCHAR(5), OUT hurgeltiinToo int)
BEGIN
SELECT COUNT(zahialga.songo_s_ajiltan_id) INTO zahialgaToo
FROM zahialga INNER JOIN songo
ON zahialga.songo_s_ajiltan_id = songo.s_aijltan_id
WHERE songo.s_aijltan_id = empId;
END //
DELIMITER ;
SET @zahialgaToo='0';
CALL proc1('EMP02', @zahialgaToo);
SELECT @zahialgaToo;
/*2. хоолны код нь оролтын параметр, захиалгаас олсон ашиг гаралтын параметр.
Тухайн хоолны нийт захиалагдсан төлбөрийг бодож ашиг-д олгоно. */
100000 > utga // Хангалтгүй
100000 < utga > 200000 // Дундаж
200000 < utga // Хангалттай
DELIMITER //
CREATE PROCEDURE tailan(IN hoolId int, OUT ashig varchar(45))
BEGIN
DECLARE orlogo int;
SELECT SUM(zahialga.zahialga_une) INTO orlogo
FROM zahialga INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
WHERE zahialga.hool_hool_id = hoolId;
IF orlogo <= 100000 THEN select concat(orlogo, ':Hangaltgui') into ashig;
33. ELSE IF orlogo > 100000 AND orlogo <= 200000 THEN select concat(orlogo, ':Dundaj') into
ashig;
ELSE IF orlogo > 200000 THEN select concat(orlogo , ':Hangalttai') into ashig;
END IF;
END IF;
END IF;
END //
DELIMITER ;
SET @ashig='0';
CALL tailan('5', @ashig);
SELECT @ashig;
Индекс
/*index vvsgeegvi select*/
SELECT zahialga_id, zahialga_ognoo, zahialga_une, cus_ner, z_hurgeh_hayg, hool_too,
s_aijltan_id, hool_ner
FROM zahialga INNER JOIN customer
ON zahialga.customer_cus_id = customer.cus_id
INNER JOIN songo
ON zahialga.songo_s_ajiltan_id = songo.s_aijltan_id
INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
WHERE zahialga.zahialga_ognoo > '2016-10-15'
GROUP BY zahialga.zahialga_ognoo;
CREATE INDEX zahialga_index
ON zahialga(zahialga_ognoo);
SELECT zahialga_id, zahialga_ognoo, zahialga_une, cus_ner, z_hurgeh_hayg, hool_too,
s_aijltan_id, hool_ner
FROM zahialga INNER JOIN customer
34. ON zahialga.customer_cus_id = customer.cus_id
INNER JOIN songo
ON zahialga.songo_s_ajiltan_id = songo.s_aijltan_id
INNER JOIN hool
ON zahialga.hool_hool_id = hool.hool_id
WHERE zahialga.zahialga_ognoo > '2016-10-15'
GROUP BY zahialga.zahialga_une;
ДҮГНЭЛТ
Энэхүү систем нь үйлчлүүлэгч ашиглахад хялбар бөгөөд онлайнаар захиалга хийдэг учраас
цаг зав хэмнэдэг. Тухайлбал ажил дээрээ өдрийн хоолондоо гарах завгүй үедээ, замын
түгжрэлээс болоод гарч чадахгүй үедээ, хайртай дотны хүмүүсдээ амтат хоол идүүлэхийг
хүссэн үедээ энэ үйлчилгээг ашиглах боломжтой.