Какой класс или интерфейс позволяет отсылать запросы в бд
Перейти к содержимому

Какой класс или интерфейс позволяет отсылать запросы в бд

  • автор:

Основные сведения о базах данных

Эта статья содержит краткие сведения о базах данных: что это, чем они могут быть полезны, каковы функции их отдельных элементов. Здесь используется терминология, свойственная Microsoft Access, однако описываемые понятия применимы по отношению к любым базам данных.

В этой статье:

  • Что такое база данных?
  • Элементы базы данных Access

Что представляет собой база данных?

База данных — это инструмент для сбора и упорядочения информации. В базах данных могут храниться сведения о людях, продуктах, заказах или что-либо еще. Многие базы данных начинаются как список в текстовой программе или электронной таблице. По мере увеличения списка в данных начинают появляться избыточность и несогласованность. Данные трудно понять в виде списка, и существуют ограниченные способы поиска или извлечения подмножества данных для проверки. После появления этих проблем рекомендуется перенести данные в базу данных, созданную системой управления базами данных (СУБД), например Access.

Компьютерная база данных — это хранилище объектов. В одной базе данных может быть больше одной таблицы. Например, система отслеживания складских запасов, в которой используются три таблицы, — это не три базы данных, а одна. В базе данных Access (если ее специально не настраивали для работы с данными или кодом, принадлежащими другому источнику) все таблицы хранятся в одном файле вместе с другими объектами, такими как формы, отчеты, макросы и модули. Базы данных, созданные в формате Access 2007–2016 (который также используется в Access для Microsoft 365, Access 2021 и Access 2019), имеют расширение ACCDB, а базы данных, созданные в более ранних форматах Access, имеют расширение MDB.

Использование Access позволяет:

  • добавлять новую информацию в базу данных, например новый артикул складских запасов;
  • изменять информацию, уже находящуюся в базе, например перемещать артикул;
  • удалять информацию, например если артикул был продан или утилизирован;
  • упорядочивать и просматривать данные различными способами;
  • обмениваться данными с другими людьми с помощью отчетов, сообщений электронной почты, внутренней сети или Интернета.

Элементы базы данных Access

Ниже приведены краткие описания элементов стандартной базы данных Access.

Таблицы

Изображение кнопки

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

Чтобы база данных была как можно более гибкой и чтобы в ней не появлялось излишней информации, данные должны быть структурированы в виде таблиц. Например, если речь идет о таблице с информацией о сотрудниках компании, больше одного раза вводить данные об одном и том же сотруднике не нужно. Данные о товарах должны храниться в отдельной таблице, как и данные о филиалах компании. Этот процесс называется нормализацией.

Строки в таблице называются записями. В записи содержатся блоки информации. Каждая запись состоит по крайней мере из одного поля. Поля соответствуют столбцам в таблице. Например, в таблице под названием «Сотрудники» в каждой записи находится информация об одном сотруднике, а в каждом поле — отдельная категория информации, например имя, фамилия, адрес и т. д. Поля выделяются под определенные типы данных, например текстовые, цифровые или иные данные.

Еще один способ описать записи и поля — визуализировать библиотеку в старом стиле карта каталоге. Каждое карта в шкафу соответствует записи в базе данных. Каждая информация об отдельном карта (автор, заголовок и т. д.) соответствует полю в базе данных.

Дополнительные сведения о таблицах см. в статье Общие сведения о таблицах.

Формы

Изображение кнопки

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

С помощью кнопок команд задаются данные, которые должны появляться в форме, открываются прочие формы и отчеты и выполняется ряд других задач. Например, есть «Форма клиента», в которой вы работаете с данными о клиентах. И в ней может быть кнопка, нажатием которой открывается форма заказа, с помощью которой вы вносите информацию о заказе, сделанном определенным клиентом.

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

Дополнительные сведения о формах см. в статье Формы.

Отчеты

Изображение кнопки

