Мова програмування SQL. Що таке "користувач"? Інші обмеження – UNIQUE, DEFAULT, CHECK

У цьому розділі…

SQL- це гнучка мова, яку можна використовувати самими різними способами. Він є найпоширенішим інструментом для зв'язку з реляційною базою даних. У цьому розділі я поясню, чим є SQL і чим він не є, зокрема, чим SQL відрізняється від комп'ютерних мовінших типів. Потім ви познайомитеся з командами та типами даних, які підтримують стандартний SQL. Крім того, я поясню такі основні поняття, як невизначені значення і обмеження. І, нарешті, буде дано огляд того, як SQL вписується в середу клієнт/сервер, а також в Інтернет та інтранет-мережі організацій.

Чим є SQL і чим він не є

Перше, що треба усвідомити щодо SQL, - ця мова не є процедурним, як FORTRAN, Basic, C, COBOL, Pascal і Java. Щоб вирішити задачу за допомогою однієї з цих процедурних мов, доводиться писати процедуру, яка виконує одну за одною зазначені операції, доки виконання завдання не буде закінчено. Процедура може бути лінійною послідовністю або містити розгалуження, але у будь-якому випадку програміст вказує порядок виконання.

Іншими словами, SQL є непроцедурниммовою. Щоб з його допомогою вирішити задачу, повідомте SQL, що самевам потрібно, якби ви говорили з джином з лампи Аладдіна. І при цьому не треба говорити, яким чиномотримати вам те, що ви хочете. Система управління базами даних (СУБД) сама вирішить, як краще виконати ваш запит.

Добре. Щойно я сказав, що SQL не є процедурною мовою. Власне, це правда. Однак мільйони програмістів навколо (і ви, можливо, один з них) звикли вирішувати завдання процедурним шляхом, тому в Останніми рокамичинився чималий тиск, щоб доповнити SQL деякими процедурними можливостями. Тому тепер у складі нової версіїспецифікації SQL, SQL:2003 є такі засоби процедурної мови, як блоки BEGIN, умовні оператори IF, функції та процедури. Завдяки цим новим засобам, можна зберігати програми на сервері для того, щоб їх могли повторно використовувати багато користувачів.

Для ілюстрації того, що я мав на увазі, коли говорив "повідомте системі, що саме вам потрібно", припустимо, що у вас є таблиця EMPLOYEE з даними про службовців і ви хочете вибрати з неї всі рядки, які відповідають всім "старшим" працівникам. Під "старшими" працівниками можна мати на увазі кожного, хто старше 40 років або хто отримує понад 60000 доларів на рік. Потрібну вам вибірку можна зробити за допомогою наступного запиту:

SELECT * FROM EMPLOYEE WHERE AGE >40 OR SALARY >60000;

Цей оператор вибирає з таблиці EMPLOYEE усі рядки, у яких або значення стовпця AGE (вік) більше 40 або значення у стовпці SALARY (зарплата) більше 60000. SQL сам знає, як треба вибирати інформацію. Ядро бази даних перевіряє базу і приймає собі рішення, як слід виконувати запит. Все, що від вас вимагається, – вказати, які дані вам потрібні.

Пам'ятай:
Запит - це питання, яке ви задаєте базі даних. Якщо будь-які її дані задовольняють умовам вашого запиту, SQL передає їх вам
.

У сучасних реалізаціях SQL відсутні багато прості програмні конструкції, які є фундаментальними більшості інших мов. У додатках для повсякденному житті, як правило, потрібні хоча б деякі з цих конструкцій, тому SQL насправді є під'язикданих. Навіть маючи доповнення, що з'явилися в SQL разом із стандартом SQL: 1999 та додаткові розширення, додані в SQL:2003, все одно для створення закінченої програми необхідно використовувати разом з SQL один з програмних мов, Такий, наприклад, як С.

Вибирати інформацію з бази даних можна одним із таких способів.

  • За допомогою непрограмованого одноразового запиту з консолі комп'ютера, вводячи команду SQL і читаючи на екрані результати її виконання. Консоль – це традиційний термін, що означає комп'ютерне обладнання, що виконує роботу клавіатури та екрану, що застосовуються в сучасних ПК. Запити з консолі придатні тоді, коли потрібна швидка відповідь на конкретний запит. Для задоволення будь-якої поточної потреби вам можуть знадобитися такі дані з бази, які раніше ніколи не були потрібні. Можливо, вони вам більше ніколи не знадобляться, але зараз вони потрібні. Введіть з клавіатури відповідний SQL-запит, і через деякий час на екрані з'явиться результат.
  • За допомогою програми, яка витягує з бази даних інформацію, а потім створює на основі цих даних звіт, який виводиться або на екран, або на друк . Мова SQL можна використовувати і так. Складний запит SQL, Який, можливо, ще стане в нагоді в майбутньому, можна помістити прямо в програму. Це дозволяє багаторазово використовувати його надалі. Таким чином, формулювання запиту виконується один раз. Як вставляти SQL-код у програми, написані іншою мовою, розповідається в розділі 15.

