Введение в SQL и логику условий - 1-я часть

- Базы данных - хранилища таблиц - Типы (data type) для колонки - Запросы select, show БД бываюют реляционные и другие - нам надо реляционные Транзакционность - Суть базы данных и самих таблиц да Таблица состоит из записей (строк) и колонок (столбиков) (Смотрим как ее смешно))) создавать и удалять) Таблица должна иметь хотябы одну колонку с id записей. Может иметь индексы и constraints Индексы оссобенно foreign какбы связывают записи в таблицах Поле описывается типом, кол-вом символов, constraints: ’not null’ или ’default ...’ Типы ввели для того чтобы экономить место и проверять ограничения Для рассмотрения sql создадим бедешку для сбора денег на нужды групы(соседей, домов, гаражей без разницы) состоящую из двух таблиц:) - user - payment Введите эти запросы: CREATE TABLE `user` ( `user_id` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(64) NOT NULL COMMENT ’name or address’, `email` CHAR(64) NOT NULL ); insert into user (name, email) values (’Dadas A.’, ’dudas@’); insert into user (name, email) values (’Vaso E.’, ’vasoel@’); insert into user (name, email) values (’Skavro S.’, ’kavr@’); CREATE TABLE `payment` ( `payment_id` bigint(21) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, `user_id` int UNSIGNED NOT NULL, `project` varchar(48) NOT NULL COMMENT ’payee’, `amount` int(11) DEFAULT NULL, `dt` datetime DEFAULT NULL ) COMMENT=’stock of noney payments’; insert into payment (user_id, project, amount, dt) values (2, ’klumba’,10, ’2022-12-12 13:20’); insert into payment (user_id, project, amount, dt) values (3, ’klumba’,10,’2022-10-12 11:10’); insert into payment (user_id, project, amount, dt) values (1, ’lift’,20, ’2022-11-12 09:01’); insert into payment (user_id, project, amount, dt) values (3, ’lift’,20,’2022-11-12 12:30’); Data types: Частоиспользуемые: date / datetime / timestamp char / varchar int / tinyint / bigint Редкоиспользуемые: text / longtext / bynary float / double Пример: CREATE TABLE `payment` ( `payment_id` int UNSIGNED NOT NULL AUTO_INCREMENT, `holder_id` int UNSIGNED NOT NULL, `payment_service_id` int DEFAULT NULL, `amount` int(10) DEFAULT NULL, `currency` char(5) NOT NULL, `description` varchar(255) DEFAULT NULL, `dt_payment` datetime DEFAULT Now(), `operator_fullname` varchar(55) DEFAULT NULL, `dig_sign` varchar(1024) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’stock of financial payments’; !!!Hack: SHOW CREATE TABLE tb-name; Запросы select с условиями NOT - Инвертирует Ноль в единицу и наоборот. OR - резульат Ноль только тогда когда оба вхождения нулевые. AND - наоборот: в результате единичка только когда оба входа единички. !!! Необходимо заменить символ ≺ на нормальный знак “меньше“ select * from tb-name where a ≺ 10; select * from tb-name where 2 ≺ a OR a ≺ 10; /* */ SELECT * FROM payment WHERE (dt_payment BETWEEN ’2010-01-30 14:15:55’ AND ’2010-09-29 10:15:55’) LIKE ’...’ MIN MAX IN / NOT IN (..) LEFT JOIN:
Back to Top