Отчеты используются для форматирования, сведения и показа данных. Обычно отчет позволяет найти ответ на определенный вопрос, например «Какую прибыль в этом году принесли нам наши клиенты?» или «В каких городах живут наши клиенты?» Отчеты можно форматировать таким образом, чтобы информация отображалась в наиболее читабельном виде.

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

Дополнительные сведения об отчетах см. в статье Введение в отчеты в Access.

Запросы

Изображение кнопки

Запросы могут выполнять множество функций в базе данных. Одна из их основных функций — находить информацию в таблицах. Нужная информация обычно содержится в нескольких таблицах, но, если использовать запросы, ее можно просматривать в одной. Кроме того, запросы дают возможность фильтровать данные (для этого задаются критерии поиска), чтобы отображались только нужные записи.

Используются и так называемые «обновляемые» запросы, которые дают возможность редактировать данные, найденные в основных таблицах. При работе с обновляемым запросом помните, что правки вносятся в основные таблицы, а не только в таблицу запроса.

Запросы бывают двух основных типов: запросы на выборку и запросы действий. Запрос на выборку просто извлекает данные и делает их доступными для использования. Результаты запроса можно просмотреть на экране, распечатать или скопировать в буфер обмена. Кроме того, можно использовать выходные данные запроса в качестве источника записей для формы или отчета.

Запрос на действие, как следует из названия, выполняет задачу с данными. Запросы действий можно использовать для создания новых таблиц, добавления данных в существующие таблицы, обновления данных или удаления данных.

Дополнительные сведения о запросах см. в статье Знакомство с запросами.

Макросы

Изображение кнопки

Макросы в Access — это нечто вроде упрощенного языка программирования, с помощью которого можно сделать базу данных более функциональной. Например, если к кнопке команды в форме добавить макрос, то он будет запускаться всякий раз при нажатии этой кнопки. Макросы состоят из команд, с помощью которых выполняются определенные задачи: открываются отчеты, выполняются запросы, закрывается база данных и т. д. Используя макросы, можно автоматизировать большинство операций, которые в базе данных вы делаете вручную, и, таким образом, значительно сэкономить время.

Дополнительные сведения о макросах см. в статье Общие сведения о программировании в Access.

Модули

Изображение кнопки

Подобно макросам, модули — это объекты, с помощью которых базу данных можно сделать более функциональной. Но если макросы в Access составляются путем выбора из списка макрокоманд, модули создаются на языке Visual Basic для приложений (VBA). Модули представляют собой наборы описаний, инструкций и процедур. Существуют модули класса и стандартные модули. Модули класса связаны с конкретными формами или отчетами и обычно включают в себя процедуры, которые работают только с этими формами или отчетами. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом. Стандартные модули, в отличие от модулей класса, перечисляются в списке Модули в области навигации.

Дополнительные сведения о модулях см. в статье Общие сведения о программировании в Access.

Какой класс или интерфейс позволяет отсылать запросы в бд

//Шаг первый: Импорт пакетов
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Date;
import java.sql.SQLException;

public class FirstQuery

public static void main(String[] args)

Connection conn = null;

//Шаг второй: Регистрация JDBC драйвера
String driver = «oracle.jdbc.OracleDriver»;
Class.forName(driver);

// Шаг третий : Создание соединения
System.out.println(«Connecting to database . «);
String jdbcUrl = «jdbc:oracle:thin:@localhost:1521:orbis»;
String user = «stud»;
String pass = «stud»;
conn = DriverManager.getConnection(jdbcUrl, user, pass);

// Шаг четвертый : Выполнение запроса
Statement st = conn.createStatement();
String sql;
sql = «SELECT COUNT(*) FROM all_tables»;
ResultSet rs = st.executeQuery(sql);

//Шаг пятый: Извлечение данных из «Результата запроса»
while(rs.next()) <
//
int count = rs.getInt(1);
System.out.println(«Result set is: «+count);
>

// Шаг шестой : Освобождение ресурсов
rs.close();
st.close();
conn.close();

