Задать вопрос

Как изучить язык баз данных SQL?

В гугле советуют «Изучаем SQL» Алана Бьюли, но он писал про 4 версию MySQL, а сейчас уже 8.
Или это ничего не меняет и книга все так же будет нормальной?
  • Вопрос задан
  • 55892 просмотра
Подписаться 37 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 9
@poimanoo
Я перед собеседованием на должность sql-джуна будучи полным нулем за ночь порешал задачки на этом сайте и на следующий день решил все предложенные задачи и был принят) Скажу так - я бы посоветовал порешать эти задачи, они там предлагаются по нарастанию сложности и подкреплены теорией, за которой вам не нужно лишний раз лезть в учебники. Уверяю, с каждым десятком решенных задач Вы будете чувствовать себя гуру sql) Спустя задачек 30, когда у Вас сформируется представление о том, что из себя представляет SQL на деле, тогда можно приступать к литературе, поверьте, после практики гораздо легче воспринимать материал, ибо уже имеется представление, о чем речь.
По литературе(с небольшими пояснениями):

1. Введение в системы баз данных(Автор C.J.Date) - на мой взгляд очень доступное и максимально компактное описание того, на чем базируется SQL, разжеваны основные понятия, рассмотрены нормальные формы, а после предлагаются задачки.

2. SQL Полное руководство - тут понятно по названию, здесь можно найти описание всех возможностей. Ищите наиболее позднее издание(у меня третье, для примера, это 2015 год).

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

Если вы выбрали MS SQL Server:

1. Microsoft SQL Server 2012 Руководство для начинающих - там хоть и не сильно углубляясь, но описано почти все что нужно на начальных этапах. Там и про индексы, и про оптимизацию, и про бизнес-аналитику, в общем, рекомендую.

2. Microsoft SQL Server 2012 Создание запросов - просто и исчерпывающе(на момент издания) о том, как можно и нужно писать запросы на t-sql(расширение sql для MS SQL Server) с закреплением материала предлагаемыми заданиями.

Если Вы выбрали Postgresql, то официальное руководство там исчерпывающее.

По Oracle и MySQL советов дать не могу, ибо дела не имел. Удачи!
Ответ написан
@AlexndrNovikov
Solution Architect in Spiral Scout
Книги это, конечно, здорово, но как показывает практика, большинство книги либо забрасывает, либо просто читает и не особо новые знания впитывает. (если речь о начинающих разработчиках, которые прям с нуля начинают книгу читать)

А самый логичный способ что-то изучить - это практика, практика и еще раз практика. Если нет реального проекта с реальными проблемами - рекомендовал бы пару ресурсов: sql-ex и pgexercises, там можно поработать как с совсем простыми и примитивными запросами, так и с гораздо более сложными.

Ну а овладев азами можно уже и книгу брать, чтобы закрыть пробелы, либо документацию по конкретной СУБД
Ответ написан
@dmitryKovalskiy
программист средней руки
SELECT/INSERT/UPDATE/DELETE и JOIN-ы не изменились. Большая часть работы с SQL - виртуозное владение этими командами.
Ответ написан
Комментировать
akaish
@akaish
Стек Java\Android
К сожалению, чтобы Вам что-то посоветовать - необходимо узнать Ваш личный "фундамент". Хоть указанная Вами книга и будет полезной (даже с учетом того, что она писалась для MySQL версии 4.х, фундаментально как в СУБД, так и в SQL и в конкретном синтаксисе MySQL последнее, наверно, десятилетие, ничего не менялось), я бы посоветовал следующий алгоритм обучения:

1) Знакомство с основами реляционной алгебры, нормальными формами и реляционной моделью. Без фанатизма, прочтение и осознание статей даже на Википедии хватит за глаза.

2) Знакомство с спецификацией SQL2008. Опять же, без фанатизма. В любом случае, работать Вы будете впоследствии с определенным диалектом языка.

3) Выбор диалекта языка. Подбор литературы (практически любой, за исключением книг из серии "{0} для чайников" и "100 и одно решение для {0}"). На этом этапе важно определиться также с инструментарием, который Вы будете использовать в дальнейшем. Для начала подойдет любой онлайн интерпретатор SQL кода, к примеру sqlfiddle. Но по мере изучения Вам понадобятся более сложные инструменты.

4) Знакомство с UML. Точнее, если по минимуму, с той частью, которая затрагивает прототипирование БД. SQL и СУБД - это инструменты, которые позволяют автоматизировать процессы бизнес логики. UML позволяет эти процессы описать и на основе этих процессов создать прототип схемы БД, от которого уже можно идти к конкретной реализации.

Итак. Четыре базовых шага выполнены. Дальше все просто, перевариваете информацию и занимаетесь практикой от простого к сложному (в комментариях уже указывали вполне годные наборы задачек). Попутно узнаете особенности программной реализации выбранной Вами СУБД. И внимательно читаете документацию от разработчика. На примере SQLite, у них подробно разобрана семантика запросов: SQLite CREATE. Под MySQL найдете сами.

