Кратък наръчник за езика SQL
Споразумение за езика SQL и първоначалната концепция.
IDs INFORMIX.
ID (име обект) - дума, състояща се от букви, цифри и долна черта (_), започващи с буква или познания ка (_). малки и големи buk- не се различават по INFORMIX-4GL. Затова i_Un1023Tt и I_UN1023TT - със същото име. Името на базата данни е не по-дълъг от 10 имена на други обекти SQL - маси, колони, изглед (псевдо). Синоними - не по-дълъг от 18 години.
* * SQL езикови отчети на Групата.
SQL оператори се състои от 4 групи: - данни, описващи Оператори: Създаване, капка, да промени и т.н. - данни манипулация изявления :. вмъкване, изтриване, SELECT, UPDATE и т.н. - Операторите определят правата за достъп до базата данни :. ПОМОЩТА / ОТМЕНЯ. Заключване / отключване. SET LOCK MODE - защита на оператор, възстановяване на данни, както и други оператори. Тяхното мнение, ние сега да се върна, за да.
1. Оператор Описание * DATA.
описание на данни операторите, за да опише (Създаването Ния), промяна на описанието и унищожаване на обекти в базата данни. В SQL, следните видове обекти: база данни (база данни); маса (маса); колона (колона); Индекс (индекс); картина (виж); синоним (синоним). Всеки обект има свое име - идентификатор. Всеки обект има собственик - т.е. потребителя, който го е създал. Името на обекта може да се усъвършенства с помощта на името му vladel- TSA (име собственик) в тази форма: moshkow.table1 долу са дадени примери за използване на описание на данни оператори. Пълният синтаксис може да се намери в "ръководство за бърза справка за 4GL" (вж. Допълнението) или в "справочник Informix-4GL". Създаване на база данни. -------------------------------------------------- ------------- CREATE DATABASE zawod ---------------------------------- ----------------------------- по всяко време можете да имате достъп до същите обекти tol- - ток (ток) - база данни. изявление БАЗА ДАННИ прави нова база ток, затваряне на достъпа до обектите, предхождащи текущата база данни. CLOSE изявление БАЗА ДАННИ просто zakry- Vaeth текущата база данни. -------------------------------------------------- ------------- БАЗА ДАННИ zawod. # Дали сегашната база zawod БАЗА ДАННИ stanciq. # Дали сегашната база stanciq CLOSE БАЗА ДАННИ # ток не базата данни --------------------------------------- ------------------------ kadry маси са създадени и СЕН реком, съдържащи различни видове колони. -------------------------------------------------- ------------- Създаване на таблица kadry (nomerceh INT, tabnom СЕРИЕН. FIO CHAR (20) УНИКАЛНИ, zarplata ПАРИ (16,2), datarovd ДАТА, pribytie DATETIME година до минута) Създаване на таблица CEH (nomerceh ср, nameceh знак (20)) ---------------------------------------- ----------------------- През вече съществуващата масата, ние можем да променим вида колона doba- изгради нов, разруши стария. -------------------------------------------------- ------------- ALTER TABLE kadry ADD (dolvnostx Char (20) ПРЕДИ zarplata), DROP (pribytie), добавете ОГРАНИЧЕНИЯ, UNIQUE (tabnom, FIO) ОГРАНИЧЕНИЯ tabnomfio ALTER TABLE елементи променят (manu_code Чар ( 4)) ----------------------------------------------- ---------------- Промени маса структура води до физическа трансформация НИП данни в него. Ако промените вида на колоната, данните в него са превърнати в новия тип, а ако това не е възможно, тогава операторът ALTER "пада" с кода на грешката и таблицата остава непроменено състояние. Вижте - "псевдо" маса на базата на съществуващи таблици. -------------------------------------------------- ------------- CREATE VIEW лошо AS SELECT tabnom, FIO, datarovd ОТ КОИТО kadry zarplata = ИЗРАЗ2 и т.н. както и елементарни сравнения на специален вид: (. [.] vyrazh1) колона име е [НЕ] NULL ИЗРАЗът [НЕ] МЕЖДУ vyrazh1 И vyrazh2 ИЗРАЗът [НЕ] В Можете да разберете дали символният низ съвпада с конкретен модел или не. За това сравнение, двете операции се използват от шаблона - както и мачове. Чар-израз съвпада с "шаблон" Чар-израз като "модел" подобни има прост шаблон. Тя използва само два заместващи (%) е обозначение за номер от символи (_) означава точно един символ. Всички други знаци в модела стоят сами за себе си. Ако искаме да се включат в шаблон% или _ премахването им специално значение, трябва да се постави пред тях ESC- характер (по подразбиране (\)). Да кажем, че ние трябва да изберете от tab8 на масата всички редове koto- ryh string1 характер колона съдържа символа "+" и предпоследната буква в него - "Y". декларация образец ще изглежда така: -------------------------------------------- ------------------- SELECT * ОТ КОИТО tab8 string1 като "% +% Y_" ------------------ --------------------------------------------- МАЧОВЕ използва специални символи като шаблон : *? [,] ^, -. * Замества произволен брой символи. замества всеки отделен знак [. ] Заменя един символ, посочени в скоби може да определи и от (-) и (^) [ABH] - всеки от символите А, В, Н [^ DZ] - всеки символ с изключение на D, Е, F, G , ш, щ \ отменя spetssmysl специални знаци *. [] Ако искате да използвате специални символи като нормална, използвайте избяга-Чар. Ако бягство-Чар = "", а след това \? Той представлява просто символ. \ * Обозначава символ * \\ представлява \ характер. Но кавичките ( ") в рамките на шаблона трябва да определят две кавички (" "). Избор на всички клиентски данни в името на фирмата, че второто писмо не е в диапазона от G до L, а третото писмо в. (Между другото, българските букви кодовете на BIS отидете направо, но за разлика от латинските букви, а не български са подредени по азбучен ред.) --------------------------------- ------------------------------ SELECT * FROM клиент КЪДЕ фирмата MATCES "? [^ GL] в *" ---- -------------------------------------------------- --------- Изберете всички клиентски данни в името на които има въпросителен знак. ---------------------------- ----------------------------------- SE Преп * FROM клиент КЪДЕ компания съвпада "* Аз? *" ESCAPE "I" --------------------------------- ------------------------------ този пример се използва ESC-символ "I", за да отмените spetss- символ мисъл "?" Ако в която искате. Сравнете израз в резултат на друга SELECT изявление Годен? код (SELECT-декларация)?., за да се определи дали израз на резултатите от друг SELECT изявление принадлежи. Годен? [НЕ] IN (SELECT-декларация)?. За да разберете дали да се избере нещо друго SELECT изявление. ? [НЕ] СЪЩЕСТВУВА (SELECT-декларация)? условията за използване с подзаявка.
--------------------------------------------------------------- SELECT FIO ОТ КОИТО kadry zarplata = (SELECT MAX (zarplata) ОТ kadry) ---------------------------------- ----------------------------- Тук подзаявка връща една стойност - максималната стойност на заплатите. Външният SELECT изявление намира имената на притежателите им. -------------------------------------------------- ------------- SELECT FIO, shifr, organizaciq оТ КОИТО zaqwki denxgi_rek не е нула и Gorod в (SELECT Gorod оТ КОИТО regiony област = "Урал") --------- -------------------------------------------------- ---- Ето заявка показва данни за водачите, които са получили финансиране дейност и работа в Урал. -------------------------------------------------- ------------- SELECT order_num, stock_num, manu_code, TOTAL_PRICE от позиции х КЪДЕТО TOTAL_PRICE> (SELECT 2 х минути (TOTAL_PRICE) ОТ КОИТО елементи order_num = x.order_num) ------ -------------------------------------------------- ------- това искане (с помощта на корелация подзаявка) съдържа списък на всички продукти, чиято обща цена е не по-малко от два пъти цената на продуктите са минимални, изброени в същия ред. Можете да се свържете с произволен брой на горните условия, като използва логическите оператори не, както и, OR.
изявление разтоварят нулира данните от таблица във файл в изгледа на печат. Всеки ред се превръща в отделен профил, стойността на колоните са разделени от "|". След съставяне на акта ----------------------------------------------- ---------------- разтоварва "kadry19.unl" SELECT * FROM kadry ----------------------- ---------------------------------------- kadry19.unl във файла може да бъде открит, както следва: -------------------------------------------------- ------------- 5 | 5 | TUEV | служебно | 100,0 | 12.31.1946 | 4 | 6 | Petunin | склада | 80.0 ||. -------------------------------------------------- -------------
LOAD оператор изпълнява обратната операция - гласи линии от файл и да го вмъква в таблицата. Естествено, вида и броя на стойностите в редовете на файла трябва да съответстват на колони на таблицата. -------------------------------------------------- ------------- товар от "kadry20.unl" вмъкнете в kadry --------------------------- ------------------------------------
* 5. ОБРАТНО SELECT * оператор.
Оферти В, В TEMP, ОТ.
Избиране на всички редове (няма оферта КЪДЕ) от kadry маса, да ги вземе всички колони (като вместо колоните стояха *), оставяйки само най-различни линии (ключова дума е УНИКАЛНА) и зало- места резултата в данни временна таблица (във TEMP) х, което ще бъде създадената по този начин със същите колони, които имат kadry. -------------------------------------------------- ------------- SELECT UNIQUE * ОТ kadry В TEMP х ----------------------------- ---------------------------------- Можете да избирате от различни таблици. В този случай ние приемаме всички възможни комбинации от редовете от първата таблица с втория. Ние приемаме, че TAB1 на маса и в 6 реда tab2 - 7 линии. Резултати Ni-zheprivedennogo например - таблица, съдържаща три колони, и 7 * 6 = 42 реда. -------------------------------------------------- ------------- SELECT tab1.a-tab2.b, tab1.a, tab2.b ОТ tab1, tab2 ----------------- ---------------------------------------------- Ние няма да се уточни къде точно е поставен в резултат на масата. Но това може да се използва по различни начини: тя може да бъде РЕ regnat (В TEMP) в временна таблица, тя може да бъде дадена на обработката на друг агент (ако вземането на проби извършва podzap- израснал), е възможно да се създаде курсора ( "буфер" с указател към ТЕ kuschuyu низ), и може да се сложи (в) да прости програмиран променлива (ако е избран не повече от един ред). Избрани линии могат да бъдат поръчани в възходящ (низходящ ред) стойности в колоната (графи) ----------------------------------- ---------------------------- SELECT A, B, C, D + е от табл РЕД ОТ в, с SELECT A, B, С, D + е от табл РЕД ОТ 2,3 -------------------------------------- ------------------------- в ORDER BY клауза вместо името на колона, можете да посочите серийния му номер в списъка за избор (изберете списък). Vyshepriveden- оператори Nye са еквивалентни. Сложете стойностите на колоните в променливите: (Както lname се използва като име на променлива, и като име на колона, името на колона се предшества от знака (@) --------------------- ------------------------------------------ SELECT customer_num @ lname, града на cnum, lname, града от клиент ------------------------------------------- --------------------
Към избран ред може да се прилага общата функции COUNT (*) - брой, MAX (колона) и минути (колона) - максималната и минималната стойност в колоната, SUM (колона) - сумата от всички стойности в колона, AVG (колона) - средно стойността в колоната. Сложете в променлив брой Броят редове в таблицата с поръчки, в който колоната е customer_num 101: --------------------------------- ------------------------------ SELECT COUNT (*) В бр поръчки, КЪДЕТО customer_num = 101 ------- -------------------------------------------------- Пример ------ използват таблици съединение. Разположен заплата Средната стойност над 300 (колона zarplata принадлежност INH една от таблиците), при условие съвпадение dolvnost колони в двете таблици. -------------------------------------------------- ------------- SELECT AVG (zarplata) от таблица 1, Таблица 2, КЪДЕТО table1.dolvnost = table2.dolvnost и zarplata> 300 ---------------- -----------------------------------------------
Групиране използва за "сплескване" групи (линии) в едно. Резултатът от заявката съдържа един ред за всеки от множество линии отговарят предложение къде и съдържащи една и съща стойност в определено колоната. -------------------------------------------------- ------------- SELECT dolvnostx, COUNT (*), AVG (zarplata) ОТ kadry ГРУПА ОТ dolvnostx -------------------- ------------------------------------------- Вземете броя на служителите и тяхната средна работна заплата за всяка позиция на персонала. -------------------------------------------------- ------------- SELECT dolvnostx, COUNT (*), AVG (zarplata) ОТ kadry ГРУПА ОТ 1 -------------------- ------------------------------------------- Еквивалентната записа. КАТО клауза налага допълнителни условия на групата. -------------------------------------------------- ------------- SELECT order_num, AVG (total_priece) ОТ елементи ГРУПА ОТ order_num КАТО COUNT (*)> 2 ------------------ --------------------------------------------- Тази заявка връща броя на поръчките а средната стойност TOTAL_PRICE в приложения за всички поръчки с най-малко две приложения.
Редове от таблицата, приложена външно (от външни точки на свързване към ключовата дума ВЪНШНА) ще бъдат избрани независимо от факта, че отговарят на условията на клаузата WHERE или не. В някои случаи това е полезно, когато имате майстор маса е спомагателен и данните от основната маса от които се нуждаете, за да получите по никакъв начин. Пример външна връзка: ---------------------------------------------- ----------------- SELECT компания, order_num ОТ клиент с външна поръчки о КЪДЕ c.customer_num = o.customer_num -------------- ------------------------------------------------- Искане намира фирмата и броя на поръчките, които те изпращат. Ако компанията не изпрати поръчки, името й все още ще бъде избран и номера на поръчката, в този ред ще бъде вените на БКП NULL. (И ако изпълните заявката, без да използвате външната, имената на тези компании няма да съществуват в извадката.)
6. сложни примери * манипулиране на данни.