//Шаг седьмой: Обработка исключений
>catch(SQLException se) <
// Обработка ошибок для JDBC
se.printStackTrace();
>catch(Exception e) <
//Обработка ошибок для Class . forName
e.printStackTrace();
>finally <
//finally block used to close resourses
try <
if (conn!=null)
conn.close();
>catch(SQLException se) <
se.printStackTrace();
>//end finally try
>//end try

System.out.println(«GoodBye!»);
>//end main
>//end FirstQuery

Шаг 1: Импортирование классов и интерфейсов.

Как и во всех Java -приложениях необходимо импортировать пакеты, которые содержат необходимые для работы программы классы. Все JDBC интерфейсы и классы находятся в пакетах java . sql и javax . sql . Пакет java . sql содержит основные интерфейсы и классы, которые используются в любых JDBC -приложениях. Пакет javax . sql содержит классы и интерфейсы, необходимые для написания приложений корпоративного уровня. Он является стандартным расширением и применяется при создании и использовании «пула соединений», работы с «наборами строк», распределенными транзакциями и т.д.

  • java . sql . DriverManager – Поддерживает совокупность драйверов-объектов и предоставляет их, при необходимости, для осуществления взаимодействия с СУБД.
  • java . sql . Connection – Предоставляет физическое соединение с СУБД. Объекты данного класса управляют уровнями транзакций и типами результатов ( ResultSet ), возвращаемых выполняемыми запросами.
  • java . sql . Statement – Пересылает SQL -предложение (запрос) в СУБД. Этот интерфейс позволяет отправлять только статические запросы без параметров. Для передачи в СУБД запроса с параметрами используются методы интерфейса java . sql . PreparedStatement .
  • java . sql . ResultSet – Получает результат обработанного СУБД запроса и предусматривают методы для построчного извлечения данных результата запроса из объекта.
  • java . sql . Date – Отображает тип данных JDBC на SQL DATE тип данных.
  • java . sql . SQLException – Обрабатывает ошибки, возвращаемые СУБД, и исключения, возникающие в JDBC программах.
  • DriverManager.registerDriver(Driver “объект класса драйвера” );
  • Class.forName(String “ имя класса драйвера” ).

try <
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
> catch (SQLException se) <
se.printStackTrace();
>

Метод Class . forName () является более гибким методом регистрации драйвера, т.к. получает его имя в виде параметра типа String . Это позволяет задавать имя драйвера в командной стоке запуска Java -приложения на выполнение или в файле свойств, читаемым Java -приложением в момент исполнения программы. В приведенном выше примере переменной driver типа String присваивается полное имя класса JDBC драйвера. Данный метод выдает исключение ClassNotFoundException если указанный в качестве параметра драйвер не был найден в момент выполнения программы.
Использование Class.forName(String “имя класса драйвера”).newInstance() является наиболее распространенным способом регистрации драйвера. Созданный таким образом новый объект драйвера саморегистрируется с помощью статического инициализатора, который вызывает метод DriverManager.registerDriver(). Этот механизм позволяет динамически регистрировать драйвера в процессе выполнения программы. В случае регистрации ORACLE драйвера программный код может выглядеть следующим образом:

try <
String driver = “oracle.jdbc.OracleDriver”;
Class.forName(driver).newInstance();
> catch (ClassNotFoundException e) <
//Возникает, если класс драйвера не найден в CLASSPATH
e.print.StackTrace();
>

Для указания имени класса драйвера в качестве системного свойства в командной строке запуска программы на выполнение используется ключ -D. В этом случае JVM будет пытаться загрузить драйвер как часть процесса инициализации. По завершению инициализации будет запущено на выполнение само приложение. При этом регистрации драйвера в самом приложении уже не требуется. Ниже приведен пример командной строки:

java -Djdbc.drivers=oracle.jdbc.OracleDriver FirstQuery

В случае чтения имени класса драйвера из файла свойств, последний должен содержать строчку следующего вида:

Ниже приведен пример программного кода, читающего имя класса драйвера из файла свойств по имени database.properties:

