Есть три типа индексов, а именно:
• Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
• Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
• Некластеризованный индекс (Non-Clustered Index): не изменяет физический порядок таблицы и поддерживает логический порядок данных. Каждая таблица может иметь много некластеризованных индексов.
• Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
• Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
• Некластеризованный индекс (Non-Clustered Index): не изменяет физический порядок таблицы и поддерживает логический порядок данных. Каждая таблица может иметь много некластеризованных индексов.
🔥7❤2👍2
Подзапрос — это запрос внутри другого запроса, в котором определен запрос для извлечения данных или информации из базы данных. В подзапросе внешний запрос называется основным запросом, тогда как внутренний запрос называется подзапросом.
Подзапросы всегда выполняются первыми, а результат подзапроса передается в основной запрос. Он может быть вложен в SELECT, UPDATE или любой другой запрос. Подзапрос также может использовать любые операторы сравнения.
Подзапросы всегда выполняются первыми, а результат подзапроса передается в основной запрос. Он может быть вложен в SELECT, UPDATE или любой другой запрос. Подзапрос также может использовать любые операторы сравнения.
👍12🆒2❤1
Нулевое значение (NULL) — это значение поля, которое является пустым, т.е. нулевое значение — это значение поля, не имеющего значения.
Важно понимать, что нулевое значение отличается от значения
Важно понимать, что нулевое значение отличается от значения
0 и от значения поля, содержащего пробелы (). Поле с нулевым значением - это такое поля, которое осталось пустым при создании записи. Также, следует учитывать, что в некоторых СУБД пустая строка ('') — этоNULL, а в некоторых — это разные значения.👍8🔥2
⦁ Используйте скрипты миграций для изменения БД и версионируйте их.
⦁ Разбейте данные на отдельные таблицы с помощью связей и отношений между ними.
⦁ Используйте правильный тип данных для каждого поля.
⦁ Избегайте злоупотребления индексами.
⦁ Избегайте повторяющихся данных.
⦁ Удаляйте неиспользуемые таблицы, поля и индексы.
⦁ Следите за производительностью и оптимизируйте ее с помощью инструментов мониторинга.
⦁ Разбейте данные на отдельные таблицы с помощью связей и отношений между ними.
⦁ Используйте правильный тип данных для каждого поля.
⦁ Избегайте злоупотребления индексами.
⦁ Избегайте повторяющихся данных.
⦁ Удаляйте неиспользуемые таблицы, поля и индексы.
⦁ Следите за производительностью и оптимизируйте ее с помощью инструментов мониторинга.
👍6🔥3
Нормализация базы данных - процесс организации данных для устранения дублирования информации и увеличения эффективности запросов.
Чтобы нормализировать бд, следуйте этим шагам:
⦁ Разбейте таблицу на более мелкие таблицы, если она содержит множество повторяющихся значений.
⦁ Установите связи между таблицами, используя первичные и внешние ключи.
⦁ Убедитесь, что каждая таблица имеет только одну тему и не содержит лишних столбцов.
⦁ Избегайте многозначных зависимостей, когда один столбец может зависеть от нескольких других столбцов.
⦁ Проверьте, что каждая таблица находится в нормальной форме.
Чтобы нормализировать бд, следуйте этим шагам:
⦁ Разбейте таблицу на более мелкие таблицы, если она содержит множество повторяющихся значений.
⦁ Установите связи между таблицами, используя первичные и внешние ключи.
⦁ Убедитесь, что каждая таблица имеет только одну тему и не содержит лишних столбцов.
⦁ Избегайте многозначных зависимостей, когда один столбец может зависеть от нескольких других столбцов.
⦁ Проверьте, что каждая таблица находится в нормальной форме.
❤5👍4🔥1
⦁ Создавайте индексы для столбцов, используемых в условиях WHERE и JOIN, поскольку это поможет ускорить поиск строк и связывание таблиц.
⦁ Ограничивайте количество индексов для каждой таблицы. Слишком много индексов может замедлить производительность базы данных.
⦁ Используйте композитные индексы для объединения нескольких столбцов в один индекс, поскольку это может помочь ускорить поиск строк в запросах.
⦁ Избегайте создания индексов для столбцов с низкой селективностью. Индексы на таких столбцах не будут использоваться, поскольку большинство строк будет иметь одинаковые значения.
⦁ Регулярно проверяйте производительность базы данных и её запросов. Если запросы выполняются медленно, то это может быть связано с отсутствием или неправильным использованием индексов.
⦁ Ограничивайте количество индексов для каждой таблицы. Слишком много индексов может замедлить производительность базы данных.
⦁ Используйте композитные индексы для объединения нескольких столбцов в один индекс, поскольку это может помочь ускорить поиск строк в запросах.
⦁ Избегайте создания индексов для столбцов с низкой селективностью. Индексы на таких столбцах не будут использоваться, поскольку большинство строк будет иметь одинаковые значения.
⦁ Регулярно проверяйте производительность базы данных и её запросов. Если запросы выполняются медленно, то это может быть связано с отсутствием или неправильным использованием индексов.
👍7❤1
Пример:
SELECT REPLACE("SQL Tutorial", "SQL", "HTML"); # HTML Tutorial
SELECT REPLACE("XYZ FGH XYZ", "x", "m"); # XYZ FGH XYZ
Функция REPLACE() заменяет все вхождения указанной строки новой подстрокой. Обрати внимание, замена выполняется с учетом регистра. В первом примере продемонстрирована замена SQL на HTML. Во втором примере не будет замены из-за учета регистра.👍8❤1
Пример:
Следующий оператор SQL возвращает TRUE и перечисляет имена товаров, если ВСЕ записи в таблице info имеют количество = 7.
SELECT name
FROM product
WHERE product_id = ALL (SELECT product_id FROM info WHERE couns =7);
Оператор ALL возвращает TRUE, если все значения подзапроса удовлетворяют условию.Следующий оператор SQL возвращает TRUE и перечисляет имена товаров, если ВСЕ записи в таблице info имеют количество = 7.
👍7❤1
Это высокопроизводительная NoSQL база данных с открытым исходным кодом. Она работает с типами «ключ — значение».
Начнём с того, что это нереляционная СУБД, то есть никаких SOL команд ждать не стоит. Он небезопасный, нет никаких пользователей, а если порт окажется открытым, довольно легко получить доступ к системе.
Почему он такой популярный?
Во-первых, Данные хранятся довольно просто, ключ и значение. Во вторых - скорость. Эту базу данных часто используют как кеширующую
Начнём с того, что это нереляционная СУБД, то есть никаких SOL команд ждать не стоит. Он небезопасный, нет никаких пользователей, а если порт окажется открытым, довольно легко получить доступ к системе.
Почему он такой популярный?
Во-первых, Данные хранятся довольно просто, ключ и значение. Во вторых - скорость. Эту базу данных часто используют как кеширующую
👍6❤1
Информация внутри базы данных
представлена в виде объекта, который
отвечает как экземпляр модели базы данных.
OOD (Object-Oriented Database) используется
чаще всего с объектно-ориентированными
языками программирования, такие как, Java,
kotlin, C#.
Преимущество такой базы данных в том, что
БД может очень быстро запрашивать объекты
со сложными отношениями. Также структура
очень близка к программным объекта, что
делает код проще и легче.
представлена в виде объекта, который
отвечает как экземпляр модели базы данных.
OOD (Object-Oriented Database) используется
чаще всего с объектно-ориентированными
языками программирования, такие как, Java,
kotlin, C#.
Преимущество такой базы данных в том, что
БД может очень быстро запрашивать объекты
со сложными отношениями. Также структура
очень близка к программным объекта, что
делает код проще и легче.
👍5🔥1
Пример:
SELECT Orders.OrderID, Employees.LastName,
Employees.FirstName FROM Orders RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID ORDER BY Orders.OrderID;
RIGHT JOIN возвращает все строки из правой таблицы и соответствующие записи из левой таблицы. Результатом будет NULL с левой стороны, если совпадений нет. В данном примере возвращаются все сотрудники и любые заказы, которые они могли разместить. Обрати внимание, RIGHT JOIN возвращает все записи из правой таблицы (Employees), даже если нет совпадений в левой таблице (Orders).👍7🔥2❤1
Пример:
TABLE Truncate_test;
GO
INSERT INTO Truncate_test(val) VALUES (1), (2), (3);
SELECT * FROM Truncate_test;
GO
Команда SQL TRUNCATE TABLE используется для полного удаления данных из существующей таблицы. Также ты можешь использовать команду DROP TABLE для удаления всей таблицы. Однако она удалит всю структуру таблицы из базы данных. Тебе нужно будет заново создать эту таблицу еще раз, если ты хочешь сохранить некоторые данные.👍6🔥1
Пример:
TEBLE CUSTOMERS (ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL UNIQUE, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID));Ограничение UNIQUE не позволяет двум записям иметь одинаковые значения в столбце. Например, в таблице CUSTOMERS ты можешь запретить двум или более людям иметь одинаковый возраст. В данном примере для столбца AGE установлено значение UNIQUE. В результате этого у тебя не может быть двух записей с одинаковым возрастом.
👍6❤1🔥1
Примеры:
Функция NULLIF() возвращает NULL, если два выражения равны. В противном случае возвращается первое выражение. NULLIF полезен, когда ты работаешь с устаревшими данными, которые содержат смесь нулевых и пустых строк в столбце. В первом примере возвращается NULL, во втором – первое выражение, в третьем – NULL.
SELECT NULLIF('Hello', 'Hello'); SELECT NULLIF('Hello', 'world'); SELECT NULLIF('2017-08-25', '2017-08-25'); Функция NULLIF() возвращает NULL, если два выражения равны. В противном случае возвращается первое выражение. NULLIF полезен, когда ты работаешь с устаревшими данными, которые содержат смесь нулевых и пустых строк в столбце. В первом примере возвращается NULL, во втором – первое выражение, в третьем – NULL.
👍9❤1
Пример:
SELECT ROWNUM, customers.* FROM customers WHERE customer_id > 4500;
Функция Oracle/PLSQL ROWNUM возвращает число, представляющее порядок, в котором Oracle выбирает строку из таблицы или объединенных таблиц. В первой строке ROWNUM равен 1, во второй ROWNUM равен 2 и так далее. С помощью данной функции ты можешь указать количество возвращаемых записей.👍8
Пример:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
Ограничение CHECK используется для ограничения диапазона значений, которые можно поместить в столбец. Если ты определяешь CHECK для столбца, это позволит использовать только определенные значения для этого столбца. Если определяется CHECK для таблицы, будут ограничены значения в определенных столбцах на основе значений в других столбцах в строке. В данном примере создается ограничение CHECK для столбца «Age» при создании таблицы «Persons». CHECK гарантирует, что возраст человека будет 18 лет и старше.👍8🔥3
Пример:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);
Ограничение DEFAULT используется для установки значения по умолчанию для столбца. Значение по умолчанию будет добавлено ко всем новым записям, если не указано другое значение. В данном примере мы устанавливаем значение DEFAULT для столбца «City» при создании таблицы «Persons».👍6❤2🆒2
Примеры:
SELECT * FROM Universities WHERE Students BETWEEN 10000 AND 30000
SELECT * FROM Universities WHERE Professores NOT BETWEEN 2000 AND 14000
Оператор BETWEEN позволяет выбрать значения в заданном диапазоне. Значения могут быть числами, текстом или датами. Оператор BETWEEN является инклюзивным: включаются начальное и конечное значения. Если же ты хочешь отобразить результаты за пределами диапазона, используй NOT BETWEEN.👍7🔥2❤1