Привет, уважаемый читатель! Этой записью я открою новую рубрику на свое блоге, в которой буду публиковать записи и даже не просто записи, а видео записи. Рубрика будет называться SQL и реляционные базы данных и публиковаться в ней будут видео уроки по технологии SQL и теория реляционных баз данных, естественно, в формате видео. Сам я не люблю слово курс, поскольку считаю, что курсы преподаются в университетах, но реалии Рунета таковы, что это слово используют очень часто, буду использовать иногда его и я.
Мой видео курс представляет собой набор видео скринкастов по теме SQL и базы данных, в качестве СУБД использовалась библиотека SQLite. Скринкасты разбиты на темы, темы в свою очередь разбиты на части, каждая часть — это отдельный видео урок продолжительностью 5-15 минут, в котором мы будем разбираться с теорией баз данных или SQL командами и запросами. Но не буду тянуть кота за хвост и сразу дам вам ссылку плейлист в Ютуб: SQL и реляционные базы данных . Видео в плейлисте расположены в том порядке, в котором я бы рекомендовал их смотреть. И не забудьте подписаться на мой канал, будет еще интереснее и больше!
Для кого будут полезны видео уроки из курса SQL и реляционные базы данных для начинающих?
Данные видео уроки будут полезны начинающим веб-разработчикам и SQL разработчикам. Для их изучения в принципе не потребуется каких-либо специфических знаний, достаточно быть уверенным пользователем компьютера, уметь печатать на клавиатуре и будет совсем круто, если вы хотя бы раз в жизни написали любую программу на любом языке программирования, даже если это Хеллое Ворлд на Бейсике.
Отмечу, что эти видео уроки будут полезны не только новичкам SQL, но и более продвинутым пользователям, которые имеют определенный набор знаний по SQL и базам данных, но этот набор знаний не систематизирован и не позволяет перейти к самостоятельной работе. Хоть начинаем мы и с простых вещей, которые я стараюсь рассказать доступно и внятно, но заканчиваем мы сложным SQL запросами, хотя кого я пугаю? :)) Сложных SQL запросов не бывает, бывают объемные запросы и запросы, потребляющие много ресурсов.
Как построены эти видео уроки?
За основы этих видео уроков были взяты публикации с моего блога из рубрики , данные видео уроки имеют схожую структуру, но все-таки есть небольшие отличия. Ниже вы найдете темы, на который разбит данный курс и краткое описание того, о чем я пытаюсь рассказать.
Основы SQLite и особенности данной СУБД?
В первой теме мы поговорим про особенности СУБД SQLite, посмотрим, где используют данную библиотеку и в каких целях, а также попробуем установить и настроить SQLite на компьютер под управлением операционной системы Windows 10. За основу были взяты публикации из первой темы: .
- Выбираем СУБД и говорим про программы для работы и администрирования баз данных.
- SQLite — программа для создания базы данных при помощи языка SQL.
- Установка приложения SQLite для работы с базами данных. Настраиваем доступ к базе данных.
- Система управления базами данных SQLite или где используется эта база данных.
- Беспалтные графические программы для работы с базами данных (менеджеры баз данных).
- Управление и администрирование баз данных при помощи DBeaver.
Пробуем составлять SQL запросы и работать с базой данных SQLite
В этой теме мы попробуем написать несколько SQL запросов, познакомимся с синтаксисом языка SQL, реализованным в SQLite (в принципе синтаксис SQL в разных СУБД очень и очень похож) и знакомимся с полезными системными командами, которые есть в SQLite, которые помогут нам работать с базами данных..html
Теория реляционных баз данных
Одна из базовых тем всего видео курса. На эту тему я буду ссылаться и опираться постоянно во всех последкющих. Здесь мы познакомимся с основами баз данных и научимся проектировать архитектуру своих баз данных, мы познакомимся с такими сложными на первый взгляд терминами как нормализация, избыточность данных, аномалии и другими и дадим им человеческое объяснение..html
Язык запросов SQL
Еще одна фундаментальная тема моих видео уроков по SQL и реляционным базам данных. Здесь мы знакомимся с языком SQL, его основными понятиями, структурой и концепцией. Также мы разбираемся с терминологией, которую используют SQL разработчики и проводим параллель между языком SQL и теорией реляционных баз данных, находим отличия и сходства, так сказать..html
Типы данных в SQLite
Весь видео курс я использую СУБД SQLite, которая является особенной СУБД, со своими особенностями типизации, также хочу заметить, что СУБД, собственно, управляет данными, поэтому тема типизации данных в принципе важна и может оказаться сложной для начинающего SQL разработчика, по крайней мере, для меня, когда я знакомился с базами данных, самым сложным моментом была типизация, поскольку много нужно было запоминать..html
SQL команды опрделения данных (DML команды)
Здесь мы начнем уже плотно работать с языком SQL и познакомимся с SQL команды опрделения данных, которые позволяют работать с объектами базы данных: создавать их, удалять и модифицировать. К объектам базы данных можно отнести: саму базу данных, таблицу в базе данных, VIEW, индексы, триггеры и др. Видео уроки данной темы посвящены синтаксису SQL команд CREATE, DROP, ALTER и их использованию..html
SQL команды манипуляции данными (DML команды)
Эта тема видео уроков познакомит вас с синтаксисом (правилами написания) SQL команд манипуляции данными (DML команд), к этим командам относятся: INSERT, DELETE, UPDATE, SELECT. Соответственно, команды позволяют: вставлять и добавлять строки в таблицы, удалять строки из таблиц, модифицировать данные в таблицах и делать выборку данных..html
SQL команды управления транзакциями
Данный раздел видео курса SQL и реляционные базы данных посвящен правилам написания команд, которые позволяют управлять транзакциями, спойлер открывать не буду, лишь скажу, что эти команды по-умному называются TCL, а также стоит добавить, что более детально мы будем разбираться с транзакциями в одной из последних тем..html
Работаем с таблицами базы данных
Эта тема видео уроков дает более глубокие знания и понимание того, как язык SQL позволяет работать с таблицами базы данных, какие особенности стоит учитывать и что мы можем вообще сделать с таблицей базы данных при помощи языка SQL..html
Обеспечение целостности данных
Эта тема моих видео уроков SQL хорошо демонстрирует применение теории реляционных баз данных на практике в языке SQL. Здесь мы научимся задавать различные ограничения, для того чтобы обезопасить свои данные! Также мы рассмотрим использование ключей или ключевых атрибутов на практике и научимся делать различные виды связей между таблицами..html
SQL триггеры на примере базы данных SQLite
Индексы SQL таблиц на примере баз данных SQLite
2 комментария к записи Видео курс и бесплатные уроки по SQL и реляционным базам данных для начинающих и не только
Здравствуйте! А где видео??? Где видео уроки то??? Весь сайт перерыл, все ссылки, всю карту сайта...
Please enable JavaScript to view theПредставляю Вашему вниманию вольный перевод статьи SQL for Beginners
Все больше современных веб-приложений взаимодействуют с базами данных, обычно используя язык SQL . К счастью для нас, этот язык довольно прост в изучении. В этой статье мы начнем изучение основ SQL-запросов и их взаимодействие с базой данных MySQL .
Что вам нужно
SQL (структурированный язык запросов) - язык разработанный для взаимодействия с реляционными системами управления базами данных (СУБД), таких как MySQL, Oracle, Sqlite и другими. Для выполнения SQL-запросов из этой статьи, я полагаю, что у вас установлен MySQL . Так же рекомендую использовать phpMyAdmin как визуальное средство отображения для MySQL .
Следующие приложения позволят легко установить MySQL и phpMyAdmin на ваш компьютер:
- WAMP для Windows
- MAMP для Mac
Приступим к выполнению запросов в командной строке. WAMP уже содержит ее в консоли MySQL . Для MAMP , возможно потребуется прочитать вот это.
CREATE DATABASE: Создание базы данных
Наш самый первый запрос. Мы создадим базу данных, с которой будем работать.
Первым делом откройте консоль MySQL и залогинтесь. Для WAMP , по-умолчанию, используется пустой пароль. Для MAMP пароль должен быть "root".
После входа напечатайте вот этот запрос и нажмите Enter :
CREATE DATABASE my_first_db;
Обратите внимание, точка с запятой (;) добавляется в конце запроса, так же как в конце строки в коде.
Так же, ключевые слова CREATE DATABASE нечувствительны к регистру, как и все ключевые слова в SQL . Но мы будем писать их в верхнем регистре для улучшения читаемости.
На заметку: набор символов и порядок сопоставления
Если вы хотите установить набор символов и порядок сопоставления по-умолчанию, используйте подобный запрос:
CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Вы найдете список поддерживаемых наборов символов и сопоставлений в MySQL .
SHOW DATABASES: Список всех баз данных
Этот запрос используется для отображения всех баз данных.
DROP DATABASE: Удалить базу данных
С помощью этого запроса вы можете удалить существующую базу данных.
Будьте осторожны с этим запросом, потому что он не выводит никаких предупреждений. Если у вас есть таблицы и данные в базе данных, запрос удалит их все в одно мгновение.
С технической точки зрения это не запрос. Это "оператор" и не требует точки с запятой в конце.
Он сообщает MySQL , что нужно выбрать базу данных по-умолчанию и работать с ней до конца сессии. Теперь мы готовы создать таблицы и остальное в этой базе данных.
Что такое таблица базы данных?
Вы можете думать о таблице в базе данных как о обычной таблице или как о csv-файле, который имеет структурированные данные.
Как в этом примере, в таблице есть имена строк и столбцы с данными. Используя SQL-запросы мы можем создать эту таблицу. Еще мы можем добавлять, считывать, изменять и удалять данные.
CREATE TABLE: Создать таблицу
Этим запросом мы можем создать таблицу в базе данных. К сожалению документация по MySQL не очень дружелюбна к новым пользователям. Структура этого запроса может быть очень сложной, но мы начнем с простого.
Следующий запрос создает таблицу с двумя столбцами.
CREATE TABLE users (username VARCHAR(20), create_date DATE);
Обратите внимание, мы можем записать запрос на нескольких строках и использовать Tab для отступа.
С первой строкой все просто. Мы создаем таблицу с именем users . Далее, в скобках, перечисляются столбцы таблицы через запятую. После каждого имени столбца идет тип данных, например, VARCHAR или DATE .
VARCHAR(20) означает, что столбец строкового типа и может быть не более 20 символов в длину. DATE - тип данных предназначенный для хранения дат в формате: "YYYY-MM-DD".
Первичный ключ
Перед тем как выполним этот запрос, мы должны вставить столбец user_id , который будет первичным ключом (PRIMARY KEY). Не вдаваясь в подробности, вы можете думать о первичном ключе как о способе распознать каждую строку данных в таблице.
Запрос становится таким:
CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20), create_date DATE);
INT - 32х битный целочисленный тип (числовой). AUTO_INCREMENT автоматически создает новый номер id каждый раз при добавлении строки данных. Оно не обязательно, но с ним удобнее.
Этот столбец может быть не целочисленным, хотя это самый распространенный тип данных. Столбец с первичным ключом не обязателен, но рекомендуется его использовать для улучшения производительности и архитектуры базы данных.
Давайте выполним запрос:
SHOW TABLES: Список всех таблиц
Запрос позволяет получить список всех таблиц в текущей базе данных.
EXPLAIN: Показать структуру таблицы
Используйте этот запрос для того, чтобы посмотреть структуру существующей таблицы.
В результате показаны поля (столбцы) и их свойства.
DROP TABLE: Удалить таблицу
Как и DROP DATABASES , этот запрос удаляет таблицу и ее содержимое без каких либо предупреждений.
ALTER TABLE: Изменить таблицу
Такой запрос может иметь сложную структуру , потому что может совершать множественные изменения в таблице. Посмотрим на простые примеры.
Благодаря читабельности SQL , этот запрос не нуждается в объяснении.
Удалить так же просто. Используйте запрос с осторожностью, данные удаляются без предупроеждений.
Заново добавим поле email , позже оно еще понадобится:
ALTER TABLE users ADD email VARCHAR(100) AFTER username;
Иногда вам может понадобится изменить свойства столбца, для этого не обязательно его удалять и создавать опять.
Этот запрос переименовывает поле username в user_name и изменяет его тип с VARCHAR(20) на VARCHAR(30) . Такие изменения не влияют на данные в таблице.
INSERT: Добавляем данные в таблицу
Давайте добавим записи в таблицу, используя запросы.
Как вы можете видеть, VALUES() содержит список значений, разделенный запятыми. Строковые значения заключаются в одинарные кавычки. Значения должны следовать в порядке, заданном при создании таблицы.
Обратите внимание, первое значение равно NULL для первичного ключа, поле которого мы назвали user_id . Все потому что поле отмечено как AUTO_INCREMENT и id генерируется автоматически. Первая строка данных будет иметь id равный 1. Следующая добавленная строка - 2 и т.д.
Альтернативный синтаксис
Вот другой синтаксис вставки строк.
На этот раз мы использовали ключевое слово SET вместо VALUES . Отметим несколько вещей:
- Столбец может быть опущен. Например, мы не присвоили значение полю user_id , потому что оно отмечено как AUTO_INCREMENT . Если не присвоить значение полю с типом VARCHAR , то по-умолчанию оно примет значение пустой строки (если другое значение по-умолчанию не было задано при создании таблицы).
- К каждому столбцу можно обращаться по имени. Поэтому поля могут идти в любом порядке, в отличии от предыдущего синтаксиса.
Альтернативный синтаксис номер 2
Вот еще один пример.
Как и раньше к полям можно обращаться по имени, они могут идти в любом порядке.
Используйте этот запрос для того, чтобы получить id последней вставленной строки.
NOW()
Пришло время показать вам как использовать функции MySQL в запросах.
Функция NOW() возвращает текущую дату. Используйте ее для автоматического добавления текущей даты в поле с типом DATE .
Обратите внимание, что мы получили предупреждение от MySQL , но это не так важно. Причина в том, что функция NOW() фактически возвращает информацию о времени.
Мы создали поле create_date , которое может содержать только дату, но не время, поэтому данные были усечены. Вместо NOW() мы могли бы использовать CURDATE() , которая возвращает только текущую дату, но в конечном итоге результат был бы тем же.
SELECT: Получение данных из таблицы
Очевидно, что данные которые мы записали бесполезны пока мы не можем их прочитать. На помощь приходит запрос SELECT .
Простейший пример использования запроса SELECT для чтения данных из таблицы:
Звездочка (*) означает, что мы хотим получить все столбцы таблицы. Если вам надо получить только определенные столбцы, используйте что-то вроде этого:
Чаще всего мы хотим получить только определенные строки, а не все. Например, давайте получим E-mail адрес пользователя nettuts .
Он подобен условию IF. WHERE позволяет задать условие в запросе и получить нужный результат.
Для условия равенства используется одиночный знак (=), а не двойной (==), который, возможно, вы используете в программировании.
Так же вы можете использовать другие условия:
AND и OR используются для комбинирования условий:
Обратите внимание, числовые значения не нужно заключать в кавычки.
IN()
Применяется для сравнения с несколькими значениями.
LIKE
Позволяет задавать шаблон для поиска.
Знак процента (%) используется для задания шаблона.
Условие ORDER BY
Используйте это условие, если хотите чтобы результат возвращался отсортированным:
По-умолчанию задан порядок ASC (по возрастанию). Добавьте DESC для сортировки в обратном порядке.
LIMIT … OFFSET …
Можно ограничивать количество возвращаемых строк.
LIMIT 2 берет две первых строки. LIMIT 1 OFFSET 2 берет одну строку, после первых двух. LIMIT 2, 1 означает тоже самое, только первое число это смещение, а второе - ограничивает количество строк.
UPDATE: Обновление данных в таблице
Этот запрос используется для обновления данных в таблице.
В большенстве случаев используется вместе с WHERE , для того чтобы обновить определенные строки. Если условие WHERE не задано, то изменения будут применены ко всем строкам.
Для ограничения изменяемых строк, можно использовать LIMIT .
DELETE: Удаление данных из таблицы
Как и , этот запрос часто используется совместно с условием WHERE .
TRUNCATE TABLE
Для удаления содержимого из таблицы, используйте такой запрос:
DELETE FROM users;
Для повышения производительности используйте .
Также сбрасыват счетчик поля AUTO_INCREMENT , поэтому вновь добавленные строки будут иметь id равный 1. При использовании этого не произойдет и счетчик будет дальше рости.
Экранирование строковых значений и специальные слова
Строковые значения
Некоторые символы нужно экранировть, иначе могут быть проблемы.
Обратный слэщ (\) используется для экранирования.
Это очень важно по причинам безопасности. Любые пользовательские данные, перед записью в базу данных, должны быть экранированы. В PHP используйте функцию mysql_real_escape_string() или подготовленные запросы.
Специальные слова
Поскольку в MySQL много зарезервированных слов, таких как SELECT или , во избежании противоречий, заключайте имена столбцов и таблиц в кавычки. Причем нужно использовать не обычные кавычки, а обратные (`).
Допустим, по каким то причинам, вы хотите добавить столбец с именем :
Заключение
Спасибо за прочтение статьи. Надеюсь я сумел показать вам, что язык SQL очень функционален и легок в изучении.
Добро пожаловать в область разработки баз данных, выполняемой с помощью стандартного языка запросов SQL. В системах управления базами данных (СУБД) имеется много инструментов, работающих на самых разных аппаратных платформах.
Основы реляционных баз данных
В этой главе… | Организация информации | Что такое база данных | Что такое СУБД | Сравнение моделей баз данных | Что такое реляционная база данных
Основы SQL
В этой главе… | Что такое SQL | Заблуждения, связанные с SQL | Взгляд на разные стандарты SQL | Знакомство со стандартными командами и зарезервированными словами SQL | Представление чисел, символов, дат, времени и других типов данных | Неопределенные значения и ограничения
Компоненты SQL
В этой главе… | Создание баз данных | Обработка данных | Защита баз данных | SQL - это язык, специально разработанный, чтобы создавать и поддерживать данные в реляционных базах. И хотя компании, поставляющие системы для управления такими базами, предлагают свои реализации SQL, развитие самого языка определяется и контролируется стандартом ISO/ANSI.
Создание и поддержка простой базы данных
В этой главе… | Создание, изменение и удаление таблицы из базы данных с помощью инструмента RAD. | Создание, изменение и удаление таблицы из базы данных с помощью SQL. | Перенос базы данных в другую СУБД.
Создание многотабличной реляционной базы данных
В этой главе… | Что должно быть в базе данных | Определение отношений между элементами базы данных | Связывание таблиц с помощью ключей | Проектирование целостности данных | Нормализация базы данных | В этой главе будет представлен пример создания многотабличной базы данных.
Манипуляции данными из базы
В этой главе… | Работа с данными | Получение из таблицы нужных данных | Вывод информации, выбранной из одной или множества таблиц | Обновление информации, находящейся в таблицах и представлениях | Добавление новой строки в таблицу
Определение значений
В этой главе… | Использование переменных для уменьшения избыточного кодирования | Получение часто запрашиваемой информации, находящейся в поле таблицы базы данных | Комбинирование простых значений для создания составных выражений | В этой книге постоянно подчеркивается, насколько важной для поддержания целостности базы данных является структура этой базы.
Сложные выражения со значением
В этой главе… | Использование условных выражений case | Преобразование элемента данных из одного типа данных в другой | Экономия времени ввода данных с помощью выражений со значением типа запись | В главе 2 SQL был назван подъязыком данных.
"Пристрелка" к нужным данным
В этой главе… | Указание требуемых таблиц | Отделение нужных строк от всех остальных | Создание эффективных предложений where | Как работать со значениями null | Создание составных выражений с логическими связками | Группирование вывода результата запроса по столбцу
Реляционные операторы
В этой главе… | Объединение таблиц, имеющих похожую структуру | Объединение таблиц, имеющих разную структуру | Получение нужных данных из множества таблиц | SQL - это язык запросов, используемый в реляционных базах данных.
Использование вложенных запросов
В этой главе… | Извлечение данных из множества таблиц с помощью одного оператора SQL | Поиск элементов данных путем сравнения значения из одной таблицы с набором значений из другой | Поиск элементов данных путем сравнения значения из одной таблицы с выбранным с помощью оператора select единственным значением из другой
Мартин Грабер «SQL для простых смертных» Лори, 2014 год, 382 стр. (11,2 мб. pdf)
Книгу можно охарактеризовать, как руководство для начинающих. Structured Query Language — SQL, язык программирования для создания и управления реляционными базами данных (прикладная, логическая модель построения совокупности (баз) данных). Книга рассчитана на самый простой (низкий) уровень подготовки в IT-сфере, то есть достаточно знаний в объеме школьной программы. Но это не значит, что материал руководства является только введением в этот язык программирования — нет, SQL описан довольно глубоко (утверждение автора).
Каждая глава добавляет новые данные с описанием взаимосвязанных понятий и определений. Весь последующий материал базируются на предыдущем — рассмотренном ранее, с рассмотрением в конце главы практических вопросов для лучшего усваивания полученных знаний. Ответы вы найдете в приложении А.
Введение в SQL представлено в первых семи главах, которые обязательны к изучению — если вы используете руководство, как SQL для начинающих. В последующих семи (с 8 по 14) главах рассматриваются более сложные примеры: комбинированные запросы, запросы сразу к нескольким таблицам. Другие возможности SQL: создание и редактирование таблиц, ввод и установка значений, открытие и закрытие доступа к созданным таблицам - изложены в главах с 15 по 23. В заключении о структуре баз данных и о возможности использования SQL в программах, разработанных на других языках. В приложениях приводится руководство по командам SQL и ответы на задания. Книга идеально подойдет для начинающих изучать SQL.
ISBN: 978-5-85582-301-1
Глава 1. Введение в реляционные базы данных
1
Что такое реляционная база данных? 3
Пример базы данных 5
Итоги 7
Глава 2. Введение в SQL
9
Как работает SQL? 10
Различные типы данных 12
Итоги 15
Глава 3. Использование SQL для выборки данных из таблиц
17
Формирование запроса 18
Определение выборки - предложение WHERE 24
Итоги 26
Глава 4. Использование реляционных и булевых операторов для создания более сложных предикатов
29
Реляционные операторы 30
Булевы операторы 32
Итоги 37
Глава 5. Использование специальных операторов в «условиях»
39
Оператор IN 40
Оператор BETWEEN 41
Оператор LIKE 44
Оператор IS NULL 47
Итоги 49
Глава 6. Суммирование данных с помощью функции агрегирования
51
Что такое функции агрегирования? 52
Итоги 61
Глава 7. Форматирование результатов запросов
63
Строки и выражения 64
Упорядочение выходных полей 67
Итоги 71
Глава 8. Использование множества таблиц в одном запросе
75
Соединение таблиц 76
Итоги 81
Глава 9. Операция соединения, операнды которой представлены одной таблицей
83
Как выполняется операция соединения двух копий одной таблицы 84
Итоги 90
Глава 10. Вложение запросов
93
Как выполняются подзапросы? 94
Итоги 105
Глава 11. Связанные подзапросы
107
Как формировать связанные подзапросы 108
Итоги 115
Глава 12. Использование оператора EXISTS
117
Как работает оператор EXISTS? 118
Использование EXISTS со связанными подзапросами 119
Итоги 124
Глава 13. Использование операторов ANY, ALL и SOME
127
Специальный оператор ANY или SOME 128
Специальный оператор ALL 135
Функционирование ANY. ALL и EXISTS при потере данных или
с неизвестными данными 139
Итоги 143
Глава 14. Использование предложения UNION
145
Объединение множества запросов в один 146
Использование UNION с ORDER BY 151
Итоги 157
Глава 15. Ввод, удаление и изменение значений нолей
159
Команды обновления DML 160
Ввод значений 160
Исключение строк из таблицы 162
Изменение значений полей 163
Итоги 165
Глава 16. Использование подзапросов с командами обновления
167
Использование подзапросов в INSERT 168
Использование подзапросов с DELETE 170
Использование подзапросов с UPDATE 174
Итоги 177
Глава 17. Создание таблиц
178
Команда CREATE TABLE 179
Индексы 181
Изменение таблицы, которая уже была создана 182
Исключение таблицы 183
Итоги 185
Глава 18. Ограничения на множество допустимых значений данных
186
Ограничения в таблицах 195
Итоги 197
Глава 19. Поддержка целостности данных
198
Внешние и родительские ключи 199
Ограничения FOREIGN KEY (внешнего ключа) 204
Что происходит при выполнении команды обновления 209
Итоги 211
Глава 20. Введение в представления
212
Что такое представления? 212
Команда CREATE VIEW 221
Итоги 223
Глава 21. Изменение значений с помощью представлений
224
Обновление представлений 228
Выбор значений, размещенных в представлениях 232
Итоги 235
Глава 22. Определение прав доступа к данным
236
Пользователи 237
Передача привилегий 241
Лишение привилегий 245
Другие типы привилегий 247
Итоги 249
Глава 23. Глобальные аспекты SQL
250
Переименование таблиц 252
Каким образом база данных размещается для пользователя? 253
Когда изменения становятся постоянными? 255
Как SQL работает одновременно с множеством пользователей Итоги 259
Глава 24. Как поддерживается порядок в базе данных SQL
261
Системный каталог 262
Говоря простым языком, sql-запросы нужны для того, чтобы заносить и обрабатывать информацию в базе данных.
База состоит из множества таблиц. Каждая строка - одна запись. Вот, к примеру, простая таблица для пользователей:
Чтобы начать работать с sql-запросами, для начала надо .
Рассмотрим самые простые запросы для начинающих.
Создание базы данных - CREATE DATABASE
CREATE DATABASE `mybase`В кавычках мы указываем имя нашей базы (кавычки не обязательны, но с ними легче работать).
Установка кодировки - SET NAMES
SET NAMES "utf-8"Установка кодировки часто помогает в избежание «кракозябр».
Создание таблицы - CREATE TABLE
Создадим таблицу, которая была представлена выше.
CREATE TABLE `mybase`.`users`(`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `login` VARCHAR(20), `password` VARCHAR(20), `regdate` DATE)
Тут не всё так сложно. Здесь мы пишем, что создаём в базе «mybase» таблицу с названием «users».
`название колонки` тип данных(количество макс. значения) атрибуты
Атрибуты указывать необязательно.
Например, тут мы создали колонку с именем «regdate» с типом данных «DATE».
`regdate` DATE
Здесь, ещё в скобках указали максимально-допустимое значение. Тип данных - символьный
`login` VARCHAR(20),
При создании столбца «id» мы написали атрибуты, рассмотрим их:
- UNSIGNED - Только положительные числа;
- NOT NULL - Ячейка не может быть пустой(обязательное заполнение);
- AUTO_INCREMENT - Автоматическое заполнения поля, начиная от 0 и +1, при создании строки;
- PRIMARY KEY - Значения поля не сможет повторяться в данным столбце ячеек, делает столбец первичным ключом;
У «id» тип данных - целочисленный.
Добавление информации в базу данных - INSERT
INSERT INTO `users` (login`,`password`,`regdate`) VALUES ("Vasya", "12345", "2015-04-22 17:38:50")В первых скобках пишем название столбцов, во вторых их значение. Важно, чтобы последовательность значений соблюдалось с последовательностью названия столбцов.
Поле «id» заполнять не нужно, оно создаётся автоматически.
Обновление информации - UPDATE
Теперь рассмотрим, как обновить данные в какой-либо строке таблицы. К примеру, поменяем пароль у конкретного пользователя.
UPDATE `users` SET `password` = "54321" WHERE `id` = "1"
Меняем значение поля «password» на новое в строке с «id» равным 1.
Если убрать «WHERE» но изменятся все строки, а не конкретная строка.
Удаление информации - DELETE
Теперь удалим эту строку, со всеми её полями.
DELETE FROM `users` WHERE `id` = "1"
Работает также как и добавление.
Выборка информации из базы данных SELECT
Для работы с информацией в базе, нужно её выбрать.
SELECT * FROM `users` WHERE `id` = "1"
Здесь мы выбрали все строки в таблице «users» (* - все поля).
А можно выбирать только конкретные поля.
SELECT `login`,`password` FROM `users` WHERE `id` = "1"