Properties props = new Properties();
FileInputStream in = new FileInputStream(«database.properties»);
props.load(in);
in.close();
String drivers = props.getProperty(«jdbc.drivers»);
System.setProperty(«jdbc.drivers», drivers);

  • DriverManager. getDriver();
  • DriverManager.getDrivers() .

Enumeration drEnum = DriverManager.getDrivers();
while(drEnum.hasMoreElements()) <
Driver dr = (Driver)drEnum.nextElement();
String str = «Driver class name is: «+dr.getClass().getName();
System.out.println(str);
>

Если по какой либо причине возникла необходимость исключить возможность обращения к той или иной или базе данных, то можно воспользоваться методом DriverManager.deregisterDriver(), которому в качестве параметра указывается объект ранее зарегистрированного драйвера, например:

DriverManager.deregisterDriver(dr)

Шаг 3: Создание соединения с СУБД.

Для того чтобы открыть соединение с базой данных можно использовать один из трех перегруженных методов DriverManager . getConnection ():

DriverManager . getConnection (String url)
DriverManager . getConnection (String url, Properties prop)
DriverManager . getConnection (String url, String username, String password)

  • url – указывает на местоположение базы данных и тип драйвера.
  • username – имя пользователя, который будет использовать соединение.
  • password – пароль пользователя.
  • prop – объект типа Properties.

//Usage: java DBConnProp.
//Contents of file database.properties is:
//jdbc.drivers=oracle.jdbc.OracleDriver
//jdbc.url=jdbc:oracle:thin:@localhost:1521:orbis
//user=stud
//password=stud
//
import java.io.*;
import java.sql.*;
import java.util.*;
//
public class DBConnProp <
public static void main(String[] args) throws Exception

Connection db = getConnection();
Statement st = db.createStatement();
ResultSet rs = st.executeQuery(» SELECT COUNT(*) FROM all_tables «);
while (rs.next()) <
System.out.println(rs.getInt(1));
>
rs.close();
st.close();
db.close();
>
public static Connection getConnection() throws Exception <
Properties props = new Properties();
FileInputStream in = new FileInputStream(«ad.database.properties»);
props.load(in);
in.close();
props.list(System.out);
String drivers = props.getProperty(«jdbc.drivers»);
if (drivers != null) <
System.setProperty(«jdbc.drivers», drivers);
System.out.println(«Property \»jdbc.drivers\» 2″> System.getProperty(«jdbc.drivers»));
>
String url = props.getProperty(«jdbc.url»);
return DriverManager.getConnection(url, props);
>
>

Если попытка установки соединения окончится неудачей, то будет создан экземпляр исключения типа SQLException . В случае удачи, вновь созданный объект типа Connection будет представлять физическое соединение с базой данных.

Шаг. 4 : Выполнение SQL запроса.

Для выполнения запроса к базе данных необходимы два объекта. Первый объект необходим для применения интерфейсов Statement , PreparedStatement или CallableStatement . Эти три интерфейса имеют разное назначение. Интерфейс java . sql . Statement используется для выполнения статических запросов без параметров. Интерфейс java . sql . PreparedStatement используется для выполнения запросов с изменяемыми параметрами параметрами. И, наконец, java . sql . CallableStatement используется для выполнения хранимых в базе данных процедур.
Второй необходимый для выполнения запроса объект имеет тип ResultSet . Этот объект содержит результат выполнения запроса и предусматривает ряд итераторов, с помощью которых данные результата можно построчно извлекать из объекта.
В приведенном выше примере инициализируется объект типа Statement с помощью метода createStatement () объекта типа Connection . Далее переменной типа String присваивается SQL -предложение, которое используется в качестве параметра при выполнении метода executeQuery () объекта типа Statement . Данный метод возвращает объект типа ResultSet , содержащий результат выполнения запроса. В случае возникновения какой либо ошибки возникает исключение типа SQLException .

Шаг. 5: Просмотр результата запроса.