Кожна команда SQL починається з ключового слова – дієслова, що описує дію, яку виконує команда, наприклад CREATE (створити). У команді може бути одна або декілька речень. Пропозиція описує дані, з якими працює команда, або містить уточнюючу інформацію про дію, яку виконує команда. Кожна пропозиція починається з ключового слова, наприклад WHERE (де). Одні пропозиції в команді є обов'язковими, інші – ні. Деякі пропозиції можуть містити додаткові ключові слова, вирази. Багато пропозицій включають імена таблиць чи полів. Імена повинні містити від 1 до 18 символів, починатися з літери та не містити прогалини та спеціальні символипунктуації. Як імена не можна використовувати ключові слова.

52. SQL (Structured Query Language) - Структурована МоваЗапитів– це стандартна мовазапитів по роботі з реляційними базамиданих.

SQL не містить традиційних операторів, керуючих ходом виконання програм, він містить лише набір стандартних операторівдоступу до даних, що зберігаються у базі даних.

Мова SQL можна використовувати для доступу до бази даних у двох режимах: інтерактивній роботі і в прикладних програмах .

За допомогою SQL користувачможе в інтерактивному режимішвидко отримати відповіді будь-які, зокрема досить складні запити, тоді як реалізації цих запитів іншою мовою довелося б розробляти відповідну програму. У прикладних програмах, написаних певними мовами програмування, SQL використовуються як вбудованиймова для звернення до бази даних.

Характеризуючи мову SQL загалом, можна назвати такі його риси:

· Високорівнева структура, що нагадує англійська мова;

· Незалежність від конкретних СУБД;

· Наявність стандартів, що розвиваються;

· Можливість виконання інтерактивних запитів вилучення даних та модифікації їх структури;

· Забезпечення програмного доступудо баз даних;

· Підтримка архітектури клієнт/сервер;

· Розширюваність та підтримка об'єктно-орієнтованих технологій;



· Можливість доступу до даних у середовищі Інтернет.

Основні функції мови SQL:

· SQL - мова інтерактивних запитів. Користувачі вводять команди SQLв інтерактивному режимі для вибірки даних та відображення їх на екрані, а також для внесення змін до бази даних;

· SQL - мова програмування баз даних. Щоб отримати доступ до бази даних, прикладні програми вставляються команди SQL;

· SQL - мова адміністрування баз даних. Адміністратор бази даних може використовувати SQL для визначення структури бази даних та управління доступом до даних;

· SQL - мова створення програм клієнт/сервер. У прикладних програмах SQLвикористовується як засіб організації зв'язку з локальної мережіз сервером баз даних, де зберігаються спільно використовувані дані та інших.

55. Можливості зикуМова SQL, що відповідає останнім стандартам SQL:2003, SQL:1999 є дуже багатою і складна мова, всі можливості якого важко відразу усвідомити і тим паче зрозуміти. Тому доводиться розбивати мову на рівні. У одній із класифікацій, передбачених стандартом SQL, ця мова розбивається на «базовий» (entry), «проміжний» (intermediate) і «повний» (full) рівні. Базовий рівеньмістить близько сорока команд, які можна згрупувати у категорії за їх функціональним призначенням.

CREATE TABLE Відомості (НОМЗ INT, ПІБ CHAR(15), РІК INT, ПІДЛОГА CHAR(3))

DROP TABLE Відомості

ALTER TABLE (СЕМПОЛ CHAR(10))

CREATE VIEW УспішністьМ1 AS SELECT *FROM УспішністьWHERE ГРУП= "М-1"

INSERT INTO Відомості VALUES (980101, "ІВАНОВ І. І.", 1980, "ЧОЛОВІК")

DELETE FROM Відомості WHERE НОМЗ = 980201

UPDATE Відомості SET ПІБ = "КРАВЦОВА І. І." WHERE НОМЗ = 980201

SELECT * FROM Відомості WHERE ПІБ="СІДОРІВ С. С." OR ПІБ = "ПЕТРІВ П. П."

54. Типи даних та виразиДля звернення до реляційної таблиці в мові SQLнеобхідно написати (задати) команду. SELECT (вибрати)ключове словоповідомляє СУБД, яку дію виконуватиме дана команда. Команди запити починаються ключовим словом. Крім SELECT, це можуть бути слова CREATE-створити, INSERT-Вставити, DELETE- видалити, COMMIT-Завершити і д.р.

