Доброй пятницы!
С вами снова TEST IT и ваш любимый сменный-редактор-по-пятницам Татьяна Зинченко.
Сегодня мы поговорим об SQL. Тем более, есть повод: письмо Алексея. Алексей пишет:
Итак.
С чего начинается SQL?
С того, что мы узнаем разницу между Базой Данных (БД) и Системой Управления Базами Данных (СУБД). А еще узнаём, что SQL - это такой язык, который помогает нам взаимодействовать с БД посредством СУБД или какого-нибудь графического интерфейса (например, консоли).
После этого мы идем в стандарты и там узнаем, что есть такой ANSI (American National Standards Institute), который занимался стандартизацией языка SQL почти с самых первых годов его развития. Там же узнаем, что есть стандарты языка SQL. Из Википедии узнаем, что стандартов было много, самый первый - 1986 года, а последний совсем свежий - 2011 года. Но самым значимым (в плане добавлений новых фич) считается версия 1999 года (SQL-3).
А потом?
А потом мы узнаем, что в мире есть много разных СУБД, как платных, так и бесплатных. И вот тут начинается самое интересное. Дело в том, что язык, который используется в одной конкретной СУБД может отличаться от другой конкретной СУБД. Например, в СУБД MS SQL Server (от небезызвестной Microsoft) используется язык Transact-SQL (или T-SQL), в СУБД Oracle используется тоже свой тип SQL.
И вот здесь начинается самое интересное. "С чего начать" зависит от того, какой тип СУБД используется у вас на конкретном проекте. Конечно, если Вы освоите какую-то СУБД хорошо - для вас не будет проблемой перейти на другую. Ну, немножко почитать про разницу в запросах и особенности - и все. Много времени это не займет. Но вот изучать самую первую СУБД в отрыве от реального проекта я бы все же не советовала.
Обычно первое, что требуется от тестировщика, впервые допущенного к БД, - просто посмотреть записи в ней вручную. Т.е. найти самостоятельно таблицу, а в ней - столбец/строку, в которую должны были добавиться данные. Особых умений для этого не требуется - достаточно ознакомиться с интерфейсом конкретной СУБД и выспросить у программистов какие названия столбцов в базе соответствуют каким названиям полей на пользовательском интерфейсе.
Потом тестировщику позволяют сделать его первый SELECT. При этом благоразумные админы делают пару бэкапов. Так, на всякий случай.
И только в том случае, если все прошло хорошо, вам позволят перейти к UPDATE или даже DELETE, а то и вовсе DROP. А, может, и индексы допустят поменять - кто знает?
Если нет, но очень хочется.
Если СУБД на проекте нет, и проекта нет, а SQL изучить хочется "чтобы было", то рекомендую начать с изучения не просто языка, а в связке с чем-то. Самой простой в освоении и наиболее приближенной к ANSI SQL является MySQL. В сети можно найти множество книг и курсов по ней, но и сам мануал к ней достаточно понятный и обширный. Единственный недостаток - всё это рассчитано либо на программистов, либо на системных администраторов. Почему-то про тестировщиков в контексте СУБД почти никто не думает.. :) Поэтому всю полученную информацию нужно будет отфильтровывать через призму нашей профессии.
На этом остановлюсь, хотя душа требует полета и еще 20-30 страниц текста.
Если остались вопросы - обязательно пишите! Наш адрес все еще: sprosi.testera@gmail.com, публикация ответов все еще по пятницам! :)
Удачи в освоении и приятных выходных! :)
С вами снова TEST IT и ваш любимый сменный-редактор-по-пятницам Татьяна Зинченко.
Сегодня мы поговорим об SQL. Тем более, есть повод: письмо Алексея. Алексей пишет:
"Я только начинаю учить SQL. С чего бы Вы мне посоветовали начать? Какая литература бы мне помогла?"Об SQL я могу говорить часами. А если учесть мой курс SQL для тестировщиков, то становится понятно, что и вовсе месяцами :) Но раз нужно уложиться в формат одного ответа - я попробую.
Итак.
С чего начинается SQL?
С того, что мы узнаем разницу между Базой Данных (БД) и Системой Управления Базами Данных (СУБД). А еще узнаём, что SQL - это такой язык, который помогает нам взаимодействовать с БД посредством СУБД или какого-нибудь графического интерфейса (например, консоли).
После этого мы идем в стандарты и там узнаем, что есть такой ANSI (American National Standards Institute), который занимался стандартизацией языка SQL почти с самых первых годов его развития. Там же узнаем, что есть стандарты языка SQL. Из Википедии узнаем, что стандартов было много, самый первый - 1986 года, а последний совсем свежий - 2011 года. Но самым значимым (в плане добавлений новых фич) считается версия 1999 года (SQL-3).
А потом?
А потом мы узнаем, что в мире есть много разных СУБД, как платных, так и бесплатных. И вот тут начинается самое интересное. Дело в том, что язык, который используется в одной конкретной СУБД может отличаться от другой конкретной СУБД. Например, в СУБД MS SQL Server (от небезызвестной Microsoft) используется язык Transact-SQL (или T-SQL), в СУБД Oracle используется тоже свой тип SQL.
И вот здесь начинается самое интересное. "С чего начать" зависит от того, какой тип СУБД используется у вас на конкретном проекте. Конечно, если Вы освоите какую-то СУБД хорошо - для вас не будет проблемой перейти на другую. Ну, немножко почитать про разницу в запросах и особенности - и все. Много времени это не займет. Но вот изучать самую первую СУБД в отрыве от реального проекта я бы все же не советовала.
Обычно первое, что требуется от тестировщика, впервые допущенного к БД, - просто посмотреть записи в ней вручную. Т.е. найти самостоятельно таблицу, а в ней - столбец/строку, в которую должны были добавиться данные. Особых умений для этого не требуется - достаточно ознакомиться с интерфейсом конкретной СУБД и выспросить у программистов какие названия столбцов в базе соответствуют каким названиям полей на пользовательском интерфейсе.
Потом тестировщику позволяют сделать его первый SELECT. При этом благоразумные админы делают пару бэкапов. Так, на всякий случай.
И только в том случае, если все прошло хорошо, вам позволят перейти к UPDATE или даже DELETE, а то и вовсе DROP. А, может, и индексы допустят поменять - кто знает?
Если нет, но очень хочется.
Если СУБД на проекте нет, и проекта нет, а SQL изучить хочется "чтобы было", то рекомендую начать с изучения не просто языка, а в связке с чем-то. Самой простой в освоении и наиболее приближенной к ANSI SQL является MySQL. В сети можно найти множество книг и курсов по ней, но и сам мануал к ней достаточно понятный и обширный. Единственный недостаток - всё это рассчитано либо на программистов, либо на системных администраторов. Почему-то про тестировщиков в контексте СУБД почти никто не думает.. :) Поэтому всю полученную информацию нужно будет отфильтровывать через призму нашей профессии.
На этом остановлюсь, хотя душа требует полета и еще 20-30 страниц текста.
Если остались вопросы - обязательно пишите! Наш адрес все еще: sprosi.testera@gmail.com, публикация ответов все еще по пятницам! :)
Удачи в освоении и приятных выходных! :)
Возможно будет полезно:
ОтветитьУдалитьТеория сжато: http://www.w3schools.com/sql/sql_intro.asp
Задачки:
http://en.wikibooks.org/wiki/SQL_Exercises
http://www.sqlcourse.com/index.html
http://www.sqlcourse2.com/index.html
Спасибо за хорошую подборку :)
УдалитьSQL начинается с теории множеств :)
ОтветитьУдалитьНу, у кого с чего :) У некоторых вообще с: "Вот тебе автотесты, а еще там SQL-запрос кривой - поправь!" А там - джойны на кучу таблиц ))
УдалитьПомимо всего прочего есть классный сайт с краткой теорией и практикой http://sql-ex.ru/
ОтветитьУдалитьДа, и он тоже есть, конечно :)
УдалитьОчень рекомендую курс https://class.coursera.org/db/class/index
ОтветитьУдалитьНасыщенные лекции, хорошие упражнения)
Для тех, кто знает хорошо английский, безусловно, очень хорошо! :)
УдалитьЯ, конечно, могу ошибаться, но мне кажется, что как раз-таки SQL можно изучать и в отрыве от конкретной СУБД. И, я бы даже сказал, нужно: без хорошего знания SQL (по крайней мере, на уровне запросов средней сложности) до реальных проектов дело может и не дойти - до сих пор помню проваленное собеседование несколько лет назад (как и пару несостоявшихся - по той же причине). А для тестировщиков SQL - это часть "джентльменского набора" (прошу прощения у леди :)).
ОтветитьУдалитьЛитературы навалом - начинающим я бы, наверное, рекомендовал любую из книг Мартина Грабера (кое-что есть и в Сети: http://www.sql.ru/docs/sql/u_sql/) - лаконично и доступно. А вот чтобы параллельно с изучением теории "набить руку", я бы посоветовал Interactive SQL tutorials, например, вот этот: http://sqlzoo.net/wiki/SELECT