Данные результата запроса сохраняются в объекте типа ResultSet в виде таблицы из строк и столбцов. Количество строк определяется критерием выборки, указанном во фразе WHERE SQL -предложения. Порядок следования столбцов результата запроса соответствует порядку их перечисления в SQL -предложении. Тип данных столбцов результата запроса соответствует типу данных столбцов таблицы базы данных.
Для извлечения данных результата запроса из объекта типа ResultSet используются методы getXXX () этого объекта, где XXX соответствует извлекаемому типу данных (например: getInt (), getString (), getDate ()), а в скобках указывается в качестве параметра номер (начиная с 1) или символьное имя столбца. Объект типа ResultSet использует курсор, указывающий на текущую строку результата запроса. Перемещение курсора по строкам результата запроса осуществляется с помощью метода next () объекта типа ResultSet , содержащего этот результат. При этом существует два специальных положения курсора, указывающие на положение перед первой строкой результата запроса и на положение после последней строки результата запроса. Эти положения ничего не содержат и попытка получить из них данные приведет к возникновению исключения типа SQLException . В первоначальный момент сразу после заполнения объекта данными результата запроса курсор установлен в крайнем верхнем положении – перед первой строкой данных. По этому перед выполнением метода getXXX () необходимо переместить курсор на первую строку результата запроса. Обычно это делается с помощью уже упомянутого метода next (), который возвращает значение TRUE , если курсор после его выполнения указывает на строку с данными результата запроса, и FALSE , если курсор указывает на пустое положение после последней строки данных результата запроса. Это позволяет использовать метод в качестве условия при организации цикла перемещения курсора по строкам данных результата запроса.

Шаг. 6: Освобождение ресурсов.

Освобождение ресурсов осуществляется методом close () объекта, представляющего собой тот или иной ресурс, например: результат запроса, соединение с базой и т.д.

База данных MySQL: причины ее популярности

База данных MySQL незаменима в тех случаях, когда размеры и количество генерируемых определенным скриптом файлов вырастает настолько, что обычный их поиск начинает занимать много времени. Все начинает «тормозить», что не может не вызывать жуткие неудобства.

Использование одной из систем управления базами данных, к числу которых относится и MySQL, позволяет решить эту проблему. Любые данные из таблицы, даже если она содержит огромное количество ячеек, можно найти буквально за доли секунды. По сути, в этом и заключается основное предназначение подобных инструментов.

Принцип работы базы данных MySQL

Начнем с того, что представляет собой база данных (БД) сама по себе. Базой данных мы называем набор тех или иных данных, хранящихся в упорядоченном виде. Приведем наглядный пример. Предположим, что вы идете к врачу. Перед тем, как зайти в кабинет, надо попросить свою медицинскую карточку в регистратуре.

Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains

Павел Симонов
Исполнительный директор Geekbrains

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

Получить подборку бесплатно
Уже скачали 23672

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

Подобные картотеки есть и в библиотеках, благодаря чему быстро находятся сведения об определенном авторе или книге. Приведенные примеры — базы данных в повседневной жизни.

База данных в программировании — это папка, находящаяся на сервере, в которой хранятся таблицы с данными, упорядоченными по четкой структуре.

Проведем еще одну аналогию с картотекой. Один ее ящик равен одной таблице в БД. Под таблицей в рамках компьютерного сервера понимается файл, в каком сохраняются данные определенного вида (например, сведения о покупателях, товарах, заказах и т. д.). Все эти данные не находятся в одной куче. Сведения лежат в отдельных предназначенных для них таблицах. В одной БД таблиц может быть любое количество.

Любая таблица состоит из строк и столбцов. Каждый конкретный столбец служит для хранения определенной части информации. Например, в таблице о товарах в одном столбце будет записано наименование товара, во втором — цена, в третьем — производитель и т. д.

Неопытные вебмастера иногда путают значения БД и СУБД. Если первое — это набор определенных сведений, то второе — специально разработанное программное обеспечение, нужное для работы с базами данных. СУБД расшифровывается как система управления базами данных. Есть достаточно много СУБД: PostgreSQL, SQLite, Oracle Database.