FROM -ключове слово, подібно до SELECT, яке присутнє в кожній команді. Воно супроводжується пробілом, а потім іменем таблиць, що використовуються як джерела інформації. Імена таблиць полів повинні містити від 1 до 18 символів, починатися з літери і не містити пробілів або спеціальних символів.

WHERE ключове слово, за яким слідує предикат - умова, що накладається на запис у таблиці, якому вона повинна задовольняти, щоб пропасти у вибірку.

ORDER BY –сортування записів (Asc – за зростанням, Desc – за спаданням. Якщо не вказано вид сортування, то відбувається сортування за зростанням).

CHAR(довжина) СHARACTER(довжина)Рядки символів постійної довжини

INTEGER INTЦілі числа

SMALLINTМале ціле число

NUMERIC(точність, ступінь) DECIMAL(точність, ступінь DEC(точність, ступінь)Число з фіксованою комою

FLOAT (точність)Число з плаваючою комою

Double precisionчисла з плав зап високий точн

Вирази SQL використовується для завдання критеріїв вибору даних або виконання операцій над значеннями, які зчитані з бази даних. Вирази є певною послідовністю полів бази даних, констант, функцій, з'єднаних операторами.

Константивикористовуються для зазначення конкретних значень даних. Константи з фіксованою комоюнаприклад: 21 -375.18 62.3

Константи з плаваючою комою,наприклад: 1.5Е7 -3.14Е9 2.5Е-6 0.783Е24

Строкові константиповинні бути укладені в одинарні лапки. Приклади таких констант: "Мінськ" "New York" "Іванов І. І."

Відсутнє значення(Null). SQL підтримує обробку відсутніх даних з допомогою поняття «відсутнє значення».

Більшість SQL-орієнтованих СУБД підтримує так звані агрегатні (підсумкові) функції. До часто використовуваних агрегатним функціямможна віднести такі:

· COUNT– кількість значень у стовпці таблиці;

· SUM- Сума значень у стовпці;

· AVG- Середнє арифметичне значень у стовпці;

· MAXмаксимальне значенняу стовпці;

· MINмінімальне значенняу стовпці.

У виразах можна використовувати такі типи операторів:

· арифметичні: + (додавання), - (віднімання), * (множення), / (Поділ);

· відносини: = (рівно), > (більше),< (меньше), >= (Більше або одно),<= (меньше или равно), <>(не дорівнює);

· логічні: AND(логічне "І"), OR(логічне "АБО"), NOT(логічне заперечення);

56. Команди управління транзакціямидозволяють забезпечити цілісність бази даних.

SQL-транзакція– це кілька послідовних команд SQL, які мають виконуватися як єдине ціле.

Мовою SQL обробка транзакцій реалізована за допомогою двох команд - COMMITі ROLLBACK. Вони керують змінами, виконаними групою команд. Команда COMMITповідомляє про успішне закінчення транзакції. Вона інформує СУБД про те, що транзакцію завершено, всі її команди виконані успішно і суперечності в базі даних не виникли. Команда ROLLBACKповідомляє про неуспішне закінчення транзакції. Вона інформує СУБД про те, що користувач не хоче завершувати транзакцію, і СУБД має скасувати всі зміни, внесені до бази даних у результаті транзакції. І тут СУБД повертає базу даних у стан, у якому перебувала до виконання транзакції.

Команди COMMITі ROLLBACKвикористовуються в основному в програмному режимі, хоча можливе їх використання в інтерактивному режимі.

57. До команд управління доступомвідносяться команди для здійснення адміністративних функцій, які надають або скасовують право (привілей) використовувати таблиці бази даних певним чином. Кожен користувач бази даних має певні права щодо об'єктів бази.

Права- це дії з об'єктом, які може виконувати користувач. Права можуть змінюватися з часом: старі можуть скасовуватися, нові – додаватися. Передбачено такі права:

· INSERT - право додавати дані до таблиці;

· UPDATE - право змінювати дані таблиці;

· DELETE - право видаляти дані з таблиці;

· REFERENCES - право визначати первинний ключ.

58 Вбудовування мови в прикладні програми.До вбудованихвідносяться команди, призначені для реалізації звернення до бази даних із прикладних програм, написаних певною мовою програмування.

Переклад: Alexandr Pyramidin

Ця стаття знайомить вас із структурою мови SQL, а також з деякими загальними поняттями, такими як типи даних, які поля можуть містити, та деякими неоднозначностями, які існують у SQL. Ви не повинні запам'ятовувати будь-які подробиці, згадані в цій статті. Тут дано лише короткий огляд; багато подробиць дано, щоб згодом звертатися до них у міру оволодіння мовою.

Як працює SQL?

SQL це мова, орієнтована спеціально на реляційні бази даних (РБД). Він виконує велику роботу, яку ви повинні були б робити, якби використовували універсальну мову програмування, наприклад, C. Щоб сформувати РБД на C, вам необхідно було б почати з нуля. Ви повинні були б визначити об'єкт, званий таблицею, яка могла б збільшуватися, щоб мати будь-яке число рядків, а потім поступово створювати процедури для вставки і вилучення значень.

Якби ви захотіли знайти деякі конкретні рядки, вам необхідно було б виконати по кроках процедуру, подібну до наступної:

  • Розглянути рядок таблиці.
  • Виконати перевірку: чи є цей рядок одним із рядків, який вам потрібний.
  • Якщо це так, зберегти її десь, поки вся таблиця не буде перевірена.
  • Перевірити, чи є інші рядки у таблиці.
  • Якщо є, повернутись на крок 1.
  • Якщо рядків немає, вивести всі значення, збережені в кроці 3.

(Звичайно, це не фактичний набір C-команд, а лише логіка кроків, які мали б бути включені до реальної програми.) SQL зробить все це за вас. Команди SQL можуть працювати з усіма групами таблиць як з єдиним об'єктом і можуть обробляти будь-яку кількість інформації, витягнутої чи отриманої їх у вигляді єдиного модуля.

Що робить ANSI?

Як ми вже сказали у вступі, стандарт SQL визначається за допомогою коду ANSI (Американський Національний Інститут Стандартів). SQL не винаходив ANSI. Це, по суті, винахід IBM. Але інші компанії підхопили SQL відразу. Принаймні одна компанія (Oracle) відвоювала IBM право на ринковий продаж SQL-продуктів.

Після того, як з'явився ряд конкуруючих програм SQL на ринку, ANSI визначив стандарт, до якого вони мають бути наведені. (Визначення таких стандартів є функцією ANSI). Однак після цього виникли деякі проблеми. Виникли вони внаслідок стандартизації ANSI у вигляді деяких обмежень. Так як не завжди ANSI визначає те, що є найкориснішим, то програми намагаються відповідати стандарту ANSI, не дозволяючи йому обмежувати їх надто сильно. Це, своєю чергою, веде до випадкових неузгодженостей. Програми Баз даних зазвичай надають ANSI SQL додаткові особливості і часто послаблюють багато обмежень. Тому розповсюджені різновиди ANSI будуть також розглянуті. Хоча ми, очевидно, не зможемо розглянути будь-який виняток чи різновид, вдалі ідеї мають тенденцію до впровадження та використання у різних програмах, навіть коли вони не визначені стандартом ANSI. ANSI це вид мінімального стандарту, і ви можете робити більше, ніж він дозволяє, хоч і повинні виконувати його вказівки при виконанні завдань, які він визначає.

Інтерактивний та вкладений SQL

Є два SQL: Інтерактивний та Вкладений. Здебільшого обидві форми працюють однаково, але використовуються по-різному. Інтерактивний SQL використовується для функціонування безпосередньо в базі даних, щоб робити висновок для використання замовником. У цьому SQL - коли ви введете команду, вона зараз виконається, і ви зможете відразу побачити висновок (якщо він взагалі вийде).

Вкладений SQL складається з команд SQL, розміщених усередині програм, які зазвичай написані іншою мовою (типу КОБОЛу або ПАСКАЛю). Це робить такі програми більш потужними та ефективними.

Однак, допускаючи ці мови, доводиться мати справу зі структурою SQL та стилем управління даних, який потребує деяких розширень інтерактивного SQL. Передача SQL-команд у вкладений SQL є пропускається ("passed off") для змінних або параметрів, що використовуються програмою, в яку вони були вкладені.

У цій книзі ми представлятимемо SQL в інтерактивній формі. Це дасть нам можливість обговорювати команди та їхні дії, не переймаючись тим, як вони пов'язані за допомогою інтерфейсу з іншими мовами. Інтерактивний SQL - це форма, найбільш корисна для непрограмістів. Все, що ви дізнаєтесь щодо інтерактивного SQL, в основному застосовується і до вкладеної форми. Зміни, необхідні використання вкладеної форми, будуть розглянуті в останньому розділі цієї книги.

Підрозділи SQL

І в інтерактивній, і у вкладених формах SQL є численні частини чи підрозділи. Так як ви, ймовірно, зіткнетеся з цією термінологією під час читання SQL, ми дамо деякі пояснення. На жаль, ці терміни не використовуються у всіх реалізаціях. Вони вказані ANSI і корисні на концептуальному рівні, але більшість SQL-програм практично не обробляють їх окремо, тому вони, по суті, стають функціональними категоріями команд SQL.

  • DDL (Мова визначення даних) - так звана Мова Опису Схеми в ANSI - складається з команд, які створюють об'єкти (таблиці, індекси, перегляди і так далі) в базі даних.
  • DML (Мова маніпулювання даними) - це набір команд, які визначають, які значення представлені в таблицях у будь-який момент часу.
  • DCD (Мова Управління Даними) складається із засобів, які визначають, чи дозволити користувачеві виконувати певні дії, чи ні. Вони є складовими частинами DDL у ANSI.

Не забувайте ці назви. Це не різні мови, а розділи команд SQL, згруповані за їх функціями.

Різні типи даних

Не всі типи значень, які можуть бути в полях таблиці, логічно однакові. Найбільш очевидна відмінність - між числами та текстом. Ви не можете поміщати числа в алфавітному порядку або віднімати одне ім'я з іншого.

Так як системи з РБД базуються на зв'язках між фрагментами інформації, різні типи даних повинні відрізнятися один від одного так, щоб відповідні процеси та порівняння могли бути в них виконані. SQL це робиться за допомогою призначення кожному полю типу даних, що вказує тип значення, яке це поле може містити. Усі значення у цьому полі повинні мати однаковий тип. У таблиці Замовників, наприклад cname і city містять рядки тексту для оцінки, а snum і cnum це числа. З цієї причини ви не можете ввести значення Highest (Найвищий) або None (Ніякий) у полі rating, яке має числовий тип даних. Це обмеження успішне, оскільки воно накладає деяку структурність на ваші дані. Ви часто порівнюєте деякі або всі значення в даному полі, тому ви можете виконувати дію тільки на певних рядках, а не на всіх. Ви не можете зробити це, якби значення полів мали змішаний тип даних.

На жаль, визначення цих типів даних є основною областю, де більшість комерційних програм БД і офіційний стандарт SQL який завжди збігаються. ANSI SQL-стандарт розпізнає лише text і number, тоді як більшість комерційних програм використовують інші спеціальні типи. Такі як DATA (ДАТА) та TIME (ЧАС) - фактично, майже стандартні типи (хоча точний формат їх змінюється). Деякі пакети також підтримують такі типи, як, наприклад, MONEY (ГРОШІ) та BINARY (ДВОЇЧНИЙ). (MONEY це спеціальна "валютна" система обчислення, що використовується комп'ютерами.)

Вся інформація в комп'ютері передається двійковими числами, а потім перетворюється на інші системи, щоб ми могли легко використовувати їх і розуміти.

ANSI визначає кілька числових типів, різницю між якими досить тонкі, і іноді їх плутають. Дозволені ANSI-типи даних перелічені в Додатку B. Складність числових типів ANSI можна, принаймні частково, пояснити зусиллям зробити вкладений SQL сумісним з іншими мовами. Два типи чисел ANSI - INTEGER (ЦЕЛЕ ЧИСЛО) і DECIMAL (ДЕСЯТЕРИЧНЕ ЧИСЛО) (які можна скорочувати як INT і DEC, відповідно), будуть адекватні для наших цілей, так само як і для більшості практичних ділових прикладних програм. Природно, що тип ЦІЛОЕ можна уявити як ДЕСЯТЕРИЧНЕ ЧИСЛО, яке містить ніяких цифр праворуч від десяткової точки.

Тип для тексту – CHAR (або СИМВОЛ), що відноситься до рядка тексту. Поле типу CHAR має довжину, яка визначається максимальним числом символів, які можуть бути введені в це поле. Більшість реалізацій також мають нестандартний тип, званий VARCHAR (ЗМІННЕ ЧИСЛО СИМВОЛІВ), який є текстовим рядком і може мати будь-яку довжину до певного реалізацією максимуму (зазвичай 254 символи). Значення CHARACTER і VARCHAR включаються в одиночні лапки як "текст". Відмінність між CHAR та VARCHAR у тому, що CHAR повинен резервувати достатню кількість пам'яті для максимальної довжини рядка, а VARCHAR розподіляє пам'ять у міру потреби.

Символьні типи складаються із усіх друкованих символів, включаючи числа. Однак число 1 не те саме, що символ "1". Символ "1" - тільки друкований фрагмент тексту, який не визначається системою як числове значення 1. Наприклад 1 + 1 = 2, але "1" + "1" не дорівнює "2". Символьні значення зберігаються в комп'ютері як двійкові значення, але вони відображаються як друкований текст.

Перетворення виконується за форматом, який визначається системою, яку ви використовуєте. Цей формат перетворення буде одним з двох стандартних типів (можливо, з розширеннями), що використовуються в комп'ютерних системах: ASCII-код (використовується у всіх персональних та малих комп'ютерах) та EBCDIC-код (Розширеному Двійково-Десятирічному Код Обміну Інформації) (використовується у великих комп'ютерах). Певні операції, такі як впорядкування в алфавітному порядку значень поля, змінюватимуться разом із форматом.

Ми повинні стежити за ринком, а не за ANSI у використанні типу DATE (ДАТА). (У системі, яка не розпізнає тип ДАТА, ви, звичайно, можете оголосити дату як символьне чи числове поле, але це зробить більшість операцій більш трудомісткими.)

Ви повинні переглянути свою документацію пакет програм, який ви будете використовувати, щоб з'ясувати точно, які типи даних він підтримує.

SQL. Неузгодженості.

Ви можете зрозуміти з попереднього обговорення, що є окремі окремі невідповідності між продуктами світу SQL. SQL з'явився з комерційного світу БД як інструмент і був пізніше перетворений на стандарт ANSI. На жаль, ANSI не завжди визначає найкорисніше, тому програми намагаються відповідати стандарту ANSI, не дозволяючи йому обмежувати їх надто сильно. ANSI - вид мінімального стандарту - ви можете робити більше, ніж він це дозволяє, але ви повинні бути здатні отримати ті ж самі результати при виконанні того ж завдання.

ЩО ТАКЕ "КОРИСТУВАЧ"?

SQL зазвичай знаходиться в комп'ютерних системах, які мають більше ніж одного користувача і, отже, повинен розрізняти їх (ваше сімейство PC може мати будь-яке число користувачів, але воно зазвичай не має способів відрізняти одного користувача від іншого).

Зазвичай у системі кожен користувач має певний вид коду перевірки прав, який ідентифікує його (термінологія змінюється). На початку сеансу з комп'ютером користувач входить до системи (реєструється), повідомляючи комп'ютера, хто цей користувач, ідентифікуючись за допомогою певного ID (Ідентифікатора). Будь-яка кількість людей, які використовують ID доступу, є окремими користувачами; і, аналогічно, одна людина може представляти велику кількість користувачів (у різний час), використовуючи різні ідентифікатори доступу до SQL. Дії в більшості середовищ SQL приведені до спеціального Ідентифікатора доступу, який точно відповідає певному користувачеві. Таблиця або інший об'єкт належить користувачеві, який має повну владу. Користувач може або може не мати привілеїв на виконання дії над об'єктом. Для наших цілей ми домовимося, що будь-який користувач має необхідні привілеї для виконання будь-якої дії, доки ми не повернемось спеціально до обговорення привілеїв у Розділі 22. Спеціальне значення USER (КОРИСТУВАЧ) може використовуватись як аргумент у команді. Воно вказує на доступний Ідентифікатор користувача, який видав команду.

Умовні позначення та термінологія

Ключові слова це слова, які мають особливе значення в SQL. Вони може бути командами, але з текстом і іменами об'єктів. Ми виділятимемо ключові слова, друкуючи їх ВЕЛИКИМИ ЛІТЕРАМИ. Ви повинні бути уважними, щоб не плутати ключові слова з термінами.

SQL має певні спеціальні терміни, які використовуються для його опису. Серед них такі слова як "запит", "пропозиція" та "предикат", які є найважливішими в описі та розумінні мови, але не означають щось самостійне для SQL.

Команди або пропозиції є інструкціями, за допомогою яких ви звертаєтеся до SQL SQL.

Команди складаються з однієї чи більше окремих логічних частин, які називаються пропозиціями.

Пропозиції починаються ключовим словом і складаються з ключових слів та аргументів. Наприклад, пропозиції, з якими ви можете стикатися, це "FROM Salespeope" та "WHERE city = "London"". Аргументи завершують чи змінюють значення пропозиції. У прикладах вище, Salespeople – аргумент, а FROM – ключове слово пропозиції FROM. Аналогічно " city = " London " " - аргумент пропозиції WHERE.

Об'єкти це структури БД, яким дано імена і які зберігаються у пам'яті. Сюди відносяться базові таблиці, уявлення та індекси.

Щоб показати вам, як формуються команди, ми робитимемо це на прикладах. Є, проте, більш формальний метод опису команд, який використовує стандартизовані умовні позначення. Ми будемо використовувати його в наступних розділах для зручності, щоб розуміти ці умовні позначення, якщо ви зіткнетеся з ними в інших SQL-документах.

Квадратні дужки () будуть вказувати частини, які можуть не використовуватися, а крапки (...) вказують, що все, що передує їм, може повторюватися будь-яке число разів. Слова в кутових дужках () - спеціальні терміни, які пояснюють, що вони являють собою. Ми спростили стандартну термінологію SQL, але без погіршення його розуміння.

Резюме

Ми коротко розглянули у цьому розділі основи. Але нашим наміром і було - швидко розглянути основи SQL так, щоб ви змогли охопити весь обсяг інформації.

Тепер ви знаєте дещо щодо SQL: якою є його структура, як він використовується, як він представляє дані і як вони визначаються (і деякі неузгодженості, що з'являються при цьому), деякі умовні позначення та терміни, які використовуються для їх опису. Все це - дуже великий обсяг інформації для одного розділу; ми не очікуємо, що ви запам'ятали всі ці подробиці, але ви зможете повернутися до них пізніше, якщо знадобиться.

На сьогоднішній день курси SQL для чайників стають все більш популярними. Це можна просто пояснити, адже в сучасному світі все частіше можна зустріти так звані "динамічні" веб-сервіси. Вони відрізняються досить гнучкою оболонкою і ґрунтуються на Всі програмісти-початківці, які вирішили присвятити сайтів, насамперед записуються на курси SQL "для чайників".

Навіщо вивчати цю мову?

Перш за все SQL вчать з метою подальшого створення найрізноманітніших програм для одного з найпопулярніших на сьогоднішній день движків блогів - WordPress. Після проходження декількох простих уроків ви зможете створювати запити будь-якої складності, що тільки підтверджує простоту цієї мови.

Що таке SQL?

Або мова структурованих запитів, була створена з однією єдиною метою: визначати надавати до них доступ і обробляти їх за досить короткі проміжки часу. Якщо ви знаєте SQL-значення, тоді вам буде зрозуміло, що цей сервер відносять до так званих "непроцедурних" мов. Тобто в його можливості входить лише опис будь-яких компонентів або результатів, які ви хочете побачити в майбутньому на сайті. Але при цьому не вказує на те, які результати точно збирається отримати. Кожен новий запит у цій мові є як би додатковою "надбудовою". Саме в такому порядку, в якому вони введені в базі даних, запити будуть виконуватися.

Які процедури можна виконувати за допомогою цієї мови?

Незважаючи на свою простоту, база даних SQL дозволяє створити досить багато найрізноманітніших запитів. То що ж ви зможете робити, якщо вивчите цю важливу у програмуванні мову?

  • створювати найрізноманітніші таблиці;
  • отримувати, зберігати та змінювати отримані дані;
  • змінювати структури таблиць на власний розсуд;
  • об'єднувати отриману інформацію у єдині блоки;
  • обчислювати отримані дані;
  • забезпечувати повний захист інформації.

Які команди найпопулярніші в даній мові?

Якщо ви вирішили відвідати курси SQL для чайників, тоді ви отримаєте докладну інформацію про команди, які використовуються у створенні запитів з його допомогою. Найпоширенішими на сьогоднішній день є такі:

  1. DDL – це команда, яка визначає дані. Вона використовується для того, щоб створювати, змінювати та видаляти найрізноманітніші об'єкти в базі.
  2. DCL є командою, яка управляє даними. Її використовують для надання доступу різним користувачам до інформації в базі, а також використовувати таблиці або подання.
  3. TCL - команда, яка керує різноманітними транзакціями. Її головною метою є визначення ходу транзакції.
  4. DML – маніпулює отриманими даними. В її завдання входить дозвіл користувачеві переміщати різну інформацію з бази даних або вносити її туди.

Типи привілеїв, які існують на цьому сервері

Під привілеями маються на увазі ті дії, які може виконати той чи інший користувач відповідно до свого статусу. Найменшою, безумовно, є звичайний вхід до системи. Звісно ж, з часом привілеї можуть змінюватись. Старі видалятимуться, а нові додаватимуться. На сьогоднішній день всі ті, хто проходить курси SQL Server "для чайників", знають, що існує кілька типів дозволених дій:

  1. Об'єктний тип - користувачеві дозволяється виконувати будь-яку команду лише стосовно певному об'єкту, що у базі даних. При цьому різні об'єкти привілеї відрізняються. Вони також прив'язуються не тільки до того чи іншого користувача, а й до таблиць. Якщо хтось, користуючись своїми можливостями, створив таблицю, він вважається її власником. Тому у його праві призначати нові привілеї іншим користувачам, пов'язані з інформацією у ній.
  2. Системний тип - це звані авторські права на дані. Користувачі, які отримали такі привілеї можуть створювати різні об'єкти в базі.

Історія створення SQL

Ця мова була створена дослідницькою лабораторією IBM у 1970 році. У той час назва його була дещо іншою (SEQUEL), але через кілька років використання її поміняли, трохи скоротивши. Незважаючи на це, навіть сьогодні багато відомих світових фахівців у галузі програмування все ще вимовляють назву по-старому. Створено SQL з однією-єдиною метою - винайти мову, яка була б настільки простою, що її могли б без особливих проблем вивчити навіть прості користувачі Інтернету. Цікавий той факт, що на той час SQL був не єдиною подібною мовою. У Каліфорнії ще одна група фахівців розробила схожий Ingres, але він так і не став поширеним. До 1980 року існувало кілька варіацій SQL, які лише певною мірою відрізнялися друг від друга. Щоб запобігти замішанню, 1983-го було створено стандартний його варіант, який популярний і сьогодні. Курси SQL для чайників дозволяють дізнатися набагато більше про сервіс і повністю вивчити його за кілька тижнів.

Сьогодні ми звернемося до комп'ютерної теми, тому ця стаття представлятиме особливий інтерес насамперед для програмістів. Ми з вами, дорогий читачу, поговоримо про мову структурованих запитів, яку в англійському варіанті шифрують як SQL (Structured Query Language). Отже, ближчий до справи. Зараз поговоримо про те, що таке SQL і для чого він потрібен.

Мова структурованих запитів – це універсальна мова для створення, модифікації та управління інформацією, що входить до складу реляційних баз даних. Спочатку SQL був основним способом роботи з даними. За допомогою нього користувач міг виконувати такі дії:

  • створення нової таблиці у базі даних (БД);
  • додавання нових записів до існуючих таблиць;
  • редагування записів;
  • повне видалення записів;
  • вибір запису з різних таблиць відповідно до заданих умов;
  • зміна виду та структур однієї чи кількох таблиць.

У міру свого розвитку SQL сильно перетворився і збагатився новими корисними функціями, в результаті чого, все більше став схожим на справжню мову програмування. На сьогоднішній день SQL - це єдиний механізм, який здатний зв'язати прикладне програмне забезпечення та базу даних. Ось що таке SQL.

SQL має кілька видів запитів. Варто зазначити, що будь-який запит SQL має на увазі або запит даних з потрібної бази, або звернення до бази з обов'язковою зміною в ній даних. У зв'язку з цим прийнято виділяти такі види запитів:

  • створення чи зміна у базі даних нових чи вже існуючих у ній об'єктів;
  • отримання даних;
  • додавання нових даних до таблиці;
  • видалення даних;
  • звернення до системи управління базами даних (СУБД).

Трохи про переваги та недоліки даної системи роботи з даними.

Переваги SQL

  • Незалежність від існуючої у цій системі СУБД. Тексти SQL є універсальними багатьом СУБД. Однак це правило поширюється на прості завдання, пов'язані з обробкою даних таблицях.
  • Наявність стандартів SQL сприяє "стабілізації" мови.
  • Декларативність. Ця перевага полягає в тому, що при роботі з даними програміст вибирає тільки ту інформацію, яка повинна бути змінена або модифікована. Те, як це буде зроблено, в автоматичному режимі вирішується на програмному рівні самої СУБД.

Недоліки SQL

  • SQL відповідає реляційної моделі побудови даних. У цьому плані SQL замінює мову Tutorial D, яка є істинно реляційною.
  • Складність SQL визначає його призначення. Мова настільки складна, що ним може користуватися лише програміст. Хоча спочатку він замислювався як засіб управління, з яким працюватиме звичайний користувач.
  • Деяка невідповідність стандартів. Багато компаній, що розробляють СУБД, додають свої особливості у діалект мови SQL, що суттєво впливає на універсальність мови.

І останнє: що таке SQL Server? Це система управління базами даних, яка була розроблена у стінах відомої компанії Microsoft. Ця система успішно працює з БД, як домашніх персональних комп'ютерів, і з великими базами даних великих підприємств. У цьому сегменті ринку система SQL Server є більш ніж конкурентоспроможною.

Ну і буквально двома словами згадаємо про MySQL. Ця програма, як правило, використовується як сервер, до якого надходять звернення від локальних або віддалених клієнтів. MySQL також можна включати в автономні програми. Слід зазначити, що цей додаток є одним з найбільш гнучких систем управління даними, так як включає безліч різних типів таблиць.