Книги по PHP, скачать бесплатные книги, самоучители и учебники по PHP в. PHP и MySQL, выбор редактора PHP-кода, синтаксис языка и самые .Обучение My. SQLПреподаватели и наставники, ведущие обучение My. SQL, могут предлагать свои варианты организации последовательности изучения My. SQL в комментариях к данному разделу учебника. Также свои замечания по организации учебника могут предлагать читатели, ведущие самостоятельное изучение My. SQL. Чтобы самостоятельное изчение My. SQL было эффективным, необходимо привлекать методический опыт, который дает обучение My. SQL. Учебник для начинающих должен способствовать быстрому старту разработчика. Телефонная книга содержит информацию о людях, живущих в одном городе. Неплохой учебник по PHP, содержит актуальную на данный момент информацию по языку PHP, взаимодействию PHP с MySQL, работе с протоколом . Mysql для начинающих, php mysql для начинающих, mysql книга, mysql уроки, mysql с нуля, учебник mysql, mysql язык, mysql на русском, php и mysql с . 6 Справочник по языку MySQL. Команды SQL, функциональное оглавление. 6 Справочник по языку MySQL. MySQL имеет очень сложный, но интуитивно понятный и легкий в изучении интерфейс, основанный на SQL (структурированный язык запросов).
Все это своего рода базы данных. Ну а раз это базы данных, то посмотрим, как в них хранятся данные. Например, телефонная книга представляет собой таблицу (табл. В этой таблице данные – это собственно номера телефонов, адреса и ФИО., т. Пример базы данных: телефонная книга. ФИОНомер телефона. Адрес. Иванов Иван Иванович. Ленина, 1. 2, 4. 3Ильин Федор Иванович. Маркса, 3. 2, 4. 5. Теперь представьте, что записей в этой таблице не две, а две тысячи, вы занимаетесь созданием этого справочника и где- то произошла ошибка (например, опечатка в адресе). Видимо, тяжеловато будет найти и исправить эту ошибку вручную. Нужно воспользоваться какими- то средствами автоматизации. Для управления большим количеством данных программисты (не без помощи математиков) придумали системы управления базами данных (СУБД). По сравнению с текстовыми базами данных электронные СУБД имеют огромное число преимуществ, от возможности быстрого поиска информации, взаимосвязи данных между собой до использования этих данных в различных прикладных программах и одновременного доступа к данным нескольких пользователей. Для точности дадим определение базы данных, предлагаемое Глоссарий. База данных – это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. База данных является информационной моделью предметной области. Обращение к базам данных осуществляется с помощью системы управления базами данных (СУБД). СУБД обеспечивает поддержку создания баз данных, централизованного управления и организации доступа к ним различных пользователей. Итак, мы пришли к выводу, что хранить данные независимо от программ, так, что они связаны между собой и организованы по определенным правилам, целесообразно. Но вопрос, как хранить данные, по каким правилам они должны быть организованы, остался открытым. Способов существует множество (кстати, называются они моделями представления или хранения данных). Наиболее популярные – объектная и реляционная модели данных. Автором реляционной модели считается Э. Кодд, который первым предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение) и показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение. Таким образом, реляционная база данных представляет собой набор таблиц (точно таких же, как приведенная выше), связанных между собой. Строка в таблице соответствует сущности реального мира (в приведенном выше примере это информация о человеке). Примеры реляционных СУБД: Mysql, Postgre. Sql. В основу объектной модели положена концепция объектно- ориентированного программирования, в которой данные представляются в виде набора объектов и классов, связанных между собой родственными отношениями, а работа с объектами осуществляется с помощью скрытых (инкапсулированных) в нихметодов. Примеры объектных СУБД: Cache, Gem. Stone (от Servio Corporation), ONTOS (ONTOS). В последнее время производители СУБД стремятся соединить два этих подхода и проповедуют объектно- реляционную модель представления данных. Примеры таких СУБД – IBM DB2 for Common Servers, Oracle. Поскольку мы собираемся работать с Mysql, то будем обсуждать аспекты работы только с реляционными базами данных. Нам осталось рассмотреть еще два важных понятия из этой области: ключи и индексирование, после чего мы сможем приступить к изучению языка запросов SQL. Ключи. Для начала давайте подумаем над таким вопросом: какую информацию нужно дать о человеке, чтобы собеседник точно сказал, что это именно тот человек, сомнений быть не может, второго такого нет? Сообщить фамилию, очевидно, недостаточно, поскольку существуют однофамильцы. Если собеседник человек, то мы можем приблизительно объяснить, о ком речь, например вспомнить поступок, который совершил тот человек, или еще как- то. Компьютер же такого объяснения не поймет, ему нужны четкие правила, как определить, о ком идет речь. В системах управления базами данных для решения такой задачи ввели понятие первичного ключа. Первичный ключ (primary key, PK) – минимальный набор полей, уникально идентифицирующий запись в таблице. Значит, первичный ключ – это в первую очередь набор полей таблицы, во- вторых, каждый набор значений этих полей должен определять единственную запись (строку) в таблице и, в- третьих, этот набор полей должен быть минимальным из всех обладающих таким же свойством. Поскольку первичный ключ определяет только одну уникальную запись, то никакие две записи таблицы не могут иметь одинаковых значений первичного ключа. Например, в нашей таблице (см. Если же говорить в общем, без связи с решаемой задачей, то такие знания не позволяют точно указать на единственного человека, поскольку существуют однофамильцы, живущие в разных городах по одному адресу. Все дело в границах, которые мы сами себе задаем. Если считаем, что знания ФИО, телефона и адреса без указания города для наших целей достаточно, то все замечательно, тогда поля ФИО и адрес могут образовывать первичный ключ. В любом случае проблема создания первичного ключа ложится на плечи того, кто проектирует базу данных (разрабатывает структуру хранения данных). Решением этой проблемы может стать либо выделение характеристик, которые естественным образом определяют запись в таблице (задание так называемого логического, или естественного, PK), либо создание дополнительного поля, предназначенного именно для однозначной идентификации записей в таблице (задание так называемого суррогатного, или искусственного, PK). Примером логического первичного ключа является номер паспорта в базе данных о паспортных данных жителей или ФИО и адрес в телефонной книге (таблица выше). Для задания суррогатного первичного ключа в нашу таблицу можно добавить поле id (идентификатор), значением которого будет целое число, уникальное для каждой строки таблицы. Использование таких суррогатных ключей имеет смысл, если естественный первичный ключ представляет собой большой набор полей или его выделение нетривиально. Кроме однозначной идентификации записи, первичные ключи используются для организации связей с другими таблицами. Например, у нас есть три таблицы: содержащая информацию об исторических личностях (Persons), содержащая информацию об их изобретениях (Artifacts) и содержащая изображения как личностей, так и артефактов (Images) (рис 1. Первичным ключом во всех этих таблицах является поле id (идентификатор). В таблице Artifacts есть поле author, в котором записан идентификатор, присвоенный автору изобретения в таблице Persons. Каждое значение этого поля является внешним ключом для первичного ключа таблицы Persons. Кроме того, в таблицах Persons и Artifacts есть поле photo, которое ссылается на изображение в таблице Images. Эти поля также являются внешними ключами для первичного ключа таблицы Images и устанавливают однозначную логическую связь Persons- Images и Artifacts- Images. То есть если значение внешнего ключа photo в таблице личности равно 1. Таким образом, внешние ключи используются для организации связей между таблицами базы данных (родительскими и дочерними) и для поддержания ограничений ссылочной целостности данных. Индексирование. Одна из основных задач, возникающих при работе с базами данных, – это задача поиска. При этом, поскольку информации в базе данных, как правило, содержится много, перед программистами встает задача не просто поиска, а эффективного поиска, т. Для этого (для оптимизации производительности запросов) производят индексирование некоторых полей таблицы. Использовать индексы полезно для быстрого поиска строк с указанным значением одного столбца. Без индекса чтение таблицы осуществляется по всей таблице, начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше накладные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то база данных может быстро определить позицию для поиска в середине файла данных без просмотра всех данных. Это происходит потому, что база данных помещает проиндексированные поля поближе в памяти, так, чтобы можно было побыстрее найти их значения. Для таблицы, содержащей 1. Однако в случае, когда необходим доступ почти ко всем 1. Так что иногда индексы бывают только помехой. Например, если копируется большой объем данных в таблицу, то лучше не иметь никаких индексов. Однако в некоторых случаях требуется задействовать сразу несколько индексов (например, для обработки запросов к часто используемым таблицам). Если говорить о Mysql, то там существует три вида индексов: PRIMARY, UNIQUE, и INDEX, а слово ключ (KEY) используется как синоним слова индекс (INDEX). Все индексы хранятся в памяти в виде B- деревьев. PRIMARY – уникальный индекс (ключ) с ограничением, что все индексированные им поля не могут иметь пустого значения (т. Таблица может иметь только один первичный индекс, но он может состоять из нескольких полей. UNIQUE – ключ (индекс), задающий поля, которые могут иметь только уникальные значения. INDEX – обычный индекс (как мы описали выше). В Mysql, кроме того, можно индексировать строковые поля по заданному числу символов от начала строки. СУБД Mysql. Продолжим разговор о СУБД Mysql. Mysql – это реляционная система управления базами данных. То есть данные в ее базах хранятся в виде логически связанных между собой таблиц, доступ к которым осуществляется с помощью языка запросов SQL. Mysql – свободно распространяемая система, т. Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть первая / Хабрахабр. О чем данный учебник. Данный учебник представляет собой что- то типа «штампа моей памяти» по языку SQL (DDL, DML), т. Это для меня достаточный минимум, который применяется при работе с базами данных наиболее часто. Если встает необходимость применять более полные конструкции SQL, то я обычно обращаюсь за помощью в библиотеку MSDN расположенную в интернет. На мой взгляд, удержать все в голове очень сложно, да и нет особой необходимости в этом. Но знать основные конструкции очень полезно, т. Отличия в основном состоят в типах данных, которые могут отличаться в деталях. Основных конструкций языка SQL не так много, и при постоянной практике они быстро запоминаются. Например, для создания объектов (таблиц, ограничений, индексов и т. IDE) для работы с базой данных, и нет надобности изучать визуальный инструментарий заточенный для работы с конкретным типом баз данных (MS SQL, Oracle, My. SQL, Firebird, . Это удобно и тем, что весь текст находится перед глазами, и не нужно бегать по многочисленным вкладкам для того чтобы создать, например, индекс или ограничение. При постоянной работе с базой данных, создать, изменить, а особенно пересоздать объект при помощи скриптов получается в разы быстрее, чем если это делать в визуальном режиме. Так же в скриптовом режиме (соответственно, при должной аккуратности), проще задавать и контролировать правила наименования объектов (мое субъективное мнение). К тому же скрипты удобно использовать в случае, когда изменения, делаемые в одной базе данных (например, тестовой), необходимо перенести в таком же виде в другую базу (продуктивную). Язык SQL подразделяется на несколько частей, здесь я рассмотрю 2 наиболее важные его части: DDL – Data Definition Language (язык описания данных)DML – Data Manipulation Language (язык манипулирования данными), который содержит следующие конструкции: SELECT – выборка данных. INSERT – вставка новых данных. UPDATE – обновление данных. DELETE – удаление данных. MERGE – слияние данных. Т. к. К тому же я считаю, что язык программирования, а особенно SQL, можно освоить только на практике, самостоятельно пощупав его и поняв, что происходит, когда вы выполняете ту или иную конструкцию. Данный учебник создан по принципу Step by Step, т. Но если по ходу у вас возникает потребность узнать о какой- то команде более детально, то используйте конкретный поиск в интернет, например, в библиотеке MSDN. При написании данного учебника использовалась база данных MS SQL Server версии 2. MS SQL Server Management Studio (SSMS). Кратко о MS SQL Server Management Studio (SSMS)SQL Server Management Studio (SSMS) — утилита для Microsoft SQL Server для конфигурирования, управления и администрирования компонентов базы данных. Данная утилита содержит редактор скриптов (который в основном и будет нами использоваться) и графическую программу, которая работает с объектами и настройками сервера. Главным инструментом SQL Server Management Studio является Object Explorer, который позволяет пользователю просматривать, извлекать объекты сервера, а также управлять ими. Данный текст частично позаимствован с википедии. Для создания нового редактора скрипта используйте кнопку «New Query/Новый запрос»: Для смены текущей базы данных можно использовать выпадающий список: Для выполнения определенной команды (или группы команд) выделите ее и нажмите кнопку «Execute/Выполнить» или же клавишу «F5». Если в редакторе в текущий момент находится только одна команда, или же вам необходимо выполнить все команды, то ничего выделять не нужно. После выполнения скриптов, в особенности создающих объекты (таблицы, столбцы, индексы), чтобы увидеть изменения, используйте обновление из контекстного меню, выделив соответствующую группу (например, Таблицы), саму таблицу или группу Столбцы в ней. Собственно, это все, что нам необходимо будет знать для выполнения приведенных здесь примеров. Остальное по утилите SSMS несложно изучить самостоятельно. Немного теории. Реляционная база данных (РБД, или далее в контексте просто БД) представляет из себя совокупность таблиц, связанных между собой. Если говорить грубо, то БД – файл в котором данные хранятся в структурированном виде. СУБД – Система Управления этими Базами Данных, т. Из контекста, я думаю, будет понятно, о чем именно идет речь. Таблица представляет из себя совокупность столбцов. Столбцы, так же могут называть полями или колонками, все эти слова будут использоваться как синонимы, выражающие одно и тоже. Таблица – это главный объект РБД, все данные РБД хранятся построчно в столбцах таблицы. Строки, записи – тоже синонимы. Для каждой таблицы, как и ее столбцов задаются наименования, по которым впоследствии к ним идет обращение. Наименование объекта (имя таблицы, имя столбца, имя индекса и т. MS SQL может иметь максимальную длину 1. Для справки – в БД ORACLE наименования объектов могут иметь максимальную длину 3. Поэтому для конкретной БД нужно вырабатывать свои правила для наименования объектов, чтобы уложиться в лимит по количеству символов. SQL — язык позволяющий осуществлять запросы в БД посредством СУБД. В конкретной СУБД, язык SQL может иметь специфичную реализацию (свой диалект). DDL и DML — подмножество языка SQL: Язык DDL служит для создания и модификации структуры БД, т. Он позволяет делать выборку данных из таблиц, добавлять новые данные в таблицы, а так же обновлять и удалять существующие данные. В языке SQL можно использовать 2 вида комментариев (однострочный и многострочный): -- однострочный комментарий. Собственно, все для теории этого будет достаточно. DDL – Data Definition Language (язык описания данных). Для примера рассмотрим таблицу с данными о сотрудниках, в привычном для человека не являющимся программистом виде: Табельный номер. ФИОДата рождения. E- mail. Должность. Отдел. 10. 00. Иванов И. И. 1. 9. 0. 2. 1. Директор. Администрация. Петров П. П. 0. 3. Программист. ИТ1. Сидоров С. С. 0. 7. Бухгалтер. Бухгалтерия. Андреев А. А. 1. 7. Старший программист. ИТ. В данном случае столбцы таблицы имеют следующие наименования: Табельный номер, ФИО, Дата рождения, E- mail, Должность, Отдел. Каждый из этих столбцов можно охарактеризовать по типу содержащемся в нем данных: Табельный номер – целое число. ФИО – строка. Дата рождения – дата. E- mail – строка. Должность – строка. Отдел – строка. Тип столбца – характеристика, которая говорит о том какого рода данные может хранить данный столбец. Для начала будет достаточно запомнить только следующие основные типы данных используемые в MS SQL: Значение. Обозначение в MS SQLОписание. Строка переменной длиныvarchar(N)иnvarchar(N)При помощи числа N, мы можем указать максимально возможную длину строки для соответствующего столбца. Например, если мы хотим сказать, что значение столбца «ФИО» может содержать максимум 3. Отличие varchar от nvarchar заключается в том, что varchar позволяет хранить строки в формате ASCII, где один символ занимает 1 байт, а nvarchar хранит строки в формате Unicode, где каждый символ занимает 2 байта. Тип varchar стоит использовать только в том случае, если вы на 1. Unicode символы. Например, varchar можно использовать для хранения адресов электронной почты, т. На моей практике данный тип очень редко находит применение, а если и используется, то он используется в основном в формате char(1), т. Для справки (сейчас это не так актуально для нас) – диапазон чисел который позволяет тип int от - 2 1. Обычно это основной тип, который используется для задания идентификаторов. Вещественное или действительное числоfloat. Если говорить простым языком, то это числа, в которых может присутствовать десятичная точка (запятая). Датаdate. Если в столбце необходимо хранить только Дату, которая состоит из трех составляющих: Числа, Месяца и Года. Например, 1. 5. 0. Данный тип можно использовать для столбца «Дата приема», «Дата рождения» и т. Часы, Минуты, Секунды и Миллисекунды. Например, 1. 7: 3. Например, ежедневное «Время отправления рейса». Дата и времяdatetime. Данный тип позволяет одновременно сохранить и Дату, и Время. Например, 1. 5. 0. Для примера это может быть дата и время какого- нибудь события. Флагbit. Данный тип удобно применять для хранения значений вида «Да»/«Нет», где «Да» будет сохраняться как 1, а «Нет» будет сохраняться как 0. При работе мною чаще используется именно этот способ переключения между базами. Теперь в нашей БД мы можем создать таблицу используя описания в том виде как они есть, используя пробелы и символы кириллицы: CREATE TABLE . В MS SQL обычно в данном случае каждое слово начинается с прописной буквы, например, для поля «Табельный номер», мы могли бы задать имя Personnel. Number. Так же в имени можно использовать цифры, например, Phone. Number. 1. На заметку. В некоторых СУБД более предпочтительным может быть следующий формат наименований «PHONE. Естественно при задании имя поля желательно чтобы оно не совпадало с ключевыми словами используемые в СУБД. По этой причине можете забыть о синтаксисе с квадратными скобками и удалить таблицу . Отличие DDL в разных СУБД в основном заключаются в типах данных (здесь могут отличаться не только их наименования, но и детали их реализации), так же может немного отличаться и сама специфика реализации языка SQL (т. Владея основами SQL вы легко сможете перейти с одной СУБД на другую, т. Помимо этого длину поля в ORACLE можно задать как в байтах, так и в символах, для этого используются дополнительные опции BYTE и CHAR, которые указываются после длины поля, например: NAME varchar. BYTE) - - вместимость поля будет равна 3. NAME varchar. 2(3. CHAR) - - вместимость поля будет равна 3. Какая опция будет использоваться по умолчанию BYTE или CHAR, в случае простого указания в ORACLE типа varchar. БД, так же она иногда может задаваться в настройках IDE. В общем порой можно легко запутаться, поэтому в случае ORACLE, если используется тип varchar. UTF- 8) я предпочитаю явно прописывать CHAR (т. Продемонстрируем это на примере, вставим в таблицу данные в поля ID, Position и Department, это можно сделать следующим скриптом: INSERT Employees(ID,Position,Department) VALUES.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |