Что такое индексы? (Indexes) — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Что такое индексы? (Indexes)

2022-07-03 67
Что такое индексы? (Indexes) 0.00 из 5.00 0 оценок
Заказать работу

Индекс - объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счет того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева. Различные типы индексов:

● B-Tree index

● Bitmap index

● Clustered index

● Covering index

● Non-unique index

● Unique index

Что вы знаете о требованиях ACID?

Требования ACID на простом языке

Что такое “федеративные таблицы” в Mysql?

https://ru.stackoverflow.com/questions/573097/%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D1%84%D0%B5%D0%B4%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B-%D0%B2-mysql

 

Тип памяти BLACKHOLE

http://www.plam.ru/compinet/mysql_rukovodstvo_professionala/p45.php

 

Так как тестировать базы данных?

https://www.softwaretestinghelp.com/database-testing-process/

https://stackoverflow.com/questions/260342/what-best-practices-do-you-use-for-testing-database-queries

https://engineering.helpscout.com/testing-code-that-talks-to-the-database-7d15a5391fb9

https://towardsdatascience.com/testing-your-database-a0eee0d44115

 

 

Какие шаги выполняет тестировщик при тестировании хранимых процедур?

Тестировщик проверяет стандартный формат хранимых процедур, а также проверяет правильность полей, таких как updates, joins, indexes, deletions как указано в хранимой процедуре.

Как бы вы узнали для тестирования базы данных, сработал триггер или нет?

В журнале аудита (audit log) вы можете увидеть срабатывание триггеров.

Как тестировать загрузку данных при тестировании базы данных?

● Исходные данные должны быть известны

● Целевые данные должны быть известны

● Совместимость источника и цели должна быть проверена

● В диспетчере SQL Enterprise запустите пакет DTS после открытия соответствующего пакета DTS.

● Вы должны сравнить столбцы цели и источника данных

● Количество строк цели и источника должны быть проверены

● После обновления данных в источнике проверьте, появляются ли изменения в цели или нет.

● Проверьте на NULL и ненужные символы

Основные команды SQL?

● Просмотр доступных баз данных

SHOW DATABASES;

● Создание новой базы данных

CREATE DATABASE;

● Выбор базы данных для использования

USE <database_name>;

● Импорт SQL-команд из файла.sql

SOURCE <path_of_.sql_file>;

● Удаление базы данных

DROP DATABASE <database_name>;

● Просмотр таблиц, доступных в базе данных

SHOW TABLES;

● Создание новой таблицы

CREATE TABLE <table_name1> (

<col_name1> <col_type1>,

<col_name2> <col_type2>,

<col_name3> <col_type3>

PRIMARY KEY (<col_name1>),

FOREIGN KEY (<col_name2>) REFERENCES <table_name2>(<col_name2>)

);

● Добавление данных в таблицу

INSERT INTO <table_name> (<col_name1>, <col_name2>, <col_name3>, …)

VALUES (<value1>, <value2>, <value3>, …);

При добавлении данных в каждый столбец таблицы не требуется указывать названия столбцов.

INSERT INTO <table_name>

VALUES (<value1>, <value2>, <value3>, …);

● Обновление данных таблицы

UPDATE <table_name>

SET <col_name1> = <value1>, <col_name2> = <value2>,...

WHERE <condition>;

● Удаление всех данных из таблицы

DELETE FROM <table_name>;

● Удаление таблицы

DROP TABLE <table_name>;

SELECT используется для получения данных из определенной таблицы:

SELECT <col_name1>, <col_name2>, …

FROM <table_name>;

● Следующей командой можно вывести все данные из таблицы:

SELECT * FROM <table_name>;

SELECT DISTINCT

● В столбцах таблицы могут содержаться повторяющиеся данные. Используйте SELECT DISTINCT для получения только неповторяющихся данных.

SELECT DISTINCT <col_name1>, <col_name2>, …

FROM <table_name>;

WHERE

● Можно использовать ключевое слово WHERE в SELECT для указания условий в запросе:

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

WHERE <condition>;

● В запросе можно задавать следующие условия:

сравнение текста;

сравнение численных значений;

логические операции AND (и), OR (или) и NOT (отрицание).

Пример

Попробуйте выполнить следующие команды. Обратите внимание на условия, заданные в WHERE:

SELECT * FROM course WHERE dept_name=’Comp. Sci.’;

SELECT * FROM course WHERE credits>3;

SELECT * FROM course WHERE dept_name='Comp. Sci.' AND credits>3;

● Оператор GROUP BY часто используется с агрегатными функциями, такими как COUNT, MAX, MIN, SUM и AVG, для группировки выходных значений.

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

GROUP BY <col_namex>;

Пример

Выведем количество курсов для каждого факультета:

SELECT COUNT(course_id), dept_name

FROM course

GROUP BY dept_name;

● Ключевое слово HAVING было добавлено в SQL потому, что WHERE не может быть использовано для работы с агрегатными функциями.

SELECT <col_name1>, <col_name2>,...

FROM <table_name>

GROUP BY <column_namex>

HAVING <condition>

Пример

Выведем список факультетов, у которых более одного курса:

SELECT COUNT(course_id), dept_name

FROM course

GROUP BY dept_name

HAVING COUNT(course_id)>1;

● ORDER BY используется для сортировки результатов запроса по убыванию или возрастанию. ORDERBY отсортирует по возрастанию, если не будет указан способ сортировки ASC или DESC.

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

ORDER BY <col_name1>, <col_name2>, … ASC (вертикальная черта) DESC;

Пример

Выведем список курсов по возрастанию и убыванию количества кредитов:

