Въведение в SQL

Огромна част от информацията по света се пази в релационни бази данни и за да може човек да работи с нея е нужно да владее езика на SQL заявки.

За да извършвате повечето стандартни задачи не е необходимо да сте SQL-виртуоз , а просто да изучите основните понятия за работа с бази данни:

  • Създаване и редактиране на таблици
  • Съхранение и обновяване на записите
  • Избор и филтрация на данни
  • Индексация на полета

Да започнем с тяхното изучаване – за да разберем синтаксиса на SQL-заявките ще използваме и реални примери. За наш късмет езика на базите данни е много близък до простия английски език , така че не би трябвало да има проблем при прочитането му.

За да бъде ефективно изучаването на езика ( и не само)  е нужно комбинирате практика с теорията. Може да пробвате , този ресурс за тестване на уменията си : (директен линк: http://sqlfiddle.com/ ) или по-долу:

В лявата част е нужно да въведете кода , отнасящата се към структурата на базата данни и тя ще бъде отразена в дясната част , след като натиснете бутона „Build Schmemа“ . Сега вече може да експериментирате с SELECT-тите.

  • Имайте предвид , че в примерите по-долу ще се отнасят за SQL-синтаксис за MySQL 5.6. т.е. на-масово използвания. Заявките за различни СУБД , могат да се различават.

Терминология

  • Базата данни е съставена от таблици , а таблицата е изградена от колони и редове.
  • Всяка колона и/или поле от таблицата , представлява конкретен вид информация – например: име (ред) или височина (число)
  • Всеки ред и/или запис в таблица е описание на конкретния обект – например : ред и височина на сътрудник

Създаване  и редактиране на таблици.

  • CREATE

Не сложно човек да се досети , че оператора  CREATE създава нова таблица в базата данни. Тук трябва да се посочат всички описания на полета в таблицата в следния формат:

наименование_полето тип_данни [атрибути_полето]

Но нека създадем пример да видим как работи:

# създаваме таблица dogs с 5 полета различни типове
CREATE TABLE rations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
weight INT DEFAULT 0,
color VARCHAR(20),
portion INT
);

  • ALTER

Не винаги се случва да се създаде идеалната таблица от раз. Не страхувайте да внасяте изменения , да добавяте , да триете или променяте съществуващите полета.

# преименуване на таблица rations в portions
ALTER TABLE rations RENAME TO portions;
# добави в таблица portions числово поле age
ALTER TABLE portions ADD age INT;
# премахни от таблицата portions полето color
ALTER TABLE portions DROP COLUMN color;
# преименуване полето name в dog_name
ALTER TABLE portions CHANGE name dog_name VARCHAR(20) NOT NULL;

  • DROP и TRUNCATE

Оператора DROP премахва изцяло таблица от базата данни:

# премахване на таблицата portions
DROP TABLE portions;
Ако трябва да премахнете запис , но искате да запазите самата таблицата , може да използвате оператора TRUNCATE:
# изчисти таблицата portions
TRUNCATE TABLE portions;

Атрибути и ограничения

Може да ограничим диапазона на данни , които попадат в дадено поле , например: да забраним използване на отрицателни числа при килограми или възраст.

Най-разпространени в SQL са тъй наречените  ограничения за целостта (CONSTRAINTS)

  • DEFAULT – установява значение по подразбиране;
  • AUTO_INCREMENT – автоматически инкрементира значението на полето за всеки следващ запис;
  • NOT NULL – забранява създаването на празни полета т.е. такива без стойност;
  • UNIQUE – следи за уникалността на полето или комбинация от такива – да са уникални в рамките на таблицата ;
  • PRIMARY KEY – UNIQUE + NOT NULL.  – първичния ключ трябва изначало и еднозначно да идентифицира записа в таблицата и за това трябва да бъде уникален и не може да празен;
  • CHECK – проверява значението на полето дали съответства на някакво условие.

Ограничения може да добавят при създаване на таблицата , но при необходимост могат да се добавят, променят или изтриват. Те могат да действат на едно поле или комбинация от полета.

Първичния ключ , автоматичен инкремент , NOT NULL и значенията по подразбиране сме използвали в примерите по-горе

 

И накрая едно пищовче : http://www.sqltutorial.org/wp-content/uploads/2016/04/SQL-cheat-sheet.pdf