Рубрики

Язык структурированных запросов (SQL)

Язык структурированных запросов — это стандартный язык базы данных, который используется для создания, обслуживания и извлечения реляционной базы данных. Ниже приведены некоторые интересные факты о SQL.

  • SQL нечувствителен к регистру. Но рекомендуется использовать ключевые слова (например, SELECT, UPDATE, CREATE и т. Д.) Заглавными буквами, а определяемые пользователем вещи (например, имя таблицы, имя столбца и т. Д.) — строчными буквами.
  • Мы можем писать комментарии в SQL, используя «-» (двойной дефис) в начале любой строки.
  • SQL является языком программирования для реляционных баз данных (поясняется ниже), таких как MySQL, Oracle, Sybase, SQL Server, Postgre и т. Д. Другие нереляционные базы данных (также называемые NoSQL), такие как MongoDB, DynamoDB и т. Д., Не используют SQL
  • Хотя существует стандарт ISO для SQL, большинство реализаций немного различаются по синтаксису. Поэтому мы можем столкнуться с запросами, которые работают в SQL Server, но не работают в MySQL.
  • ,

    Что такое реляционная база данных?

    Реляционная база данных означает, что данные хранятся, а также извлекаются в виде отношений (таблиц). Таблица 1 показывает , реляционная база данных только с одним соотношением называется СТУДЕНТА , которая хранит ROLL_NO, имя, адрес, телефон и возраст студентов.

    УЧЕНИК

    ROLL_NONAMEADDRESSPHONEAGE
    1RAMDELHI945512345118
    2RAMESHGURGAON965243154318
    3SUJITROHTAK915625313120
    4SURESHDELHI915676897118

      ТАБЛИЦА 1

    Это некоторые важные термины, которые используются в терминах отношений.

    Атрибут: Атрибуты — это свойства, которые определяют отношение. например; ROLL_NO , NAME и т. Д.

    Кортеж: каждый ряд в связи известен как кортеж. Вышеуказанное отношение содержит 4 кортежа, один из которых показан как:

    1RAMDELHI945512345118

    Степень: количество атрибутов в отношении известно как степень отношения. Отношение СТУДЕНТА, определенное выше, имеет степень 5.

    Количество элементов : количество кортежей в отношении известно как количество элементов. Отношение СТУДЕНТА, определенное выше, имеет мощность 4.

    Столбец: Столбец представляет набор значений для определенного атрибута. Столбец ROLL_NO извлекается из отношения STUDENT.

    ROLL_NO
    1
    2
    3
    4

    Запросы для работы с реляционной базой данных могут быть следующими категориями:

    Язык определения данных: используется для определения структуры базы данных. например; СОЗДАЙТЕ ТАБЛИЦУ, ДОБАВЬТЕ КОЛОННУ, УДАЛИТЕ КОЛОННУ и т.д.

    Язык манипулирования данными : используется для манипулирования данными в отношениях. например; ВСТАВИТЬ, УДАЛИТЬ, ОБНОВИТЬ и так далее.

    Data Query Language: используется для извлечения данных из отношений. например; ВЫБРАТЬ

    Итак, сначала мы рассмотрим язык запросов данных. Общий запрос для извлечения из реляционной базы данных:

  1. ВЫБЕРИТЕ [ DISTINCT ] Attribute_List FROM R1, R2… .RM
  2. [ ГДЕ состояние]
  3. [ GROUP BY (Атрибуты) [ HAVING условие]]
  4. [ ORDER BY (Атрибуты) [ DESC ]];

Часть запроса, представленная оператором 1, является обязательной, если вы хотите получить ее из реляционной базы данных. Операторы, написанные внутри [], являются необязательными. Мы рассмотрим возможную комбинацию запросов по отношению, показанную в таблице 1.

Случай 1: если мы хотим получить атрибуты ROLL_NO и NAME всех студентов, запрос будет:

SELECT ROLL_NO, NAME FROM STUDENT;
ROLL_NONAME
1RAM
2RAMESH
3SUJIT
4SURESH