MySQL — это СУБД, поддерживающая SQL. SQL — универсальный язык программирования. Его поддерживают все системы управления базами данных. То есть, если вы знаете SQL, то можете легко научиться работе с любой СУБД.

Создатели MySQL распространяют ее в качестве свободного ПО. Установив систему управления базами данных MySQL бесплатно, вы вольны использовать ее сколько угодно раз.

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

Чтобы упростить процесс администрирования, добавления и изменения сведений, и были созданы СУБД. Система управления базами данных MySQL — пример одной из многих программ, изрядно упрощающих ведение баз данных.

Плюсы и минусы MySQL

MySQL появилась в 1995 году. Она изначально была легка, доступна и интуитивно понятна. В итоге ее стали использовать компании со всего мира. В настоящее время система MySQL является негласным стандартом для баз данных.

Программа гибкая и простая в использовании. Она даже позволяет пользователям поменять исходный код, чтобы настроить сервер баз данных MySQL конкретно под себя. Доплачивать за это не придется даже в расширенных коммерческих версиях. В установке этой СУБД также нет ничего сложного — процесс займет не больше получаса.

MySQL отличается высокой производительностью. Ее поддерживает широкий спектр кластерных серверов. MySQL поможет бизнесу с оптимальной скоростью, независимо от того, чем вы заняты — тяжелой бизнес-аналитикой или сохранением большого объема данных электронной коммерции.

Работа с таблицами баз данных MySQL удобна тем, что программа позволяет назначать уровень доступа. Например, работнику нижнего звена разрешено лишь вносить информацию. Специалисту рангом выше — не только вносить новое, но и изменять уже имеющиеся данные. Начальнику доступны любые действия вплоть до удаления.

SQL для начинающих

�� Система управления базами данных (СУБД) — это отдельная программа, которая работает как сервер, независимо от PHP.

Создавать свои базы данных, таблицы и наполнять их данными можно прямо из этой же программы, но для выполнения этих операций прежде придётся познакомиться с ещё одним языком программирования — SQL.

SQL или Structured Query Language (язык структурированных запросов) — язык программирования, предназначенный для управления данными в СУБД. Все современные СУБД поддерживают SQL.

На языке SQL выражаются все действия, которые можно провести с данными: от записи и чтения данных, до администрирования самого сервера СУБД. Для повседневной работы совсем не обязательно знать весь этот язык; достаточно ознакомиться лишь с основными понятиями синтаксиса и ключевыми словами.

Кроме того, SQL очень простой язык по своей структуре, поэтому его освоение не составит большого труда.

Язык SQL — это в первую очередь язык запросов, а кроме того он очень похож на естественный язык. Каждый раз, когда требуется прочитать или записать любую информацию в БД, требуется составить корректный запрос. Такой запрос должен быть выражен в терминах SQL.

Например, чтобы вывести на экран все записи из таблицы города , составим такой запрос:

ПРОЧИТАТЬ всё ИЗ ТАБЛИЦЫ 'города' 

Если перевести этот запрос на язык SQL, то корректным результатом будет:

SELECT * FROM 'cities' 

Теперь напишем запрос на добавление в таблицу города нового города:

ВСТАВЬ В ТАБЛИЦУ 'города' ЗНАЧЕНИЯ 'имя города' = 'Санкт-Петербург' 
INSERT INTO 'cities' SET 'name' = 'Санкт-Петербург' 

Эта команда создаст в таблице города новую запись, где полю имя города будет присвоено значение Санкт-Петербург .

С помощью SQL можно не только добавлять и читать данные, но и:

  • удалять и обновлять записи в таблицах;
  • создавать и редактировать сами таблицы;
  • производить операции над данными: считать сумму, получать самое большое или малое значение, и так далее;
  • настраивать работу сервера СУБД.

MySQL

Существует множество различных реляционных СУБД. Самая известная СУБД — это Microsoft Access, входящая в состав офисного пакета приложений Microsoft Office. Нет никаких препятствий для использования в качестве СУБД MS Access, но для задач веб-программирования гораздо лучше подходит альтернативная программа — MySQL.

