เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจฆเฉเจจเฉเจ เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจฌเฉเจเจฎเจเจธ เจฆเฉเจเจฐเจพ เจนเจพเจตเฉ เจฐเจนเฉ เจนเฉ, เจเฉ เจเจฟ SQL เจญเจพเจธเจผเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจเฅค เจเฉฐเจจเจพ เจเจผเจฟเจเจฆเจพ เจเจฟ เจเฉฑเจญเจฐ เจฐเจนเฉ เจฐเฉเจชเจพเจ เจจเฉเฉฐ NoSQL เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจเจธ เจฎเจพเจฐเจเฉเจ เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจฒเจ เจเฉฑเจ เจจเจฟเจธเจผเจเจฟเจค เจธเจฅเจพเจจ เจฌเจฃเจพเจเจฃ เจตเจฟเฉฑเจ เจเจพเจฎเจฏเจพเจฌ เจฐเจนเฉ, เจชเจฐ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจฌเฉเจเจฎเจเจธ เจฎเจฐเจจ เจตเจพเจฒเฉ เจจเจนเฉเจ เจนเจจ, เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจธเจฐเจเจฐเจฎเฉ เจจเจพเจฒ เจตเจฐเจคเฉ เจเจพ เจฐเจนเฉ เจนเจจเฅค
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจ เจเฉฑเจ เจเจพเจฐเจเจธเจผเฉเจฒ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจงเจพเจฐเจจเจพ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ. เจฌเจฟเจนเจคเจฐ เจธเจฎเจ เจฒเจ, เจฎเฉเจ เจเจธเจฆเฉ เจคเฉเจฒเจจเจพ เจเจฒเจพเจธเฉเจเจฒ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจฎเจพเจกเจฒ เจจเจพเจฒ เจเจฐเจพเจเจเจพเฅค เจเฉฐเจเจฐเจจเฉเฉฑเจ 'เจคเฉ เจชเจพเจ เจเจ เจตเฉฑเจ-เจตเฉฑเจ SQL เจเฉเจธเจเจพเจ เจฆเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจเจฆเจพเจนเจฐเจฃ เจตเจเฉเจ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพเฅค
เจเจพเจฃ เจชเจเจพเจฃ
เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจเฉเจฌเจฒ เจ เจคเฉ เจซเฉเจฒเจกเจพเจ 'เจคเฉ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจเฅค เจเฉฑเจ เจซเฉฐเจเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ, เจเจฒเจพเจธเจพเจ เจ เจคเฉ เจซเฉฐเจเจธเจผเจจ เจเฉเจฐเจฎเจตเจพเจฐ เจเจธเจฆเฉ เจฌเจเจพเจ เจตเจฐเจคเฉ เจเจพเจฃเจเฉเฅค N เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจคเจฐ เจจเฉเฉฐ N เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจตเจเฉเจ เจฆเจฐเจธเจพเจเจ เจเจพเจตเฉเจเจพเฅค เจเฉเจฌเจฒ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจธเจฌเฉฐเจงเจพเจ เจฆเฉ เจฌเจเจพเจ, เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจตเฉเจเฉ เจเฉ เจเจฒเจพเจธ เจฆเฉเจเจ เจตเจธเจคเฉเจเจ เจจเฉเฉฐ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเจจ เจเจฟเจธ เจจเจพเจฒ เจเฉเจจเฉเจเจธเจผเจจ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉเฅค JOIN เจฆเฉ เจฌเจเจพเจ เจซเฉฐเจเจธเจผเจจ เจฐเจเจจเจพ เจตเจฐเจคเฉ เจเจพเจตเฉเจเฉเฅค
เจเจพเจฐเจเจพเจ 'เจคเฉ เจธเจฟเฉฑเจงเฉ เจเจพเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจฎเฉเจ เจกเฉเจฎเฉเจจ เจคเจฐเจ เจฆเฉ เจเฉฐเจฎ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจพเจเจเจพ. DDL เจฒเจ เจฎเฉเจ PostgreSQL เจธเฉฐเจเฉเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเจพเฅค เจเจพเจฐเจเจธเจผเฉเจฒ เจฒเจ เจเจธเจฆเจพ เจเจชเจฃเจพ เจธเฉฐเจเฉเจเจธ เจนเฉเฅค
เจเฉเจฌเจฒ เจ เจคเฉ เจเฉเจคเจฐ
เจจเจพเจฎ เจ เจคเฉ เจเฉเจฎเจค เจเฉเจคเจฐเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจงเจพเจฐเจจ Sku เจตเจธเจคเฉ:
เจธเฉฐเจฌเฉฐเจงเจค
CREATE TABLE Sku
(
id bigint NOT NULL,
name character varying(100),
price numeric(10,5),
CONSTRAINT id_pkey PRIMARY KEY (id)
)
เจเจพเจฐเจเจธเจผเฉเจฒ
CLASS Sku;
name = DATA STRING[100] (Sku);
price = DATA NUMERIC[10,5] (Sku);
เจ เจธเฉเจ เจฆเฉ เจฆเจพ เจเจฒเจพเจจ เจเจฐเจฆเฉ เจนเจพเจ เจซเฉฐเจเจธเจผเจจ, เจเฉ เจเฉฑเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ Sku เจจเฉเฉฐ เจเจจเจชเฉเจ เจตเจเฉเจ เจฒเฉเจเจฆเฉ เจนเจจ เจ เจคเฉ เจเฉฑเจ เจฎเฉเฉฑเจขเจฒเฉ เจเจฟเจธเจฎ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเจจเฅค
เจเจน เจฎเฉฐเจจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเจฟ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจเจฒ DBMS เจตเจฟเฉฑเจ เจนเจฐเฉเจ เจตเจธเจคเฉ เจตเจฟเฉฑเจ เจเฉเจ เจ เฉฐเจฆเจฐเฉเจจเฉ เจเฉเจก เจนเฉเจตเฉเจเจพ เจเฉ เจเจชเจฃเฉ เจเจช เจคเจฟเจเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉเจเจฐ เจฒเฉเฉ เจนเฉเจตเฉ เจคเจพเจ เจเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจเจ เจเจคเจชเจพเจฆ/เจธเจเฉเจฐ/เจธเจชเจฒเจพเจเจฐ เจฒเจ เจเฉเจฎเจค เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเฉเจเฅค เจเจน เจธเจฎเฉเจ เจฆเฉ เจจเจพเจฒ เจฌเจฆเจฒ เจธเจเจฆเจพ เจนเฉ, เจเจธ เจฒเจ เจเจ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจฎเจพเจ เจเฉเจคเจฐ เจเฉเฉเฉเจเฅค เจฎเฉเจ เจเฉเจก เจจเฉเฉฐ เจเฉเจเจพ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉเจเจ เจฒเจ เจเฉเจฌเจฒ เจเฉเจธเจผเจฟเจค เจเจฐเจจเจพ เจเฉฑเจก เจฆเฉเจตเจพเจเจเจพ:
เจธเฉฐเจฌเฉฐเจงเจค
CREATE TABLE prices
(
skuId bigint NOT NULL,
storeId bigint NOT NULL,
supplierId bigint NOT NULL,
dateTime timestamp without time zone,
price numeric(10,5),
CONSTRAINT prices_pkey PRIMARY KEY (skuId, storeId, supplierId)
)
เจเจพเจฐเจเจธเจผเฉเจฒ
CLASS Sku;
CLASS Store;
CLASS Supplier;
dateTime = DATA DATETIME (Sku, Store, Supplier);
price = DATA NUMERIC[10,5] (Sku, Store, Supplier);
เจธเฉเจเฉ-เจชเฉฑเจคเจฐ
เจเจเจฐเฉ เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจธเจพเจฐเฉเจเจ เจเฉเฉฐเจเฉเจเจ เจ เจคเฉ เจฎเจฟเจคเฉ 'เจคเฉ เจเฉฑเจ เจธเฉเจเจเจพเจเจ เจฌเจฃเจพเจตเจพเจเจเฉ เจคเจพเจ เจเฉ เจ เจธเฉเจ เจเฉฑเจ เจเจพเจธ เจธเจฎเฉเจ เจฒเจ เจเฉเจฎเจค เจจเฉเฉฐ เจคเฉเจเจผเฉ เจจเจพเจฒ เจฒเฉฑเจญ เจธเจเฉเจเฅค
เจธเฉฐเจฌเฉฐเจงเจค
CREATE INDEX prices_date
ON prices
(skuId, storeId, supplierId, dateTime)
เจเจพเจฐเจเจธเจผเฉเจฒ
INDEX Sku sk, Store st, Supplier sp, dateTime(sk, st, sp);
เจเฉฐเจฎ
เจฆเฉ เจ
เจจเฉเจธเจพเจฐเฉ เจคเฉฑเจ เจฒเจฟเจ เจฎเฉเจเจพเจฌเจฒเจคเจจ เจธเจงเจพเจฐเจจ เจธเจฎเฉฑเจธเจฟเจ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ
เจชเจนเจฟเจฒเจพเจ, เจเจ เจกเฉเจฎเฉเจจ เจคเจฐเจ เจฆเฉ เจเฉเจธเจผเจฃเจพ เจเจฐเฉเจ (เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจฒเจ เจเจน เจเจชเจฐเฉเจเจค เจฒเฉเจ เจตเจฟเฉฑเจ เจธเจฟเฉฑเจงเจพ เจเฉเจคเจพ เจเจฟเจ เจนเฉ)เฅค
CLASS Department;
name = DATA STRING[100] (Department);
CLASS Employee;
department = DATA Department (Employee);
chief = DATA Employee (Employee);
name = DATA STRING[100] (Employee);
salary = DATA NUMERIC[14,2] (Employee);
เจเจพเจธเจ 1.1
เจเจนเจจเจพเจ เจเจฐเจฎเจเจพเจฐเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเฉ เจเฉ เจเจชเจฃเฉ เจคเจคเจเจพเจฒ เจธเฉเจชเจฐเจตเจพเจเจเจผเจฐ เจคเฉเจ เจตเฉฑเจง เจคเจจเจเจพเจน เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเจจเฅค
เจธเฉฐเจฌเฉฐเจงเจค
select a.*
from employee a, employee b
where b.id = a.chief_id
and a.salary > b.salary
เจเจพเจฐเจเจธเจผเฉเจฒ
SELECT name(Employee a) WHERE salary(a) > salary(chief(a));
เจเจพเจธเจ 1.2
เจเจจเฉเจนเจพเจ เจเจฐเจฎเจเจพเจฐเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจฌเจฃเจพเจ เจเฉ เจเจชเจฃเฉ เจตเจฟเจญเจพเจ เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจตเฉฑเจง เจคเจจเจเจพเจน เจฒเฉเจเจฆเฉ เจนเจจ
เจธเฉฐเจฌเฉฐเจงเจค
select a.*
from employee a
where a.salary = ( select max(salary) from employee b
where b.department_id = a.department_id )
เจเจพเจฐเจเจธเจผเฉเจฒ
maxSalary 'ะะฐะบัะธะผะฐะปัะฝะฐั ะทะฐัะฟะปะฐัะฐ' (Department s) =
GROUP MAX salary(Employee e) IF department(e) = s;
SELECT name(Employee a) WHERE salary(a) = maxSalary(department(a));
// ะธะปะธ ะตัะปะธ "ะทะฐะธะฝะปะฐะนะฝะธัั"
SELECT name(Employee a) WHERE
salary(a) = maxSalary(GROUP MAX salary(Employee e) IF department(e) = department(a));
เจฆเฉเจตเฉเจ เจฒเจพเจเฉเจเจฐเจจ เจฌเจฐเจพเจฌเจฐ เจนเจจเฅค เจชเจนเจฟเจฒเฉ เจเฉเจธ เจฒเจ, เจเฉฑเจ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ CREATE VIEW เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเฉ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจชเจนเจฟเจฒเจพเจ เจเจธ เจตเจฟเฉฑเจ เจเจฟเจธเฉ เจเจพเจธ เจตเจฟเจญเจพเจ เจฒเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจคเจจเจเจพเจน เจฆเฉ เจเจฃเจจเจพ เจเจฐเฉเจเจพเฅค เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจธเจชเจธเจผเจเจคเจพ เจฒเจ, เจฎเฉเจ เจชเจนเจฟเจฒเฉ เจเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเจพ, เจเจฟเจเจเจเจฟ เจเจน เจนเฉฑเจฒ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจขเฉฐเจ เจจเจพเจฒ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉเฅค
เจเจพเจธเจ 1.3
เจตเจฟเจญเจพเจ เจเจเจกเฉ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเฉ, เจเจฐเจฎเจเจพเจฐเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจเจฟเจธ เจตเจฟเฉฑเจ 3 เจฒเฉเจเจพเจ เจคเฉเจ เจตเฉฑเจง เจจเจนเฉเจ เจนเฉเฅค
เจธเฉฐเจฌเฉฐเจงเจค
select department_id
from employee
group by department_id
having count(*) <= 3
เจเจพเจฐเจเจธเจผเฉเจฒ
countEmployees 'ะะพะปะธัะตััะฒะพ ัะพัััะดะฝะธะบะพะฒ' (Department d) =
GROUP SUM 1 IF department(Employee e) = d;
SELECT Department d WHERE countEmployees(d) <= 3;
เจเจพเจธเจ 1.4
เจเจนเจจเจพเจ เจเจฐเจฎเจเจพเจฐเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเฉ เจเจฟเจจเฉเจนเจพเจ เจเฉเจฒ เจเจธเฉ เจตเจฟเจญเจพเจ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเจพ เจเฉเจ เจฎเจจเฉเจจเฉเจค เจฎเฉเจจเฉเจเจฐ เจจเจนเฉเจ เจนเฉเฅค
เจธเฉฐเจฌเฉฐเจงเจค
select a.*
from employee a
left join employee b on (b.id = a.chief_id and b.department_id = a.department_id)
where b.id is null
เจเจพเจฐเจเจธเจผเฉเจฒ
SELECT name(Employee a) WHERE NOT (department(chief(a)) = department(a));
เจเจพเจธเจ 1.5
เจ เจงเจฟเจเจคเจฎ เจเฉเฉฑเจฒ เจเจฐเจฎเจเจพเจฐเฉ เจคเจจเจเจพเจน เจฆเฉ เจจเจพเจฒ เจตเจฟเจญเจพเจ IDs เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจฒเฉฑเจญเฉ.
เจธเฉฐเจฌเฉฐเจงเจค
with sum_salary as
( select department_id, sum(salary) salary
from employee
group by department_id )
select department_id
from sum_salary a
where a.salary = ( select max(salary) from sum_salary )
เจเจพเจฐเจเจธเจผเฉเจฒ
salarySum 'ะะฐะบัะธะผะฐะปัะฝะฐั ะทะฐัะฟะปะฐัะฐ' (Department d) =
GROUP SUM salary(Employee e) IF department(e) = d;
maxSalarySum 'ะะฐะบัะธะผะฐะปัะฝะฐั ะทะฐัะฟะปะฐัะฐ ะพัะดะตะปะพะฒ' () =
GROUP MAX salarySum(Department d);
SELECT Department d WHERE salarySum(d) = maxSalarySum();
เจเจ เจฆเฉเจเฉ เจคเฉเจ เจนเฉเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเฉฐเจฎเจพเจ เจตเฉฑเจฒ เจตเจงเฉเจ
เจเจพเจธเจ 2.1
เจเจฟเจนเฉเฉ เจตเจฟเจเจฐเฉเจคเจพเจตเจพเจ เจจเฉ 1997 เจตเจฟเฉฑเจ เจเจคเจชเจพเจฆ เจจเฉฐเจฌเจฐ 30 เจฆเฉ 1 เจคเฉเจ เจตเฉฑเจง เจฏเฉเจจเจฟเจ เจตเฉเจเฉ เจธเจจ?
เจกเฉเจฎเฉเจจ เจคเจฐเจ (เจเจฐเจกเฉเจฌเฉเจเจฎเจเจธ 'เจคเฉ เจชเจนเจฟเจฒเจพเจ เจตเจพเจเจ เจ เจธเฉเจ เจเฉเจธเจผเจฃเจพ เจจเฉเฉฐ เจเฉฑเจก เจฆเจฟเฉฐเจฆเฉ เจนเจพเจ):
CLASS Employee 'ะัะพะดะฐะฒะตั';
lastName 'ะคะฐะผะธะปะธั' = DATA STRING[100] (Employee);
CLASS Product 'ะัะพะดัะบั';
id = DATA INTEGER (Product);
name = DATA STRING[100] (Product);
CLASS Order 'ะะฐะบะฐะท';
date = DATA DATE (Order);
employee = DATA Employee (Order);
CLASS Detail 'ะกััะพะบะฐ ะทะฐะบะฐะทะฐ';
order = DATA Order (Detail);
product = DATA Product (Detail);
quantity = DATA NUMERIC[10,5] (Detail);
เจธเฉฐเจฌเฉฐเจงเจค
select LastName
from Employees as e
where (
select sum(od.Quantity)
from [Order Details] as od
where od.ProductID = 1 and od.OrderID in (
select o.OrderID
from Orders as o
where year(o.OrderDate) = 1997 and e.EmployeeID = o.EmployeeID)
) > 30
เจเจพเจฐเจเจธเจผเฉเจฒ
sold (Employee e, INTEGER productId, INTEGER year) =
GROUP SUM quantity(OrderDetail d) IF
employee(order(d)) = e AND
id(product(d)) = productId AND
extractYear(date(order(d))) = year;
SELECT lastName(Employee e) WHERE sold(e, 1, 1997) > 30;
เจเจพเจธเจ 2.2
เจนเจฐเฉเจ เจเจฐเฉเจฆเจฆเจพเจฐ (เจจเจพเจฎ, เจเจชเจจเจพเจฎ) เจฒเจ, เจเจน เจฆเฉ เจตเจธเจคเฉเจเจ (เจจเจพเจฎ) เจฒเฉฑเจญเฉ เจเจฟเจจเฉเจนเจพเจ 'เจคเฉ เจเจฐเฉเจฆเจฆเจพเจฐ เจจเฉ 1997 เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจตเฉฑเจง เจชเฉเจธเจพ เจเจฐเจ เจเฉเจคเจพ เจธเฉเฅค
เจ เจธเฉเจ เจชเจฟเจเจฒเฉ เจเจฆเจพเจนเจฐเจจ เจคเฉเจ เจกเฉเจฎเฉเจจ เจคเจฐเจ เจจเฉเฉฐ เจตเจงเจพเจเจเจฆเฉ เจนเจพเจ:
CLASS Customer 'ะะปะธะตะฝั';
contactName 'ะคะะ' = DATA STRING[100] (Customer);
customer = DATA Customer (Order);
unitPrice = DATA NUMERIC[14,2] (Detail);
discount = DATA NUMERIC[6,2] (Detail);
เจธเฉฐเจฌเฉฐเจงเจค
SELECT ContactName, ProductName FROM (
SELECT c.ContactName, p.ProductName
, ROW_NUMBER() OVER (
PARTITION BY c.ContactName
ORDER BY SUM(od.Quantity * od.UnitPrice * (1 - od.Discount)) DESC
) AS RatingByAmt
FROM Customers c
JOIN Orders o ON o.CustomerID = c.CustomerID
JOIN [Order Details] od ON od.OrderID = o.OrderID
JOIN Products p ON p.ProductID = od.ProductID
WHERE YEAR(o.OrderDate) = 1997
GROUP BY c.ContactName, p.ProductName
) t
WHERE RatingByAmt < 3
เจเจพเจฐเจเจธเจผเฉเจฒ
sum (Detail d) = quantity(d) * unitPrice(d) * (1 - discount(d));
bought 'ะัะฟะธะป' (Customer c, Product p, INTEGER y) =
GROUP SUM sum(Detail d) IF
customer(order(d)) = c AND
product(d) = p AND
extractYear(date(order(d))) = y;
rating 'ะ ะตะนัะธะฝะณ' (Customer c, Product p, INTEGER y) =
PARTITION SUM 1 ORDER DESC bought(c, p, y), p BY c, y;
SELECT contactName(Customer c), name(Product p) WHERE rating(c, p, 1997) < 3;
PARTITION เจเจชเจฐเฉเจเจฐ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจธเจฟเจงเจพเจเจค 'เจคเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ: เจเจน SUM (เจเฉฑเจฅเฉ 1) เจคเฉเจ เจฌเจพเจ เจฆ เจจเจฟเจฐเจฆเจฟเจธเจผเจ เจธเจฎเฉเจเจฐเจจ เจจเฉเฉฐ เจเฉเฉเจฆเจพ เจนเฉ, เจจเจฟเจธเจผเจเจฟเจค เจธเจฎเฉเจนเจพเจ เจฆเฉ เจ เฉฐเจฆเจฐ (เจเฉฑเจฅเฉ เจเจพเจนเจ เจ เจคเฉ เจธเจพเจฒ, เจชเจฐ เจเฉเจ เจตเฉ เจธเจฎเฉเจเจฐเจจ เจนเฉ เจธเจเจฆเจพ เจนเฉ), ORDER เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจธเจฎเฉเจเจฐเจจเจพเจ เจฆเฉเจเจฐเจพ เจธเจฎเฉเจนเจพเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจเจพเจเจเฉ เจเจฐเจฆเจพ เจนเฉ ( เจเฉฑเจฅเฉ เจเจฐเฉเจฆเจฟเจ, เจ เจคเฉ เจเฉเจเจฐ เจฌเจฐเจพเจฌเจฐ เจนเฉ, เจคเจพเจ เจ เฉฐเจฆเจฐเฉเจจเฉ เจเจคเจชเจพเจฆ เจเฉเจก เจฆเฉ เจ เจจเฉเจธเจพเจฐ)เฅค
เจเจพเจธเจ 2.3
เจฎเฉเจเฉเจฆเจพ เจเจฐเจกเจฐเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจจ เจฒเจ เจธเจชเจฒเจพเจเจฐเจพเจ เจคเฉเจ เจเจฟเฉฐเจจเฉ เจธเจพเจฎเจพเจจ เจฎเฉฐเจเจตเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเจ เจกเฉเจฎเฉเจจ เจคเจฐเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเฉเจ:
CLASS Supplier 'ะะพััะฐะฒัะธะบ';
companyName = DATA STRING[100] (Supplier);
supplier = DATA Supplier (Product);
unitsInStock 'ะััะฐัะพะบ ะฝะฐ ัะบะปะฐะดะต' = DATA NUMERIC[10,3] (Product);
reorderLevel 'ะะพัะผะฐ ะฟัะพะดะฐะถะธ' = DATA NUMERIC[10,3] (Product);
เจธเฉฐเจฌเฉฐเจงเจค
select s.CompanyName, p.ProductName, sum(od.Quantity) + p.ReorderLevel โ p.UnitsInStock as ToOrder
from Orders o
join [Order Details] od on o.OrderID = od.OrderID
join Products p on od.ProductID = p.ProductID
join Suppliers s on p.SupplierID = s.SupplierID
where o.ShippedDate is null
group by s.CompanyName, p.ProductName, p.UnitsInStock, p.ReorderLevel
having p.UnitsInStock < sum(od.Quantity) + p.ReorderLevel
เจเจพเจฐเจเจธเจผเฉเจฒ
orderedNotShipped 'ะะฐะบะฐะทะฐะฝะพ, ะฝะพ ะฝะต ะพัะณััะถะตะฝะพ' (Product p) =
GROUP SUM quantity(OrderDetail d) IF product(d) = p;
toOrder 'ะ ะทะฐะบะฐะทั' (Product p) = orderedNotShipped(p) + reorderLevel(p) - unitsInStock(p);
SELECT companyName(supplier(Product p)), name(p), toOrder(p) WHERE toOrder(p) > 0;
เจเฉฑเจ เจคเจพเจฐเฉ เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ
เจ เจคเฉ เจเจเจฐเฉ เจเจฆเจพเจนเจฐเจฃ เจฎเฉเจฐเฉ เจตเฉฑเจฒเฉเจ เจจเจฟเฉฑเจเฉ เจคเฉเจฐ 'เจคเฉ เจนเฉเฅค เจเฉฑเจ เจธเฉเจธเจผเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจฆเจพ เจคเจฐเจ เจนเฉ. เจฒเฉเจ เจเฉฑเจ เจฆเฉเจเฉ เจฆเฉ เจฆเฉเจธเจค เจนเฉ เจธเจเจฆเฉ เจนเจจ เจ เจคเฉ เจเฉฑเจ เจฆเฉเจเฉ เจจเฉเฉฐ เจชเจธเฉฐเจฆ เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค เจเฉฑเจ เจเจพเจฐเจเจธเจผเฉเจฒ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ:
CLASS Person;
likes = DATA BOOLEAN (Person, Person);
friends = DATA BOOLEAN (Person, Person);
เจฆเฉเจธเจคเฉ เจฒเจ เจธเฉฐเจญเจพเจตเจฟเจค เจเจฎเฉเจฆเจตเจพเจฐเจพเจ เจจเฉเฉฐ เจฒเฉฑเจญเจฃเจพ เจเจผเจฐเฉเจฐเฉ เจนเฉ. เจตเจงเฉเจฐเฉ เจฐเจธเจฎเฉ เจคเฉเจฐ 'เจคเฉ, เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจฐเฉ เจฒเฉเจเจพเจ เจจเฉเฉฐ A, B, C เจฒเฉฑเจญเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟเจตเฉเจ เจเจฟ A B เจฆเจพ เจฆเฉเจธเจค เจนเฉ, เจ
เจคเฉ B C เจจเจพเจฒ เจฆเฉเจธเจค เจนเฉ, A เจจเฉเฉฐ C เจชเจธเฉฐเจฆ เจนเฉ, เจชเจฐ A C เจจเจพเจฒ เจฆเฉเจธเจค เจจเจนเฉเจ เจนเฉเฅค
เจเฉฑเจ เจซเฉฐเจเจธเจผเจจเจฒ เจกเจพเจเจพเจฌเฉเจธ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, เจชเฉเฉฑเจเจเจฟเฉฑเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉ:
SELECT Person a, Person b, Person c WHERE
likes(a, c) AND NOT friends(a, c) AND
friends(a, b) AND friends(b, c);
เจชเจพเจ เจ เจจเฉเฉฐ เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ SQL เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจเจช เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ เจเจคเจธเจผเจพเจนเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจฎเฉฐเจจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจนเจพเจกเฉ เจชเจธเฉฐเจฆเฉเจฆเจพ เจฒเฉเจเจพเจ เจจเจพเจฒเฉเจ เจฌเจนเฉเจค เจเฉฑเจ เจฆเฉเจธเจค เจนเจจเฅค เจเจธ เจฒเจ เจเจน เจตเฉฑเจเจฐเฉ เจเฉเจฌเจฒ เจตเจฟเฉฑเจ เจนเจจ. เจเฉ เจธเจซเจฒ เจนเฉ เจเจพเจเจฆเจพ เจนเฉ, เจคเจพเจ เจฆเฉ เจธเจฟเจคเจพเจฐเจฟเจเจ เจตเจพเจฒเจพ เจเฉฐเจฎ เจตเฉ เจนเฉ. เจเจธ เจตเจฟเฉฑเจ, เจฆเฉเจธเจคเฉ เจธเจฎเจฐเฉเจช เจจเจนเฉเจ เจนเฉ. เจเฉฑเจ เจซเฉฐเจเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ 'เจคเฉ เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ:
SELECT Person a, Person b, Person c WHERE
likes(a, c) AND NOT friends(a, c) AND
(friends(a, b) OR friends(b, a)) AND
(friends(b, c) OR friends(c, b));
UPD: เจคเฉเจ เจชเจนเจฟเจฒเฉ เจ
เจคเฉ เจฆเฉเจเฉ เจคเจพเจฐเฉ เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ เจฆเจพ เจนเฉฑเจฒ
SELECT
pl.PersonAID
,pf.PersonAID
,pff.PersonAID
FROM Persons AS p
--ะะฐะนะบะธ
JOIN PersonRelationShip AS pl ON pl.PersonAID = p.PersonID
AND pl.Relation = 'Like'
--ะััะทัั
JOIN PersonRelationShip AS pf ON pf.PersonAID = p.PersonID
AND pf.Relation = 'Friend'
--ะััะทัั ะััะทะตะน
JOIN PersonRelationShip AS pff ON pff.PersonAID = pf.PersonBID
AND pff.PersonBID = pl.PersonBID
AND pff.Relation = 'Friend'
--ะัั ะฝะต ะดััะถะฐั
LEFT JOIN PersonRelationShip AS pnf ON pnf.PersonAID = p.PersonID
AND pnf.PersonBID = pff.PersonBID
AND pnf.Relation = 'Friend'
WHERE pnf.PersonAID IS NULL
;WITH PersonRelationShipCollapsed AS (
SELECT pl.PersonAID
,pl.PersonBID
,pl.Relation
FROM #PersonRelationShip AS pl
UNION
SELECT pl.PersonBID AS PersonAID
,pl.PersonAID AS PersonBID
,pl.Relation
FROM #PersonRelationShip AS pl
)
SELECT
pl.PersonAID
,pf.PersonBID
,pff.PersonBID
FROM #Persons AS p
--ะะฐะนะบะธ
JOIN PersonRelationShipCollapsed AS pl ON pl.PersonAID = p.PersonID
AND pl.Relation = 'Like'
--ะััะทัั
JOIN PersonRelationShipCollapsed AS pf ON pf.PersonAID = p.PersonID
AND pf.Relation = 'Friend'
--ะััะทัั ะััะทะตะน
JOIN PersonRelationShipCollapsed AS pff ON pff.PersonAID = pf.PersonBID
AND pff.PersonBID = pl.PersonBID
AND pff.Relation = 'Friend'
--ะัั ะฝะต ะดััะถะฐั
LEFT JOIN PersonRelationShipCollapsed AS pnf ON pnf.PersonAID = p.PersonID
AND pnf.PersonBID = pff.PersonBID
AND pnf.Relation = 'Friend'
WHERE pnf.[PersonAID] IS NULL
เจธเจฟเฉฑเจเจพ
เจเจน เจจเฉเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจฆเจฟเฉฑเจคเฉ เจเจ เจญเจพเจธเจผเจพ เจธเฉฐเจเฉเจเจธ เจฆเจฟเฉฑเจคเฉ เจเจ เจธเฉฐเจเจฒเจช เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ เจตเจฟเจเจฒเจชเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉเฅค SQL เจจเฉเฉฐ เจเจงเจพเจฐ เจตเจเฉเจ เจฒเจฟเจ เจเจฟเจ เจธเฉ, เจ เจคเฉ เจเฉเจเจพ เจธเฉ เจเจฟ เจเจธ เจจเฉเฉฐ เจเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจธเจเฉ เจธเจฎเจพเจจ เจฌเจฃเจพเจเจ เจเจพเจตเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจเฉเจ เจจเฉเฉฐ เจเฉเจตเจฐเจกเจธ, เจตเจฐเจก เจฐเจเจฟเจธเจเจฐ, เจเจฆเจฟ เจฆเฉ เจจเจพเจฎ เจชเจธเฉฐเจฆ เจจเจนเฉเจ เจนเฉ เจธเจเจฆเฉ เจนเจจเฅค เจเฉฑเจฅเฉ เจฎเฉเฉฑเจ เจเฉฑเจฒ เจเจน เจธเฉฐเจเจฒเจช เจนเฉ. เจเฉเจเจฐ เจฒเฉเฉ เจนเฉเจตเฉ, เจคเจพเจ เจคเฉเจธเฉเจ C++ เจ เจคเฉ Python เจฆเฉเจตเฉเจ เจธเจฎเจพเจจ เจธเฉฐเจเฉเจเจธ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจตเจฐเจฃเจฟเจค เจกเฉเจเจพเจฌเฉเจธ เจธเฉฐเจเจฒเจช, เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจซเจพเจเจฆเฉ เจนเจจ:
- เจธเฉเจเจพ. เจเจน เจเฉฑเจ เจฎเฉเจเจพเจฌเจฒเจคเจจ เจตเจฟเจ เจเจคเฉเจเจค เจธเฉเจเจ เจนเฉ เจเฉ เจธเจงเจพเจฐเจจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจธเจชเฉฑเจธเจผเจ เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพเฅค เจชเจฐ เจเฉ เจคเฉเจธเฉเจ เจตเจงเฉเจฐเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเฉเจธเจพเจ เจจเฉเฉฐ เจฆเฉเจเจฆเฉ เจนเฉ (เจเจฆเจพเจนเจฐเจฃ เจตเจเฉเจ, เจคเจพเจฐเจฟเจเจ เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ), เจคเจพเจ, เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจ เจเจฟเจนเฉ เจธเจตเจพเจฒเจพเจ เจจเฉเฉฐ เจฒเจฟเจเจฃเจพ เจฌเจนเฉเจค เจธเฉเจเจพ เจนเฉ.
- เจเจจเจเฉเจชเจธเฉเจฒเฉเจธเจผเจจ. เจเฉเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจตเจฟเฉฑเจ เจฎเฉเจ เจเฉฐเจเจฐเจฎเฉเจกเฉเจเจ เจซเฉฐเจเจธเจผเจจ เจเฉเจธเจผเจฟเจค เจเฉเจคเจพ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจตเฉเจเจฟเจ, เจเจฐเฉเจฆเฉ เจเจฆเจฟ), เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจฆเฉ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจ เจเจ เจธเจจเฅค เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจคเจฐเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจเฉ เจฒเฉเฉ เจนเฉเจตเฉ, เจเจนเจจเจพเจ เจฆเฉ เจคเจฐเจ เจจเฉเฉฐ เจฌเจฆเจฒเฉ เจฌเจฟเจจเจพเจ เจเฉ เจเจนเจจเจพเจ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเฉ เจนเจจเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจตเจฟเจเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจตเฉเจเจฟเจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจตเฉฑเจเจฐเฉเจเจ เจตเจธเจคเฉเจเจ เจคเฉเจ เจเจฟเจฃเจฟเจ เจเจฟเจ เจธเฉ, เจเจฆเฉเจ เจเจฟ เจฌเจพเจเฉ เจคเจฐเจ เจจเจนเฉเจ เจฌเจฆเจฒเฉเจเจพเฅค เจนเจพเจ, เจเจธเจจเฉเฉฐ CREATE VIEW เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ RDBMS เจตเจฟเฉฑเจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจชเจฐ เจเฉ เจธเจพเจฐเจพ เจคเจฐเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฒเจฟเจเจฟเจ เจเจพเจตเฉ เจคเจพเจ เจเจน เจฌเจนเฉเจคเจพ เจชเฉเฉเจนเจจเจฏเฉเจ เจจเจนเฉเจ เจฒเฉฑเจเฉเจเจพเฅค
- เจเฉเจ เจ
เจฐเจฅเจเจค เจ
เฉฐเจคเจฐ เจจเจนเฉเจ. เจ
เจเจฟเจนเจพ เจกเฉเจเจพเจฌเฉเจธ เจซเฉฐเจเจธเจผเจจเจพเจ เจ
เจคเฉ เจเจฒเจพเจธเจพเจ (เจเฉเจฌเจฒ เจ
เจคเฉ เจซเฉเจฒเจกเจพเจ เจฆเฉ เจฌเจเจพเจ) 'เจคเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค เจเจฟเจตเฉเจ เจเจฟ เจเจฒเจพเจธเฉเจเจฒ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจตเจฟเฉฑเจ (เจเฉเจเจฐ เจ
เจธเฉเจ เจเจน เจฎเฉฐเจจ เจฒเจเจ เจเจฟ เจเฉฑเจ เจตเจฟเจงเฉ เจเจฒเจพเจธ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจตเจพเจฒเจพ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจนเฉ เจเจฟเจธ เจจเจพเจฒ เจเจน เจธเฉฐเจฌเฉฐเจงเจฟเจค เจนเฉ)เฅค เจเจธ เจ
เจจเฉเจธเจพเจฐ, เจฏเฉเจจเฉเจตเจฐเจธเจฒ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพเจตเจพเจ เจจเจพเจฒ "เจฆเฉเจธเจค เจฌเจฃเจพเจเจฃเจพ" เจฌเจนเฉเจค เจธเฉเจเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจน เจธเฉฐเจเจฒเจช เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเจพเจฐเจเจเฉเจธเจผเจฒเจคเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจเจชเจฐเฉเจเจฐเจพเจ เจจเฉเฉฐ เจเจฎเจฌเฉเจก เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฟเจตเฉเจ เจเจฟ:
CONSTRAINT sold(Employee e, 1, 2019) > 100 IF name(e) = 'ะะตัั' MESSAGE 'ะงัะพ-ัะพ ะะตัั ะฟัะพะดะฐะตั ัะปะธัะบะพะผ ะผะฝะพะณะพ ะพะดะฝะพะณะพ ัะพะฒะฐัะฐ ะฒ 2019 ะณะพะดั';
- เจตเจฟเจฐเจพเจธเจค เจ เจคเฉ เจชเฉเจฒเฉเจฎเฉเจฐเจซเจฟเจเจผเจฎ. เจเฉฑเจ เจซเฉฐเจเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ CLASS ClassP เจฆเฉเจเจฐเจพ เจฎเจฒเจเฉเจชเจฒ เจตเจฟเจฐเจพเจธเจค เจจเฉเฉฐ เจชเฉเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ: Class1, Class2 เจฎเจฒเจเฉเจชเจฒ เจชเฉเจฒเฉเจฎเฉเจฐเจซเจฟเจเจผเจฎ เจฌเจฃเจพเจเจเจฆเฉ เจ เจคเฉ เจฒเจพเจเฉ เจเจฐเจฆเฉ เจนเจจเฅค เจฎเฉเจ เจธเจผเจพเจเจฆ เจญเจตเจฟเฉฑเจ เจฆเฉ เจฒเฉเจเจพเจ เจตเจฟเฉฑเจ เจฌเจฟเจฒเจเฉเจฒ เจเจฟเจตเฉเจ เจฒเจฟเจเจพเจเจเจพ.
เจญเจพเจตเฉเจ เจเจน เจเฉเจตเจฒ เจเฉฑเจ เจงเจพเจฐเจจเจพ เจนเฉ, เจธเจพเจกเฉ เจเฉเจฒ เจชเจนเจฟเจฒเจพเจ เจนเฉ Java เจตเจฟเฉฑเจ เจเฉเจ เจฒเจพเจเฉเจเจฐเจจ เจนเฉ เจเฉ เจธเจพเจฐเฉ เจเจพเจฐเจเจธเจผเฉเจฒ เจคเจฐเจ เจจเฉเฉฐ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจคเจฐเจ เจตเจฟเฉฑเจ เจ
เจจเฉเจตเจพเจฆ เจเจฐเจฆเจพ เจนเฉเฅค เจจเจพเจฒ เจนเฉ, เจชเฉเจฐเจคเฉเจจเจฟเจงเจคเจพเจตเจพเจ เจฆเจพ เจคเจฐเจ เจ
เจคเฉ เจนเฉเจฐ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจเฉเจเจผเจพเจ เจเจธ เจจเจพเจฒ เจธเฉเฉฐเจฆเจฐเจคเจพ เจจเจพเจฒ เจเฉเฉเฉเจเจ เจนเฉเจเจเจ เจนเจจ, เจเจฟเจธเจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจธเจพเจจเฉเฉฐ เจชเฉเจฐเจพ เจฎเจฟเจฒเจฆเจพ เจนเฉ
เจธเจฐเฉเจค: www.habr.com