Случай 2: Если мы хотим получить ROLL_NO и NAME студентов, чей ROLL_NO больше 2, запрос будет:

SELECT ROLL_NO, NAME FROM STUDENT 
WHERE ROLL_NO>2;
ROLL_NONAME
3SUJIT
4SURESH

СЛУЧАЙ 3: Если мы хотим получить все атрибуты учащихся, мы можем написать * вместо записи всех атрибутов как:

SELECT * FROM STUDENT 
WHERE ROLL_NO>2;
ROLL_NONAMEADDRESSPHONEAGE
3SUJITROHTAK915625313120
4SURESHDELHI915676897118

СЛУЧАЙ 4: Если мы хотим представить отношение в возрастающем порядке по AGE , мы можем использовать предложение ORDER BY как:

SELECT * FROM STUDENT ORDER BY AGE;
ROLL_NONAMEADDRESSPHONEAGE
1RAMDELHI945512345118
2RAMESHGURGAON965243154318
4SURESHDELHI915676897118
3SUJITROHTAK915625313120

Примечание: ORDER BY AGE эквивалентно ORDER BY AGE . Если мы хотим получить результаты в порядке убывания AGE , мы можем использовать ORDER BY AGE DESC.

СЛУЧАЙ 5: Если мы хотим получить различные значения атрибута или группы атрибутов, DISTINCT используется как в:

SELECT DISTINCT ADDRESS FROM STUDENT;
ADDRESS
DELHI
GURGAON
ROHTAK

Если DISTINCT не используется, DELHI будет повторяться дважды в наборе результатов. Прежде чем понимать GROUP BY и HAVING, нам нужно понять функции агрегирования в SQL.

ФУНКЦИИ АГРЕГАЦИИ: Функции агрегации используются для выполнения математических операций над значениями данных отношения. Некоторые из общих функций агрегирования, используемых в SQL:

  • COUNT: функция Count используется для подсчета количества строк в отношении. например;
SELECT COUNT (PHONE) FROM STUDENT;
COUNT(PHONE)
4
  • SUM: функция SUM используется для добавления значений атрибута в отношение. например;

ВЫБЕРИТЕ СУММУ (ВОЗРАСТ) ОТ СТУДЕНТА;

SUM(AGE)
74

Таким же образом можно использовать MIN, MAX и AVG. Как мы видели выше, все функции агрегации возвращают только 1 строку.

GROUP BY: Group by используется для группировки кортежей отношения на основе атрибута или группы атрибутов. Он всегда сочетается с функцией агрегирования, которая вычисляется по группе. например;

SELECT ADDRESS, SUM(AGE) FROM STUDENT
GROUP BY (ADDRESS);

В этом запросе SUM ( AGE ) будет вычисляться, но не для всей таблицы, а для каждого адреса. то есть; сумма AGE для адреса DELHI (18 + 18 = 36) и аналогично для другого адреса. Выход:

ADDRESSSUM(AGE)
DELHI36
GURGAON18
ROHTAK20

Если мы попытаемся выполнить запрос, приведенный ниже, это приведет к ошибке, поскольку, хотя мы вычислили SUM (AGE) для каждого адреса, для каждого сгруппированного адреса существует более 1 ROLL_NO. Так что это не может быть отображено в наборе результатов. Нам нужно использовать агрегатные функции для столбцов после оператора SELECT, чтобы иметь смысл полученного набора всякий раз, когда мы используем GROUP BY.

SELECT ROLL_NO, ADDRESS, SUM(AGE) FROM STUDENT
GROUP BY (ADDRESS); 

ПРИМЕЧАНИЕ. Атрибут, который не является частью предложения GROUP BY, нельзя использовать для выбора. Любой атрибут, который является частью GROUP BY CLAUSE, может быть использован для выбора, но это не обязательно. Но мы могли бы использовать атрибуты, которые не являются частью предложения GROUP BY в объединенной функции.
Викторина по SQL

Статья предоставлена Sonal Tuteja. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Язык структурированных запросов (SQL)

0.00 (0%) 0 votes