В отличие от MS Access, MySQL абсолютно бесплатна, может работать на серверах с Linux, обладает гораздо большей производительностью и безопасностью, что делает её идеальным кандидатом на роль базы данных в веб-разработке.

Подавляющее большинство сайтов и приложений на PHP используют в качестве СУБД именно MySQL.

Установка

Последняя версия MySQL доступна для загрузки по ссылке: https://dev.mysql.com/downloads/mysql/. На этой странице следует выбрать MySQL Installer for Windows и нажать на кнопку Download для загрузки.

В процессе установки запомните директорию, куда вы устанавливаете MySQL (скрывается под ссылкой Advanced options). На шаге Accounts and Roles установщик попросит придумать пароль для доступа к БД (MySQL Root Password) — обязательно запомните или запишите этот пароль — он вам ещё понадобится.

Если для своей работы вы используете программную среду OpenServer, то этот раздел можно смело пропустить, так как в состав OpenServer уже входит свежая версия MySQL.

Выполнение запросов

По умолчанию, если вы не устанавливали дополнительные программы, у MySQL нет графического интерфейса пользователя. Это значит, что единственный способ работы с ней — это использование командной строки.

  1. Откройте командную строку (Выполнить — cmd.exe ).
  2. Перейдите в каталог с установленной MySQL: cd /d /bin .
  3. Выполните: mysql -uroot -p .
  4. Введите пароль, заданный при установке.

Если вы всё выполнили верно, то в командной строке запустится клиент для работы с MySQL (вы поймете это по строке приглашения «mysql>»). С этого момента можно вводить любые SQL запросы, но каждый запрос обязательно должен заканчиваться точкой с запятой ; .

Оператор SQL create database: создание новой базы данных

Приступим к практике — начнём создавать базу данных для ведения погодного дневника.

Начать следует с создания новой базы данных для нашего сайта. Новая БД в MySQL создаётся простой командой:

CREATE DATABASE

После этого MySQL создаст для нас новую БД, в которой будет происходить вся дальнейшая работа. Это важно: после создания БД её невозможно будет переименовать, а только удалить и создать заново. По этой причине крайне внимательно подойдите к выбору имени для базы данных.

create table

Зачем нужен:создание таблиц

Создав новую БД, сообщим MySQL, что теперь мы собираемся работать именно с ней. Выбор активной БД выполняется командой:

Пришло время создать первые таблицы! Для ведения дневника по всем правилам, понадобится создать три таблицы: города ( cities ), пользователи ( users ) и записи о погоде weather_log . В подразделе «Запись» этой главы описано, как должна выглядеть структура таблицы weather_log . Переведём это описание на язык SQL:

CREATE TABLE weather_log ( id INT AUTO_INCREMENT PRIMARY KEY, city_id INT, day DATE, temperature INT, cloud TINYINT DEFAULT 0 ); 

Чтобы ввести многострочную команду в командной строке используйте символ \ в конце каждой строки, кроме последней.

Теперь создадим таблицу городов:

CREATE TABLE cities ( id INT AUTO_INCREMENT PRIMARY KEY, name CHAR(128) ) 

MySQL может показать созданную таблицу, если попросить об этом командой:

SHOW COLUMNS FROM weather_log 

В ответе будут перечислены все поля таблицы, их тип и другие характеристики.

Что такое первичный ключ

В примере с созданием новой таблицы при перечислении необходимых полей первым полем идёт id INT AUTO_INCREMENT PRIMARY KEY . Это поле называется первичным ключом. Обязательно создавать первичный ключ в каждой таблице.

�� Первичный ключ — это особенное поле, в котором сохраняется уникальный идентификатор записи.

Первичный ключ нужен, чтобы у программиста и базы данных всегда была возможность однозначно обратиться к одной конкретной записи для её чтения, обновления или удаления. Если назначить поле первичным ключом, то БД будет следить за тем, чтобы значение в этом поле больше не повторялось в таблице.

