ОСНОВЫ SQL: КРАТКОЕ ВВЕДЕНИЕ В SQL.
Много раз вы слышали аббревиатуру SQL от своих друзей, коллег или преподавателей, но что такое SQL на самом деле? SQL расшифровывается как «язык структурированных запросов», и это лингва-франка, который используется для управления, создания, обработки и извлечения информации/данных из баз данных. Он был разработан в 1970-х годах учеными-компьютерщиками IBM.
Теперь, когда вы знаете, что такое SQL, что он на самом деле делает? SQL выполняет различные задачи в базе данных, некоторые из этих задач включают в себя:
- выполнять запросы к базам данных.
- создавать новые таблицы в базах данных.
- вставлять записи в базы данных.
- обновить записи в базе данных.
- Создание и поддержка пользователей базы данных.
- удалить записи.
- извлекать данные из баз данных и т. д.
SQL — очень эффективный, простой в изучении и использовании язык. Он также считается функционально полным из-за того, что позволяет пользователям определять, извлекать и манипулировать данными в таблицах.
В этой статье мы рассмотрим основы SQL. Давайте катить ...
Выражения SQL
Операторы в SQL представляют собой набор инструкций, состоящий из идентификаторов, параметров, переменных, типов данных и зарезервированных ключевых слов SQL. Оператор SQL должен быть успешно скомпилирован. например DELETE TABLE Users
.
Существуют разные типы операторов SQL, давайте обсудим их ниже.
- Язык управления данными (DML)
Операторы DML обращаются к данным в существующих объектах схемы и манипулируют ими. Эти инструкции не неявно фиксируют текущую транзакцию. Операторы языка манипулирования данными:
SELECT
- Извлекает определенные записи из одной или нескольких таблиц.
INSERT
- Создает новую запись.
UPDATE
- Изменяет существующую запись.
DELETE
- Удаляет определенные записи.
MERGE
— объединяет отдельные операторы INSERT
, UPDATE
и DELETE
в один SQL-запрос.
2. Язык определения данных (DDL)
Операторы языка определения данных позволяют выполнять такие задачи, как:
- создавать, изменять и удалять объекты схемы.
- Анализировать информацию о таблице, индексе или кластере.
- Добавьте комментарии к словарю данных.
Операторы DDL включают:
CREATE
- Создает новую таблицу, представление таблицы или другой объект в базе данных.
ALTER
— изменяет существующий объект базы данных.
DROP
— удаляет всю таблицу, представление таблицы или другие объекты в базе данных.
RENAME
- Используется вместе с ALTER
для изменения объектов в базе данных.
TRUNCATE
- Удаляет все данные из таблицы.
COMMENT
- Начинается с /* и заканчивается */, эта часть кода не выполняется.
3. Язык управления данными (DCL)
Операторы DCL позволяют вам предоставлять и отзывать привилегии и роли, а именно:
GRANT
— Дает привилегию пользователям.
REVOKE
- Отменяет привилегии, которые ранее были предоставлены пользователю.
4. Язык управления транзакциями (TCL)
Операторы управления транзакциями управляют изменениями, сделанными операторами DML. Операторы управления транзакциями:
COMMIT
— сохраняет изменения, вызванные транзакцией в базе данных.
ROLLBACK
- Отменяет все изменения, сделанные с момента последнего COMMIT
.
SAVEPOINT
- Используется вместе с Rollback
для получения определенной транзакции в определенный момент.
Написание операторов SQL.
При написании операторов SQL следует помнить, что:
я. Операторы SQL не чувствительны к регистру.
II. SQL можно вводить во многих строках.
III. Ключевые слова нельзя разбивать по строкам.
IV. Пункты обычно помещаются в отдельные строки для удобства чтения и редактирования.
v. Отступы делают его более читабельным.
ви. Ключевые слова можно вводить заглавными буквами, а все остальные строчными.
Зачем изучать SQL?
Если вы профессионал в области разработки программного обеспечения или студент, который хочет стать инженером-программистом, SQL — очень важный язык запросов, которым вы должны вооружиться. В большинстве прикладных программ разработчики, как правило, используют SQL для хранения данных и управления ими. Кроме того, большинство систем управления реляционными базами данных (RDBMS), таких как MYSQL, Oracle, Postgres, Sybase, MS Access, используют SQL в качестве стандартного языка баз данных.
Как работает SQL?
Допустим, вы выполняете команды SQL для любой заданной задачи SQL, система, в которой вы запускаете код, определяет, как лучше всего выполнить ваш запрос, в то время как механизм SQL интерпретирует код. Звучит как сложный процесс, но это не так.
Теперь давайте посмотрим на этапы обработки запросов (этот процесс включает в себя преобразование высокоуровневых SQL-запросов в низкоуровневые выражения, которые используются на физическом уровне файловой системы, а также при оптимизации запросов и, конечно же, в реальном времени). выполнение запроса).
Шаг 1: Парсер
На этом этапе база данных выполняет следующие проверки: проверку синтаксиса и проверку семантики после преобразования запроса в реляционную алгебру.
Проверка синтаксиса:
Включает проверку того, были ли соблюдены / соблюдены правила написания команды SQL (эти правила мы называем синтаксисом).
e.g SELECT * FORM students
Вышеупомянутая команда не может быть выполнена и, таким образом, приведет к ошибке из-за неправильного написания ключевого слова FROM
.
Семантическая проверка:
Во время этой проверки синтаксический анализатор определяет, имеет ли оператор смысл или нет.
Пример. Допустим, вы запросили таблицу с именем Students
из базы данных, но еще не создали ее, что технически означает, что ее не существует. Ошибка, которую вы получите, будет связана с проверкой семантики
Шаг 2: Оптимизатор
На этапе оптимизации база данных должна выполнить жесткий синтаксический анализ (это когда команды SQL повторно загружаются в общий пул) по крайней мере для одного уникального оператора языка манипулирования данными. В конце концов, синтаксический анализ выполняет оптимизацию команд.
Шаг 3: Механизм выполнения:
Наконец, запрос выполняется, и отображаются выходные данные.
Практический SQL.
Теперь приступим к практической части SQL.
Создание таблиц
В SQL вы создаете таблицы с помощью оператора CREATE TABLE
. При создании таблиц вы должны обеспечить три основных элемента:
- Имя таблицы.
- Имена столбцов.
- Типы данных для каждого столбца.
Рекомендации по созданию таблиц.
Правила именования таблиц и столбцов:
- Должен начинаться с буквы, за которой следует последовательность букв, цифр, _, #, 0r $.
- Должно быть от 1 до 30 символов.
- Не должно быть зарезервированным словом SQL.
типы данных:
SQL поддерживает разные типы данных, в том числе:
- VARCHAR2(n): Строка символов переменной длины до n символов.
- CHAR(n): символьная строка фиксированной длины из n символов.
- NUMBER(n): целое число, содержащее до n цифр.
- ЧИСЛО(точность, масштаб): десятичное число с фиксированной точкой. «точность» — общее количество цифр; «Масштаб» — это количество цифр справа от запятой. Десятичная точка не считается.
- ЧИСЛО: десятичное число с плавающей запятой.
- ДАТА: ДД-ПЕС-ГГ (или ГГГГ) ЧЧ:ММ:СС A.M. (или P.M.) форма даты-времени.
- LONG: строка символов переменной длины до 2 ГБ.
- NCHAR: LONG для международных наборов символов (2 байта на символ).
- CLOB: однобайтовые данные символов ASCII размером до 4 ГБ.
- BLOB: двоичные данные (например, программа, изображение или звук) размером до 4 ГБ.
- BFILE: ссылка на двоичный файл, который является внешним по отношению к базе данных (файл ОС).
- RAW(размер) или LONG_RAW: необработанные двоичные данные.
- ROWID: уникальный адрес строки в шестнадцатеричном формате.
Пример:
CREATE TABLE employees( employee_id number(7) not null, first_name varchar2(20), last_name varchar2(20), cellphone varchar2(12), email varchar2(20), hire_date date, job_id varchar2(5), salary number(12,2), manager_id number(6), department_id number(4) );
Добавление данных в таблицы.
Вы используете ключевое слово INSERT
для добавления данных в любую таблицу SQL.
Пример:
INSERT INTO employees VALUES(1000,'Simon','Otieno','0722456789','[email protected]','01-jan-90','5500',32000,5000,10); INSERT INTO employees VALUES(1001,'Alice','Mwangi','0720766659','[email protected]','02-feb-80,'5600',42000, 5000,10);
Получение данных из объектов базы данных с помощью оператора SELECT
Как упоминалось ранее, SELECT
используется для извлечения данных из базы данных. С оператором SELECT
вы можете получить следующие возможности.
- Проекция — выбор столбцов/полей из таблицы через запрос.
- Selection- выбор строк в таблице.
- Объединение — объединение данных, хранящихся в разных таблицах, путем указания связи между ними.
Примеры:
SELECT * FROM employees; /*selects everything*/ SELECT employee_id,first_name,last_name, email , job_id, salary FROM employees; /*selects only the specified columns*/
Арифметические выражения в SQL
Арифметические выражения в SQL выполняют арифметические операции над числовыми операдами/значениями, хранящимися в таблицах базы данных. Используемые выражения включают: -
+
- для Дополнения.
-
- для операций вычитания.
*
- для умножения.
/
- для деления.
%
- для модуля.
Пример:
SELECT employee_id, first_name,last_name, salary, salary + 3000 FROM employees; SELECT employee_id, first_name,last_name, salary, 12* salary + 700 FROM employees; SELECT employee_id, first_name,last_name, salary, 12* (salary + 700) FROM employees; SELECT employee_id, first_name,last_name, salary, 12* (salary - 2000) FROM employees;
Ограничение и сортировка данных с помощью оператора SELECT
.
использование пункта WHERE
.
Предложение WHERE
используется для фильтрации записей. Он извлекает только те записи, которые соответствуют заданному условию.
Условия сравнения
=
-Равно.
>
-Больше чем.
>=
-Больше или равно.
<
-Меньше.
<=
-Меньше или равно.
<>
-Не равно.
IS Null
- нулевое значение.
IN (set)
-Соответствует любому из списка.
Примеры:
SELECT employee_id "Employee ID",first_name "First Name",last_name "Last Name", email "Email" , job_id "Job ID",salary " Monthly Pay " FROM employees WHERE employee_id=1000; SELECT employee_id "Employee ID",first_name "First Name" ,last_name "Last Name", email "Email" , job_id "Job ID",salary " Monthly Pay " FROM employees WHERE salary > 10000; SELECT employee_id "Employee ID",first_name "First Name" ,last_name "Last Name", email "Email" , job_id "Job ID",salary " Monthly Pay " FROM employees WHERE salary IN(10000,20000,30000);
Логические условия
AND
- Возвращает истину, если оба верны
OR
- Возвращает истину, если она верна
NOT
- Вернуть true, если условие ложно
Примеры:
SELECT employee_id,last_name FROM employees WHERE salary >=10000 AND manager_id=5000; SELECT employee_id,last_name FROM employees WHERE department_id NOT IN(90,60,30);
Использование пункта ORDER BY
.
Это ключевое слово сортирует записи в определенном порядке. По умолчанию он сортирует записи в порядке возрастания.
Пример:
SELECT last_name,job_id, department_id FROM employees ORDER BY hire_date DESC; SELECT last_name,job_id, department_id FROM employees ORDER BY hire_date ASC;
PS: asc=по возрастанию, desc=по убыванию.
UPDATE
Команда
Как упоминалось ранее в статье, эта команда используется для обновления данных в заданных таблицах.
Пример:
UPDATE employees SET salary= 50000 WHERE employee_id=1001; UPDATE employees SET last_name='Opiyo' WHERE employee_id=1000;
DELETE
Команда.
Используется для удаления или удаления записей из таблиц в базе данных.
пример:
DELETE FROM employees WHERE employee_id=1000;
ROLLBACK
Команда.
Эта команда используется для отмены любых изменений, сделанных с момента последнего оператора фиксации в транзакции SQL. При выполнении команды отката все изменения, внесенные в базу данных с момента последней фиксации, отменяются, и база данных возвращается в свое предыдущее состояние.
пример:
ROLLBACK;
COMMIT
Команда.
Обеспечивает постоянное сохранение записей. Эта команда может использоваться внутри транзакции для фиксации изменений, сделанных транзакцией. После выполнения команды фиксации изменения сохраняются навсегда и не могут быть отменены.
пример:
COMMIT;
Ограничения SQL
Ограничения — это правила, которые определяют допустимые значения и отношения для данных в таблице базы данных. Ограничения могут помочь обеспечить целостность данных, предотвратить вставку или обновление неверных или несогласованных данных, а также предоставить способ обеспечения соблюдения бизнес-правил или политик. Они включают:-
- Ограничение NOT NULL
Это ограничение используется для указания того, что столбец в таблице должен содержать значение и не может оставаться пустым или нулевым.
Пример:
CREATE TABLE Sales ( Sale_Id int NOT NULL, Sale_Amount int NOT NULL, Vendor_Name varchar(255) NOT NULL, Sale_Date date, Profit int );
- УНИКАЛЬНОЕ ограничение
Ограничение «UNIQUE» используется для обеспечения того, чтобы значения в столбце или группе столбцов были уникальными и не могли повторяться в одной и той же таблице.
Пример:
CREATE TABLE employees2( employee_id number(6), last_name varchar2(20) NOT NULL, email varchar2(20), salary number(10,2), hire_date date NOT NULL, CONSTRAINT emp_email_uk UNIQUE(email) );
- Ограничение PRIMARY KEY.
Это ограничение используется для указания столбца или группы столбцов, которые однозначно определяют каждую строку в таблице. Ограничение первичного ключа гарантирует, что значения в указанном столбце или столбцах уникальны и не могут повторяться в одной и той же таблице.
Пример:
CREATE TABLE Sales ( Sale_Id int NOT NULL, Sale_Amount int NOT NULL, Vendor_Name varchar(255), Sale_Date date, Profit int, PRIMARY KEY (Sale_Id) );
- Ограничение FOREIGN KEY.
Ограничение FOREIGN KEY используется для создания связи между двумя таблицами на основе значений в столбце или группе столбцов. Ограничение внешнего ключа гарантирует, что значения в указанном столбце или столбцах в одной таблице соответствуют значениям в столбце или столбцах первичного ключа в другой таблице.
Пример:
CREATE TABLE employees3 ( employee_id number(6) PRIMARY KEY, last_name varchar2(20) NOT NULL, first_name varchar2(20), salary number(10,2), hire_date date NOT NULL, department_id number(4) CONSTRAINT emp_dept_fk FOREIGN KEY(department_id) REFERENCES department (department_id) ); CREATE TABLE department( department_id int PRIMARY KEY, last_name varchar2(20) NOT NULL, first_name varchar2(20) );
- ПРОВЕРИТЬ ограничение.
Это ограничение используется для указания условия, которое должно выполняться для каждой строки в таблице. Ограничение проверки гарантирует, что значения в столбце или группе столбцов соответствуют определенному условию или набору условий.
Пример:
CREATE TABLE Sales( Sale_Id int NOT NULL UNIQUE, Sale_Amount int NOT NULL, Vendor_Name varchar(255) CHECK (Sale_Amount >= 100 AND Vendor_Name<> 'John'), Sale_Date date, Profit int );
- Когда у вас есть ограничения, возвращается ошибка, если вы пытаетесь нарушить правило ограничения.
ALTER TABLE
Заявление.
Это утверждение используется для:
я. Добавить новый столбец в таблицу.
II. Изменить существующий столбец.
III. Определите значение по умолчанию для нового столбца.
IV. Удаление столбца из таблицы.
Пример:
ALTER TABLE employees ADD CONSTRAINT emp_id_pk PRIMARY KEY; ALTER TABLE employees2 DROP CONSTRAINT emp_dept_fk;
Обратите внимание на команды ограничений ADD
и DROP
: первая используется для создания ограничений UNIQUE, PRIMARY KEY, FOREIGN KEY или CHECK, а вторая используется для их удаления. Это можно сделать только в том случае, если таблица уже существует.
ОБЪЕКТЫ ДАННЫХ
В SQL объекты используются в базах данных для хранения или ссылки на данные. Доступ к объекту возможен только с использованием его идентификатора. В SQL есть различные объекты данных, в том числе:
- Стол — основная единица хранения.
- Представление — логически представляет подмножества данных из одной или нескольких таблиц.
- Sequence — генерирует числовые значения.
- Индекс — повышает производительность некоторых запросов.
- Синонимы — дает альтернативные имена объектам.
Давайте посмотрим на VIEW
.
ПОСМОТРЕТЬ
Представление — это виртуальная таблица, которая на самом деле не хранит данные, а предоставляет способ доступа и управления данными из одной или нескольких таблиц. Представление можно рассматривать как хранимую инструкцию SELECT, которая определяет набор столбцов и строк на основе запроса.
Зачем использовать VIEW
?
- Чтобы ограничить доступ к данным.
- Для упрощения сложных запросов.
- Обеспечить независимость данных.
- Для представления различных представлений одних и тех же данных.
создание представления:
CREATE VIEW emp1 AS SELECT * FROM employees;
Чтобы удалить представление, используйте оператор DROP VIEW
.
e.g
DROP VIEW emp1
Первоначально опубликовано на https://github.com.