<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://simhard.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://simhard.com/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%A3%D0%91%D0%94%2F%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961%282_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80%29</id>
		<title>СУБД/Практические занятия №1(2 семестр) - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://simhard.com/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%A3%D0%91%D0%94%2F%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961%282_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80%29"/>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php?title=%D0%A1%D0%A3%D0%91%D0%94/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961(2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;action=history"/>
		<updated>2026-04-14T15:44:25Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.21.3</generator>

	<entry>
		<id>http://simhard.com/wiki/index.php?title=%D0%A1%D0%A3%D0%91%D0%94/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961(2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=4004&amp;oldid=prev</id>
		<title>Vidokq: /* SQL. Создание таблиц и наполнение их информацией */</title>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php?title=%D0%A1%D0%A3%D0%91%D0%94/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961(2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=4004&amp;oldid=prev"/>
				<updated>2014-03-03T09:07:33Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;SQL. Создание таблиц и наполнение их информацией&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 09:07, 3 марта 2014&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==SQL. Создание таблиц и наполнение их информацией==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==SQL. Создание таблиц и наполнение их информацией==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Карандаш|24px}} [http://www.site-do.ru/db/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sql2&lt;/del&gt;.php Информация с сайта]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Карандаш|24px}} [http://www.site-do.ru/db/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;db&lt;/ins&gt;.php&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;#2 &lt;/ins&gt;Информация с сайта]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Создадим таблицы для форума. Сначала разберем их. И начнем с таблицы users (пользователи). В ней у нас 4 столбца:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Создадим таблицы для форума. Сначала разберем их. И начнем с таблицы users (пользователи). В ней у нас 4 столбца:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; id_user - целочисленные значения, значит будет тип int, ограничим его 10 символами - int (10).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; id_user - целочисленные значения, значит будет тип int, ограничим его 10 символами - int (10).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vidokq</name></author>	</entry>

	<entry>
		<id>http://simhard.com/wiki/index.php?title=%D0%A1%D0%A3%D0%91%D0%94/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961(2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=3965&amp;oldid=prev</id>
		<title>Vidokq: Новая страница: «==SQL. Создание таблиц и наполнение их информацией== {{Карандаш|24px}} [http://www.site-do.ru/db/sql2.php Инфор…»</title>
		<link rel="alternate" type="text/html" href="http://simhard.com/wiki/index.php?title=%D0%A1%D0%A3%D0%91%D0%94/%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%E2%84%961(2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80)&amp;diff=3965&amp;oldid=prev"/>
				<updated>2014-02-24T11:26:48Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «==SQL. Создание таблиц и наполнение их информацией== {{Карандаш|24px}} [http://www.site-do.ru/db/sql2.php Инфор…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==SQL. Создание таблиц и наполнение их информацией==&lt;br /&gt;
{{Карандаш|24px}} [http://www.site-do.ru/db/sql2.php Информация с сайта]&lt;br /&gt;
* Создадим таблицы для форума. Сначала разберем их. И начнем с таблицы users (пользователи). В ней у нас 4 столбца:&lt;br /&gt;
 id_user - целочисленные значения, значит будет тип int, ограничим его 10 символами - int (10).&lt;br /&gt;
 name - строковое значение varchar, ограничим его 20 символами - varchar(20).&lt;br /&gt;
 email - строковое значение varchar, ограничим его 50 символами - varchar(50).&lt;br /&gt;
 password - строковое значение varchar, ограничим его 15 символами - varchar(15).&lt;br /&gt;
&lt;br /&gt;
Все значения полей обязательны для заполнения, значит надо добавить тип NOT NULL.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;id_user int (10) NOT NULL&lt;br /&gt;
 name varchar(20) NOT NULL&lt;br /&gt;
 email varchar(50) NOT NULL&lt;br /&gt;
 password varchar(15) NOT NULL&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Первый столбец, как вы помните из концептуальной модели нашей БД, является первичным ключом (т.е. его значения уникальны, и они однозначно идентифицируют запись). Следить за уникальностью самостоятельно можно, но не рационально. Для этого в SQL есть специальный атрибут - AUTO_INCREMENT, который при обращении к таблице на добавление данных высчитывает максимальное значение этого столбца, полученное значение увеличивает на 1 и заносит его в столбец. Таким образом, в этом столбце автоматически генерируется уникальный номер, а следовательно тип NOT NULL излишен. Итак, присвоим атрибут столбцу с первичным ключом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;id_user int (10) AUTO_INCREMENT&lt;br /&gt;
 name varchar(20) NOT NULL&lt;br /&gt;
 email varchar(50) NOT NULL&lt;br /&gt;
 password varchar(15) NOT NULL&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Теперь надо указать, что поле id_user является первичным ключом. Для этого в SQL используется ключевое слово PRIMARY KEY (), в скобочках указывается имя ключевого поля. Внесем изменения:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;id_user int (10) AUTO_INCREMENT&lt;br /&gt;
 name varchar(20) NOT NULL&lt;br /&gt;
 email varchar(50) NOT NULL&lt;br /&gt;
 password varchar(15) NOT NULL&lt;br /&gt;
 PRIMARY KEY (id_user)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{V|24px}}Итак, таблица готова, и ее окончательный вариант выглядит так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;create table users (&lt;br /&gt;
 id_user int (10) AUTO_INCREMENT,&lt;br /&gt;
 name varchar(20) NOT NULL,&lt;br /&gt;
 email varchar(50) NOT NULL,&lt;br /&gt;
 password varchar(15) NOT NULL,&lt;br /&gt;
 PRIMARY KEY (id_user)&lt;br /&gt;
 );&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Теперь разберемся со второй таблицей - topics (темы). Рассуждая аналогично, имеем следующие поля:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;id_topic int (10) AUTO_INCREMENT&lt;br /&gt;
 topic_name varchar(100) NOT NULL&lt;br /&gt;
 id_author int (10) NOT NULL&lt;br /&gt;
 PRIMARY KEY (id_topic)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но в модели нашей БД поле id_author является внешним ключом, т.е. оно может иметь только те значения, которые есть в поле id_user таблицы users. Для того, чтобы указать это в SQL есть ключевое слово FOREIGN KEY (), которое имеет следующий синтаксис:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;FOREIGN KEY (имя_столбца_которое_является_внешним_ключом) REFERENCES имя_таблицы_родителя (имя_столбца_родителя);&amp;lt;/source&amp;gt; &lt;br /&gt;
* Укажем, что id_author - внешний ключ: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;id_topic int (10) AUTO_INCREMENT&lt;br /&gt;
 topic_name varchar(100) NOT NULL&lt;br /&gt;
 id_author int (10) NOT NULL&lt;br /&gt;
 PRIMARY KEY (id_topic)&lt;br /&gt;
 FOREIGN KEY (id_author) REFERENCES users (id_user)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{V|24px}}Таблица готова, и ее окончательный вариант выглядит так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;create table topics (&lt;br /&gt;
 id_topic int (10) AUTO_INCREMENT,&lt;br /&gt;
 topic_name varchar(100) NOT NULL,&lt;br /&gt;
 id_author int (10) NOT NULL,&lt;br /&gt;
 PRIMARY KEY (id_topic),&lt;br /&gt;
 FOREIGN KEY (id_author) REFERENCES users (id_user)&lt;br /&gt;
 );&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Осталась последняя таблица - posts (сообщения). Здесь все аналогично, только два внешних ключа: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;create table posts (&lt;br /&gt;
 id_post int (10) AUTO_INCREMENT,&lt;br /&gt;
 message text NOT NULL,&lt;br /&gt;
 id_author int (10) NOT NULL,&lt;br /&gt;
 id_topic int (10) NOT NULL,&lt;br /&gt;
 PRIMARY KEY (id_post),&lt;br /&gt;
 FOREIGN KEY (id_author) REFERENCES users (id_user),&lt;br /&gt;
 FOREIGN KEY (id_topic) REFERENCES topics (id_topic)&lt;br /&gt;
 );&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Обратите внимание, внешних ключей у таблицы может быть несколько, а первичный ключ в MySQL может быть только один. &lt;br /&gt;
* Обратите внимание, одну команду можно писать в несколько строк, и только после разделителя (точки с запятой) происходит к выполнение запроса.&lt;br /&gt;
&lt;br /&gt;
{{ЖЛампа|24px}}Помните, если вы сделали что-то не так, всегда можно удалить таблицу или всю БД с помощью оператора DROP. &lt;br /&gt;
* Итак, таблицы созданы, чтобы убедиться в этом вспомним о команде show tables:&lt;br /&gt;
&lt;br /&gt;
Теперь становятся понятны значения всех полей структуры, кроме поля DEFAULT. Это поле значений по умолчанию. Мы могли бы для какого-нибудь столбца (или для всех) указать значение по умолчанию. Например, если бы у нас было поле с названием &amp;quot;Женаты\Замужем&amp;quot; и типом ENUM ('да', 'нет'), то было бы разумно сделать одно из значений значением по умолчанию. Синтаксис был бы следующий:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;married enum ('да', 'нет') NOT NULL default('да')&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Т.е. это ключевое слово пишется через пробел после указания типа данных, а в скобках указывается значение по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Но вернемся к нашим таблицам. Теперь нам необходимо внести данные в наши таблицы. На сайтах, вы обычно вводите информацию в какие-нибудь html-формы, затем сценарий на каком-либо языке (php, java...) извлекает эти данные из формы и заносит их в БД. Делает он это посредством SQL-запроса на внесение данных в базу. Писать сценарии на php мы пока не умеем, а вот отправлять SQL-запросы на внесение данных умеем.&lt;br /&gt;
&lt;br /&gt;
Для этого используется оператор INSERT. Синтаксис можно использовать двух видов. Первый вариант используется для внесения данных во все поля таблицы:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO имя_таблицы VALUES ('значение_первого_столбца','значение_второго_столбца', ..., 'значение_последнего_столбца');&amp;lt;/source&amp;gt; &lt;br /&gt;
Давайте попробуем внести в нашу таблицу users следующие значения:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO users VALUES ('1','sergey', 'sergey@mail.ru', '1111');&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Второй вариант используется для внесения данных в некоторые поля таблицы:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO имя_таблицы ('имя_столбца', 'имя_столбца') VALUES ('значение_первого_столбца','значение_второго_столбца');&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
В нашей таблице users все поля обязательны для заполнения, но наше первое поле имеет ключевое слово - AUTO_INCREMENT (т.е. оно заполняется автоматически), поэтому мы можем пропустить этот столбец:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;INSERT INTO users (name, email, password) VALUES ('valera', 'valera@mail.ru', '2222');&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Если бы у нас были поля с типом NULL, т.е. необязательные для заполнения, мы бы тоже могли их проигнорировать. А вот если попытаться оставить пустым поле со значением NOT NULL, то сервер выдаст сообщение об ошибке и не выполнит запрос. Кроме того, при внесении данных сервер проверяет связи между таблицами. Поэтому вам не удастся внести в поле, являющееся внешним ключом, значение, отсутствующее в связанной таблице. В этом вы убедитесь, внося данные в оставшиеся две таблицы.&lt;br /&gt;
&lt;br /&gt;
* Но прежде внесем информацию еще о нескольких пользователях. Чтобы добавить сразу несколько строк, надо просто перечислять скобки со значениями через запятую:&lt;br /&gt;
&lt;br /&gt;
* Теперь внесем данные во вторую таблицу - topics (темы). Все тоже самое, но надо помнить, что значения в поле id_author должны присутствовать в таблице users (пользователи).&lt;br /&gt;
&lt;br /&gt;
* Теперь давайте попробуем внести еще одну тему, но с id_author, которого в таблице users нет (т.к. мы внесли в таблицу users только 5 пользователей, то id=6 не существует).&lt;br /&gt;
&lt;br /&gt;
*{{X|24px}} Сервер выдает ошибку и говорит, что не может внести такую строку, т.к. в поле, являющемся внешним ключом, стоит значение, отсутствующее в связанной таблице users.&lt;br /&gt;
&lt;br /&gt;
* Теперь внесем несколько строк в таблицу posts (сообщения), помня, что в ней у нас 2 внешних ключа, т.е. id_author и id_topic, которые мы будем вносить должны присутствовать в связанных с ними таблицах.&lt;br /&gt;
&lt;br /&gt;
* Итак, у нас есть 3 таблицы, в которых есть данные.&lt;/div&gt;</summary>
		<author><name>Vidokq</name></author>	</entry>

	</feed>