Теперь поясню, почему все четыре шага важны.
1) Без базовых фундаментальных знаний вы просто не поймете, почему, к примеру, в ячейке столбца номера нельзя указывать два номера телефона, или как работают ограничения на целостность данных.
2) Хоть диалекты SQL и отличаются от стандарта SQL:2008, следует понимать, что знание стандарта позволит Вам в случае необходимости переключиться с одной СУБД на другую. Также, хорошая реляционная SQL СУБД должна быть совместима с этим стандартом априори.
3) Тут на Ваш вкус. Посмотрите изложение автора перед покупкой, посмотрите списки того или иного программного обеспечения. Но факт остается фактом, что прочтение только стандартов, мануалов и официальной документации - путь явно не для всех. Кому-то просто необходимо "художественное" изложение, да и просто из книг можно почерпнуть реальные примеры из опыта автора.
4) Надо понимать, что реляционные СУБД всего лишь инструмент для хранения и обработки данных, обеспечивающий определенные бизнес-процессы определенной предметной области. И под бизнес-процессами следует понимать не как какую-то эфемерную для простого человека вещь, а то, что закладывается под этим словом в оригинальном языке, т.е. совокупность процессов\действий, направленных на создание продукта\предоставление услуги. А средства UML позволяют все это описать в стандартизированной графической форме. Чтобы знать SQL не надо знать UML, не надо знать, что такое и, к примеру, ЖЦ программного продукта. Но со временем, если Вы захотите расти дальше, Вам нужен будет инструмент прототипирования. Также, как если вы дорастете до архитектора БД, вам нужно будет представление о том, как эти БД проектировать, начиная с описания предметной области и заканчивая организационной точкой зрения. Стандарты ГОСТ 34.601-90 и ISO/IEC 12207:2008.

Я, как и многие, начинал с какого-то полу прочитанного учебника и примеров из сети. Сейчас я понимаю, что просто потратил время практически впустую. Как ни странно, хоть и принято ругать наше образование, но список курсов для специальностей "ПИ" подобран не просто так. Помимо самого языка следует знать математический "бэкенд" и как его использовать для реализации задач предметной области. Я отношусь к SQL потребительски, это не мой основной язык, но сейчас я понимаю, что если бы уделил ему больше внимания не как языку, а, в первую очередь, как к одному из инструментов СУБД, работающих на основе реляционной алгебры для обеспечения бизнес-процессов, я бы избежал кучу потерянного времени, костылей и ошибок. Надеюсь, мой ответ будет Вам полезен.
Ответ написан
@shushpanio
shushpanio
Мартин Грубер - понимание SQL
Ответ написан
Комментировать
@Kolymenkov
Если ты совсем ноль, то самое первое – это скачивай книгу “Освой самостоятельно SQL за 10 минут”.
Далее. Заходишь на сайты: 1) sql-ex.ru (выбираешь синтаксис); 2) sql-tutorial.ru (там синтаксис T-SQL). Решаешь около 60 обучающих задач на DML и около 20 на DDL.
Далее. Скачиваешь книгу Святослава Куликова “Работа MYSQL, MS SQL SERVER и ORACLE в примерах”. Тут определяешься с базой данных. Если это SQL Server, то скачиваешь на торренте данную СУБД. Если Oracle, то скачиваешь образ для WMvare с их сайта, или используешь их online СУБД.
Далее. Находишь в зависимости от СУБД серьезные книжки. Если ты хочешь быть базистом, то, чтобы проверить потянешь ли, сдай на sql-ex экзамен на базовый сертификат, для этого нужно решить рейтинговые задачи. Если не сможешь, то будут большие трудности в работе программистом БД.
Далее, последний этап. Сдаешь экзамены от вендора.

Если ты просто программист, не базист, то тебе нужны только азы.

P.s. Жаль, что администрация удаляет качественные вопросы касаемо сферы программирования, ее минусов и перспектив. Очень жаль, но я понимаю, монетизация сайта.
Ответ написан
Комментировать
@NIKROTOS
Начинающий программист.
O REILLY изучаем SQl Линн Бейли
Отличная книга для начала, написана"для людей". Автор в первую очередь заботится о понимании языка, и того для чего он нужен+. Написана в разговорном стиле.
Ответ написан
Комментировать
Captain
@Captain
По моему личному опыту, самое сложное в изучении SQL было не книжки читать, а изменить сознание. Если уже есть в багаже какой-то язык программирования, то SQL хочется представить по аналогии. Но это совсем не так. SQL это про хранение и выборку данных. Вот в первую очередь нужно понять что такое таблички вообще, поля между ними, связи, индексы. А уже сам SQL это чисто техническое приложение.
Ответ написан
Комментировать
natalyos
@natalyos
Яжмаркетолог
Соглашусь с другими ответчиками, что как будто уже не особо актуально изучать это через книги, и намного эффективнее какие-нибудь онлайн-уроки, веб-ресурсы, с помощью которых вы получите более современные знания. Все очень быстро меняется, в том числе языки баз данных, поэтому я бы рекомендовала не литературу изучать, а найти себе репетитора или пройти онлайн-курсы. Например, на Coursera и Stepik есть бесплатные, рассчитаны на новичков.
Если вы уже имеете какой-то опыт, выберите из списка kursfinder.ru/sql/ более продвинутые курсы, и обязательно обращайте внимание на практику и возможность проконсультироваться с преподавателем, потому что не все предлагают такие услуги вместе с теорией.
Но если вот именно книги вам нужны, советы от меня:
  • «SQL. Полное руководство» Грофф Джеймс Р., Вайнберг Пол Н.;
  • «SQL. Сборник рецептов» Молинаро Энтони.

Обе книги можете заказать на озоне:)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы