Сап, дата жана сан функциялары
Мамычалардагы маанилерди өзгөртүү үчүн күнүмдүк курал топтому
Негизги идея: скалярдык функция бир саптан бир же бир нече маани алат жана ошол сап үчүн бир жаңы маани кайтарат. Көп сапты бирге бүктөгөн агрегаттардан (
SUM, COUNT) айырмаланып, скалярдык функциялар ар бир сапка бир жолудан иштейт жана сап санын эч качан өзгөртпөйт. Сап, дата жана сан функцияларынын үй-бүлөлөрүн өздөштүрүү менен, сиз чийки маалыматты тиркеменин кодуна сүйрөбөй, түз SQLде тазалай, форматтай жана эсептей аласыз.
Теманын аягында сиз:
SUBSTRING,TRIM,REPLACE,UPPER/LOWERжанаCONCATменен текстти кесип, өзгөртө аласыз;DATE_ADD,DATEDIFFменен даталарга арифметика жасап,DATE_FORMATменен форматтай аласыз;ROUND,FLOOR,CEILжанаMODменен тактыкты башкара аласыз;CASTменен типтерди аңдап которо аласыз;- MySQL, PostgreSQL жана SQLite кайда айырмаланарын тааныйсыз.
1. Биздин мисал схема
Төмөндөгү ар бир суроо бир кичине дүкөн базасында иштейт: customers таблицасы (көп текст жана бир дата) жана orders таблицасы (даталар жана акча). Аны бир жолу түзүп, эсиңизде сактаңыз.
CREATE TABLE customers (
id INT PRIMARY KEY,
full_name VARCHAR(60),
email VARCHAR(80),
city VARCHAR(40),
signup_date DATE
);
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
amount DECIMAL(9,3),
placed_at DATETIME
);
INSERT INTO customers VALUES
(1, ' Ada Lovelace', 'ADA@Example.com', 'London', '2023-11-05'),
(2, 'Alan Turing ', 'alan@Example.ORG', 'Manchester', '2024-01-20'),
(3, 'Grace Hopper', 'grace@navy.mil', 'New York', '2024-03-14'),
(4, 'Katherine Johnson', 'kj@nasa.gov', 'Hampton', '2024-06-11');
INSERT INTO orders VALUES
(101, 1, 42.507, '2024-07-01 09:30:00'),
(102, 1, 19.949, '2024-07-15 14:05:00'),
(103, 2, 128.250, '2024-06-20 11:00:00'),
(104, 3, 7.335, '2024-07-03 16:45:00'),
(105, 4, 256.000, '2024-05-28 08:15:00');
Атайын "кир" маалыматка көңүл буруңуз: кээ бир аттарда башында же аягында ашыкча боштуктар бар, ал эми почта даректери каттарды чоң жана кичине тамга менен аралаштырат. Реалдуу маалымат так ушундай көрүнөт, ал эми скалярдык функциялар — аны тартипке келтирүүнүн жолу.