Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introduction to databases and SQL
Search
Olga Mazur
April 28, 2016
Education
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to databases and SQL
Olga Mazur
April 28, 2016
Other Decks in Education
See All in Education
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
PRO
4
19k
Comentario del plano urbano de Madrid hasta 1860 (1ª parte )
juanmartin2026
1
66k
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
250
Visionary Initiative: Future Intelligence 「未来の知性と社会の礎を築く」|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
1.7k
Throw Yourself In! - How I've learned English and What I'm Facing
georgeorge
1
260
[2026前期火5] 論理学(京都大学文学部 前期 第13回)「走って、止まって、積み上がる」
yatabe
0
220
データマネジメント試験対策教材1〜データマネジメント基礎〜
yoshimura_datam
1
730
Tableau Public入門ハンズオン|Titanicデータで学ぶViz作成とMakeover
hayashi_ds017
0
130
2026年度春学期 統計学 第13回 不確かな測定の不確かさを測る ― 不偏分散とt分布 (2026. 6. 25)
akiraasano
PRO
1
180
Center for Entrepreneurship Education | Science Tokyo (Institute of Science Tokyo)
sciencetokyo
PRO
0
390
Visionary Initiative: Future Intelligence — Laying the foundations for the future of science, intelligence, and society | Science Tokyo
sciencetokyo
PRO
0
320
25-26 CBT Library top items
cbtlibrary
0
240
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
GitHub's CSS Performance
jonrohan
1033
470k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
530
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Transcript
None
Базы данных и SQL Ольга Мазур
План Применение в тестировании Виды баз данных Основы работы Подключение
Как сориентироваться Чтение, запись, поиск Автотесты 3
Применение: зачем всё это?
Функциональное тестирование Проверка скрытой информации Поиск данных для тестирования Создание
предусловий Подготовка тестовой среды с нуля 5
Тестирование безопасности: SQL инъекции 6
Виды баз данных
Реляционные NoSQL 8
Реляционные 9
Реляционные БД: таблицы 10
NoSQL 11
NoSQL: Key-Value …. …. 12 key1 keyN
NoSQL: документо-ориентированные 13
Основы работы с БД
None
None
None
Подключение
Клиенты mysql MySQL Workbench HeidiSQL … 19
Подключение mysql -h [хост] -P [порт] -u [пользователь] -p[пароль] 20
Ориентирование на местности
SHOW DATABASES USE SHOW TABLES SHOW COLUMNS IN 22
23
24
25
26
27
28
29
None
Чтение и поиск
Чтение по ключу SELECT [что] FROM [откуда] WHERE [условие] 32
33 Code
Поиск по образцу SELECT [что] FROM [откуда] WHERE [поле] LIKE
[регулярка] LIMIT N 34 Code
None
Поиск с агрегацией SELECT [что] FROM [откуда] GROUP BY […]
HAVING […] LIMIT N агрегаторы: count, max, min, sum, …. 36 Code
Запись
UPDATE INSERT 38
Изменение UPDATE [что] SET [поле=значение,…] WHERE [условие] 39 Code
None
Вставка INSERT INTO [куда] ([названия столбцов]) VALUES [значения] 41
SQL инъекции
SQL инъекции /get_owner?id=[id] SELECT name FROM owners WHERE id= $id
/get_owner?id=«-1 UNION SELECT password FROM admin» SELECT name FROM owners WHERE id=-1 UNION SELECT password FROM admin 43
Автотесты
Как работать с БД из Java? JDBC и java.sql.* 45
Как работать с БД из Java? JDBC и java.sql.* 46
Подключиться 47 Connection connection = DriverManager.getConnection( "jdbc:mysql://db.host.ru:3310/db_name", "user", "password"); DSLContext
create = DSL.using(connection, SQLDialect.MYSQL);
Выполнить запрос 48 Record1 result = create.select(field("name")) .from(table("table_name")) .where(field("id").equal(id)) .fetchOne();
String name = result.getValue(0, String.class);
Закрыть соединение 49 connection.close();
Как может выглядеть клиент 50 public MetrikaDatabaseClient() { //подключение }
public String getCounterName(Integer counterId){ //вызов select и разбор результата } public void close(){ //закрытие соединения }
Как может выглядеть использование в тесте 51 @Before public void
before() { dbClient = new MetrikaDatabaseClient(); } @Test public void someCounterTest() { ... String name = dbClient.getCounterName(counterId); ... } @After public void after() { dbClient.close(); }
Вопросы?
Полезные ссылки Документация по синтаксису MySQL http://bit.ly/1u09bkI Инъекции для начинающих
(хабр) http://bit.ly/1XQst7J JOOQ http://bit.ly/1OdM4eC Hibernate http://bit.ly/1WkK0Gn 53