SELECT * FROM course ORDER BY credits;

SELECT * FROM course ORDER BY credits DESC;

● BETWEEN используется для выбора значений данных из определенного промежутка. Могут быть использованы числовые и текстовые значения, а также даты.

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

WHERE <col_namex> BETWEEN <value1> AND <value2>;

Пример

Выведем список инструкторов, чья зарплата больше 50 000, но меньше 100 000:

SELECT * FROM instructor

WHERE salary BETWEEN 50000 AND 100000;

● Оператор LIKE используется в WHERE, чтобы задать шаблон поиска похожего значения.

Есть два свободных оператора, которые используются в LIKE:

% (ни одного, один или несколько символов);

_ (один символ).

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

WHERE <col_namex> LIKE <pattern>;

Пример

Выведем список курсов, в имени которых содержится «to», и список курсов, название которых начинается с «CS-»:

SELECT * FROM course WHERE title LIKE ‘%to%’;

SELECT * FROM course WHERE course_id LIKE 'CS-___';

● С помощью IN можно указать несколько значений для оператора WHERE:

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

WHERE <col_namen> IN (<value1>, <value2>, …);

Пример

Выведем список студентов с направлений Comp. Sci., Physics и Elec. Eng.:

SELECT * FROM student

WHERE dept_name IN (‘Comp. Sci.’, ‘Physics’, ‘Elec. Eng.’);

● JOIN используется для связи двух или более таблиц с помощью общих атрибутов внутри них.

● View — это виртуальная таблица SQL, созданная в результате выполнения выражения. Она содержит строки и столбцы и очень похожа на обычную SQL-таблицу. View всегда показывает самую свежую информацию из базы данных.

Создание

CREATE VIEW <view_name> AS

SELECT <col_name1>, <col_name2>, …

FROM <table_name>

WHERE <condition>;

Удаление

DROP VIEW <view_name>;

Пример

Создадим view, состоящую из курсов с 3 кредитами:

● 24. Агрегатные функции - эти функции используются для получения совокупного результата, относящегося к рассматриваемым данным. Ниже приведены общеупотребительные агрегированные функции:

COUNT (col_name) — возвращает количество строк;

SUM (col_name) — возвращает сумму значений в данном столбце;

AVG (col_name) — возвращает среднее значение данного столбца;

MIN (col_name) — возвращает наименьшее значение данного столбца;

MAX (col_name) — возвращает наибольшее значение данного столбца.

● Вложенные подзапросы — это SQL-запросы, которые включают выражения SELECT, FROM и WHERE, вложенные в другой запрос.

Пример

Найдем курсы, которые преподавались осенью 2009 и весной 2010 годов:

SELECT DISTINCT course_id

FROM section

WHERE semester = ‘Fall’ AND year= 2009 AND course_id IN (

SELECT course_id

FROM section

WHERE semester = ‘Spring’ AND year= 2010

);

 

Доп. материал:

SQL запросы быстро. Часть 1

 

Подробнее о джойнах? (Join)

Как и было сказано выше, различные виды JOIN помогают объединить некие данные из нескольких таблиц каким-либо образом.

Так чем отличается INNER JOIN от LEFT JOIN? Чаще всего ответ примерно такой: "inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах, а left join — это когда левая таблица остается без изменений, а от правой добавляется пересечение множеств. Для всех остальных строк добавляется null". Еще, бывает, рисуют пересекающиеся круги.

Это понимание и подобные ответы – по сути не совсем верны, т.к. все джойны – декартово произведение (cross join) с фильтрами (предикатом и, возможно, UNION). Также стоит обратить внимание на порядок таблиц при различных джойнах.

 

Доп. материал:

Понимание джойнов сломано. Это точно не пересечение кругов, честно

SQL на котиках: Джоины (Joins)

 

Типы данных в SQL?

● Exact Numeric SQL Data Types:

o bigint = Range from -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
int = Range from -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
smallint = Range from -2^15 (-32,768) to 2^15-1 (32,767)
tinyint = Range from 0 to 255
bit = 0 and 1
decimal = Range from –10^38 +1 to 10^38 -1
numeric = Range from -10^38 +1 to 10^38 -1
money = Range from -922,337,203,685,477.5808 to +922,337,203,685,477.5807
small money = Range from -214,748.3648 to +214,748.3647

● Approximate Numeric SQL Data Types:

o float = Range from -1.79E + 308 to 1.79E + 308
real = Range from -3.40E + 38 to 3.40E + 38

● Date and Time SQL Data Types:

o datetime = From Jan 1, 1753 to Dec 31, 9999
smalldatetime = From Jan 1, 1900 to Jun 6, 2079
date = To store a date like March 27, 1986
time = To store a time of day like 12:00 A.M.

● Character Strings SQL Data Types:

o char = Maximum length of 8,000 characters
varchar = Maximum of 8,000 characters
varchar(max) = Maximum length of 231 characters
text = Maximum length of 2,147,483,647 characters.

● Unicode Character Strings SQL Data Types:

o nchar = Maximum length of 4,000 characters
nvarchar = Maximum length of 4,000 characters
nvarchar(max) = Maximum length of 231 characters
ntext = Maximum length of 1,073,741,823 characters

● Binary SQL Data Types:

o binary = Maximum length of 8,000 bytes
varbinary = Maximum length of 8,000 bytes
varbinary(max) = Maximum length of 231 bytes
image = Maximum length of 2,147,483,647 bytes

 

Шпаргалки SQL

 


 

----- (Не обновлялось) Практическая часть -----


Поделиться с друзьями:

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.043 с.