А если ещё и добавить аттрибут AUTO_INCREMENT , то MySQL при добавлении новых записей будет заполнять это поле сама. AUTO_INCREMENT будет играть роль счётчика — каждая новая запись в таблице получит значение на единицу больше максимального существующего значения.

insert into

Зачем нужен: добавление записи в таблицу

Начнём с добавления новых данных в таблицу. Для добавления записи используется следующий синтаксис:

insert into set = , = . 

В начале добавим город в таблицу городов:

insert into cities set name = 'Санкт-Петербург' 

При добавлении записи необязательно указывать значения для всех полей. Многие из полей имеют значения по умолчанию, которые сами заполняются при сохранении.

Теперь создадим запись о погоде за сегодня.

При определении таблицы weather_log мы решили ссылаться на город, путём записи в поле city_id идентификатора города из таблицы cities. Так как мы только что добавили новый город, ничего не мешает использовать его идентификатор в записи о погоде.

Идентификатором города будет первичный ключ, который также был определён в качестве первого поля таблицы. Нумерация этого поля начинается с единицы, значит первая добавленная запись имеет идентификатор 1 . Зная это, запрос на добавление записи о погоде в Санкт-Петербурге за третье сентября 2017 года выглядит так:

INSERT INTO weather_log SET city_id = 1, day = '2017-09-03', temperature = 5, cloud = 1; 

select. Чтение информации из БД

Для вывода информации из БД используются запросы типа SELECT .

В запросе нужно указать имя таблицы, необходимые поля, а также дополнительные параметры (будут рассмотрены в следующем уроке).

SELECT FROM

Например, чтобы получить список всех доступных городов:

SELECT id, name FROM cities 

Все погодные записи:

SELECT id, day, city_id, temperature, cloud FROM weather_log 

Вместо перечисления всех столбцов можно использовать знак звездочки — * .

Оператор update: обновление информации в БД

При добавлении записи очень легко совершить ошибку: сделать опечатку, не указать значение для одного из полей, и так далее. Естественно, язык SQL предлагает возможности для редактирования уже созданных записей.

Предположим, что при добавлении погодной записи пользователь ошибся и ввёл неверную дату. Чтобы исправить эту ошибку, нужно использовать оператор обновления — UPDATE . Запрос с этим оператором позволяет обновить значение одного или нескольких полей в существующей записи. Выглядит он так:

UPDATE SET = , = . WHERE =

Но чтобы правильно составить запрос, необходимо определить условие для поиска записи, которую предлагается обновить. В противном случае, если не указать это условие, то будут обновлены абсолютно все записи в таблице.

В качестве такого условия лучше всего использовать первичный идентификатор записи. Поэтому, прежде чем выполнять запрос обновления, нужно выполнить запрос на чтение информации из таблицы, чтобы узнать, под каким идентификатором сохранилась ошибочная запись. Допустим, этот идентификатор — единица, а правильная дата — седьмое декабря 2022 года.

Запрос на обновление:

UPDATE weather_log SET day = '2022-12-07' WHERE join: объединение записей из двух таблиц

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

Поменяем запрос на показ погодных записей, чтобы он объединял две таблицы, а в поле города показывалось его название, а не идентификатор:

SELECT day, cities.name, temperature, cloud FROM weather_log JOIN cities ON weather_log.city_id = cities.id 

Важно усвоить три самых главных момента:

  1. При чтении из объединённых таблиц, в перечислении полей после SELECT нужно явно указывать в поле имени также имя таблицы, с которой производится объединение.
  2. Всегда есть основная таблица (тб1), из которой читается большинство полей, и присоединяемая (тб2), имя которой определяется после оператора JOIN.
  3. Помимо указания имени второй таблицы, обязательно следует указать условие, по которому будет происходить объединение. В этом примере таким условием будет соответствие идентификатора города из тб1 ( weather_log.city_id ) первичному ключу города из тб2 ( cities.id ).

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *