Andmebaasisüsteemide alused SQL statementsDDL – Data Definition Language (CREATE TABLE, ALTER TABLE)DML -Data Manipulation Language (INSERT INTO, DELETE FROM, UPDATE)—————————————————————————————–Piirangud — ОграниченияPrimary key — значение столбца уникальноForeign key — столбец использует значение из связаной таблицыNOT NULL — не пустое значениеUNIQUE — не повторяющее значениеCHECK — выбор некоторых значений—————————————————————————————–Типы данныхSQL относится к категории языков с сильной типизацией. Это означает, что с любым объектом данных, связывается определенный тип, даже если на первый взгляд это и не очевидно. Тип данных одновременно определяет и ограничивает разновидности операций, которые могут выполняться с этими данными.SQL поддерживает несколько типов данных, которые можно разделить на три категории: символьные (строковые) типы данных, числовые типы данных и типы данных для хранения даты и времени.Символьные (строковые) типыCHAR(n) или CHARACTER(n) – Текст фиксированной дилны (по умолчанию длиной 1, максимум – 255 знаков); CHARACTER VARYING(n) или CHAR VARYING(n) – текст переменной длины, max длина – n знаков;Числовые типыЧисловые типы используются для представления целых и вещественных значений. С общей точки зрения к числовым типам SQL относятся следующие типы:2-, 4- и 8-байтовые целые числа;SMALLINT, INT2 (-32768…32767) в MS SQL также tinyint (0 до 255) INTEGER, INT, INT4 (от -2 147 483 648 до 2 147 483 647) BIGINT, INT8 (от -9 223 372 036 854 775 807 до 9 223 372 036 854 775 807) 4- и 8-байтовые вещественные числа;REAL, FLOAT4 (шесть значащих цифр, неограниченный размер с ограниченной точностью) DOUBLE PRECISION, FLOAT8, FLOAT (15 значащих цифр, неограниченный размер с ограниченной точностью) дробные числа с фиксированной точностьюNUMERIC(p,s), DECIMAL (p,s) – целые и вещественные числа из р цифр (всего) и s цифр в дробной части тип MONEY – хранение информации денежного типа; обеспечивает точность значений до 4 знаков после запятой и занимает 8 байт.Логические и двоичные типыBOOLEAN, BOOL – Отдельная логическая величина (TRUE или FALSE). BIT – позволяет хранить один бит, который принимает значения 0, 1 или NULL. Строковые значения TRUE и FALSE можно преобразовать в значения типа bit: TRUE преобразуется в 1, а FALSE – в 0.Тип даты и времениDATE – тип данных для хранения даты; TIME – тип данных для хранения времени; INTERVAL – тип данных для хранения временного интервала; DATETIME – тип данных для хранения моментов времени (год + месяц + день + часы + минуты + секунды + доли секунд).Типы данных MS Access SQLTEXT(n) – текст переменной длины, max длина – n знаков; MEMO – текст, по объему превышающий 255 символов BYTE, INTEGER, LONG – целые числа COUNTER – счетчик, целые числа SINGLE DOUBLE CURRENCY – вещественные числа DATETIME – дата и время YESNO – Логический тип LONGBINARY – OleObject, двоичный тип—————————————————————————————–SQL lausedDDL – DATA DEFINITION (CREATE TABLE ,ALTER TABLE)DML – DATA MANIPULATION LANGUAGE(INSERT INTO, DELETE FROM,UPDATE, ETC)—————————————————————————————–Table creation (DDL)CREATE TABLE toode( toodeID int primary key AUTO_INCREMENT, toodeNimetus varchar(50), toodeHind decimal(5, 2), v_kuupaev date, kas_olemas bit );Adding data to the table (DML)INSERT INTO toode(toodeNimetus, toodeHind, kas_olemas, v_kuupaev) VALUES ('piim Alma', 1.50, 1, '2024-01-31'); SELECT * FROM toode;INSERT INTO toode(toodeNimetus, toodeHind, kas_olemas, v_kuupaev) VALUES ('piim Alma', 1.50, 1, '2024-01-31'); SELECT * FROM toode;CREATE TABLE `ANDREIBAS`.`tellimus` (`tellimusID` INT NOT NULL AUTO_INCREMENT , `tellimuseKuupaev` DATE NOT NULL , `toodeID` INT NOT NULL , `klient` VARCHAR(50) NOT NULL , PRIMARY KEY (`tellimusID`)) ENGINE = InnoDB; CREATE table Product( idProduct int primary key AUTO_INCREMENT, ProductName varchar(50), idCategory int, Price decimal(6, 2), FOREIGN key(idCategory) REFERENCES category(idCategory) ); create table customer( idCustomer int PRIMARY KEY AUTO_INCREMENT, nameCustomer varchar(100) UNIQUE, contactCustomer varchar(50) );insert into product(ProductName, idCategory, Price) VALUES ('boots', 3, 100.99) insert into Sale(idProduct, Count_, DateOfSale) values(1,200,'2024-01-31'),(3,200,'2024-01-31'),(4,100,'2024-01-31'),(3,250,'2024-01-31'),(3,57,'2024-01-31'); insert into customer(nameCustomer, contactCustomer) values('Marko', 55614815');ALTER TABLE sale ADD units char(5); alter table sale add FOREIGN KEY(idCustomer) REFERENCES customer(idCustomer) update sale set idCustomer=1;SELECT QUERY --Страны, названия которых начинаются на букву “К” (5 записей); SELECT * FROM country WHERE NAME LIKE 'K%'; --Страны, получившие независимость в 19-м веке (27 записей) SELECT Name, IndepYear from country WHERE IndepYear BETWEEN 1800 AND 1899; --Страны ближнего востока (Middle East) (18 записей) SELECT Name,Region FROM country WHERE region like 'Middle East%'; --Европейские страны, которые образовались в 19 веке (7 записей) SELECT Name, IndepYear, Continent from country Where(IndepYear BETWEEN 1800 and 1899) and Continent like'Europe%'; --Страны, в названиях которых содержат слог “ра” (9 записей) SELECT Name from country where Name like '%pa%'; --Страны, названия которых начинаются на гласную букву (A, E, I, O, U, Y) (42 записи); --RLIKE '^[A, E, I, O, U, Y]' - ПРИНАДЛЕЖНОСТЬ К МНОЖЕСТВУ. SELECT Name from country WHERE Name like'A%' OR NAME lIKE 'E%' OR NAME lIKE 'I%' OR NAME lIKE 'O%'OR NAME lIKE 'U%'OR NAME lIKE 'Y%'; SELECT Name from country WHERE Name RLIKE '^[A, E, I, O, U, Y]'; --Страны, названия которых начинаются и заканчиваются на одну и ту же букву. (20 записей) SELECT Name FROM country WHERE LEFT(Name,1) like RIGHT(Name,1); --Государства, формой правления которых является различной формы монархия (43 записи) SELECT name FROM country where GovernmentForm like '%Monarchy%'; --Страны, население которых меньше 1 млн. (85 записей) SELECT Name from country WHERE Population < 1000000; --Самое древнее государство (China) SELECT Name, IndepYear from country ORDER BY IndepYear LIMIT 1; --Страны, год обретения независимости которыми не определен (47 записей) SELECT Name FROM country WHERE IndepYear = 0; --Самое маленькое по площади государство (Holy See (Vatican City State)) SELECT Name,SurfaceArea FROM country ORDER BY SurfaceArea LIMIT 1; --Первую десятку наиболее населенных государств мира SELECT Name,Population FROM country ORDER BY Population DESC LIMIT 10; --Первую десятку наиболее населенных государств Европы SELECT Name,Population FROM country WHERE Continent LIKE '%Europe%' ORDER BY Population DESC LIMIT 10; --Cуммарное число жителей стран Европы и суммарную площадь её государств (730 074 600, 23 049 133.9) SELECT SUM(Population) AS 'Kokku elanike_arv', SUM(SurfaceArea) AS 'Kokku pindala' FROM country WHERE Continent LIKE '%Europe%'; --Число стран, расположенных не в Антарктике (234 записи) SELECT COUNT(Name) FROM country WHERE Continent NOT like '%Antarctica%'; --Число стран, где главой правительства является Елизавета II (Elisabeth II), суммарное число жителей этих стран. (35 стран, 122 872 550 человек) SELECT SUM(Population), COUNT(*) FROM country WHERE HeadOfState like 'Elisabeth II'; --Число стран, наибольшее и наименьшее число жителей стран Полинезии (Polynesia) (10 стран, 235 000 человек, 50 человек) SELECT COUNT(*) as RiikideArv, MIN(Population) as MIN, MAX(Population) as MAX FROM country WHERE Region LIKE 'Polynesia'; SQL CRIB SHEET—————————————————————————————————————