Примечание: команда заканчивается точкой с запятой




 

Синтаксис команды CREATE DATABASE имеет вид:

CREATE DATABASE [IF NOT EXISTS] имя_базы_данных

[спецификация_create[,спецификация_create]...]

 

Команда CREATE DATABASE создает базу данных с указанным именем. Для использования команды необходимо иметь привилегию CREATE для базы данных. Если база данных с таким именем существует, генерируется ошибка.

спецификация_create:

[DEFAULT] CHARACTER SET имя_набора_символов

[DEFAULT] COLLATE имя_порядка_сопоставления

 

Опция спецификация_сrеаtе может указываться для определения характеристик базы данных. Характеристики базы данных сохраняются в файле db.opt, расположенном в каталоге данных. Конструкция CHARACTER SET определяет набор символов для базы данных по умолчанию. Конструкция COLLATION задает порядок сопоставления по умолчанию.

 

Базы данных в MySQL реализованы в виде каталогов, которые содержат файлы, соответствующие таблицам базы данных. Поскольку изначально в базе нет никаких таблиц, оператор CREATE DATABASE только создает подкаталог в каталоге данных MySQL.

 

Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу - таблицу без записей. Записи вводятся с помощью команды INSERT (См. Главу 15). Команда CREATE TABLE определяет имена таблицы и столбцов, перечисленных в виде набора описаний с определенным порядком. Кроме того, она определяет типы данных и размеры столбцов. Каждая таблица должна иметь не менее одного столбца.

Синтаксис команды CREATE TABLE:

CREATE TABLE [IF NOT EXISTS] <table-name>

(<column name > <data type> [(<size>)],

<column name > <data type> [(<size>)],...);

 

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

 

Т.к. пробелы используются для разделения частей команды SQL, то они не могут быть частью имени таблицы (или любого другого объекта). Для разделения слов в именах таблиц обычно используется подчеркивание "_".

 

 

Размер поля зависит от его типа данных. Если размер не указан, то СУБД назначит его автоматически.

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

Назначать размер необходимо только для типа данных - CHAR. Размер - это целое число, определяющее максимальное количество символов, которое может вместить поле. Фактически, количество символов в поле может иметь значение от нуля (если поле - NULL) до этого числа. По умолчанию, размер равен 1, т.е. поле может содержать только одну букву.

 

 

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

 

Следующая команда создает таблицу, в которой будут храниться данные о сотрудниках:

 

CREATE TABLE employee_data

(

emp_id int unsigned not null auto_increment primary key,

f_name varchar(20),

l_name varchar(20),

title varchar(30),

age int,

yos int,

salary int,

perks int,

email varchar(60)

);

За ключевыми словами CREATE TABLE следует имя создаваемой таблицы employee_data. Каждая строка внутри скобок представляет один столбец. Эти столбцы хранят для каждого сотрудника идентификационный номер (emp_id), фамилию (f_name), имя (l_name), должность (title), возраст (age), стаж работы в компании (yos), зарплату (salary), надбавки (perks), и адрес e-mail (email).

 

За именем каждого столбца следует тип столбца. Типы столбцов определяют тип данных, которые будет содержать столбец. В данном примере столбцы f_name, l_name, title и email будут содержать текстовые строки, поэтому тип столбца задан как varchar, что означает переменное количество символов. Максимальное число символов для столбцов varchar определяется числом, заключенным в скобки, которое следует сразу за именем столбца. Столбцы age, yos, salary и perks будут содержать числа (целые), поэтому тип столбца задается как int. Первый столбец (emp_id) содержит идентификационный номер (id) сотрудника. Его тип столбца выглядит несколько перегруженным, поэтому рассмотрим его по частям:

 

 

int: определяет тип столбца как целое число.

unsigned: определяет, что число будет без знака (положительное целое).

not null: определяет, что значение не может быть null (пустым); то есть каждая строка в этом столбце должна иметь значение.

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

primary key: помогает при индексировании столбца, что ускоряет поиск значений. Каждое значение должно быть уникально. Лучше всего поручить присваивание уникальных значений самой системе MySQL.

 

 

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

 

ВВОД, УДАЛЕНИЕ И ИЗМЕНЕНИЕ ЗНАЧЕНИЙ ПОЛЕЙ

 

Данные могут помещаться в поля и удаляться из них тремя командами языка DML (Язык Манипулирования Данными):

INSERT - вставить;

UPDATE - модифицировать;

DELETE - удалить.

 

ВВОД ЗНАЧЕНИЙ (INSERT)

В SQL все записи вводятся с использованием команды модификации INSERT. В самой простой форме используется следующий синтаксис:

 

INSERT INTO <table name> (<column1>, <column2>,...)

VALUES (<value1>, <value2>,...);

где table_name является именем таблицы, в которую надо внести данные; column1, column2 и т.д. являются именами столбцов, а value1, value2 и т.д. являются значениями для соответствующих столбцов.

 

INSERT INTO employee_data

(f_name, l_name, title, age, yos, salary, perks, email)

values ("Михаил", "Петров", "директор", 28, 4, 200000, 50000, "misha@yandex.ru");

 

Команды DML не производят вывода, но СУБД должна дать какое-либо подтверждение того, что данные были введены или отвергнуты.

 

Имя таблицы должно быть предварительно определено командой CREATE TABLE, а тип каждого значения, присутствующего в списке ввода, должно совпадать с типом данных столбца, в который оно вводится. В стандарте ANSI эти значения не могут быть представлены выражениями, т.е. 3 - допустимо, а выражение 2+1 - нет.

 

Значения вводятся в таблицу в порядке следования имен, т.е. первое значение списка ввода автоматически попадает в столбец № 1, второе в столбец № 2 и т.д.

 

Значениями для столбцов f_name, l_name, title и email являются текстовые строки, и они записываются в кавычках.

Значениями для age, yos, salary и perks являются числа (целые), и они не имеют кавычек.

Можно видеть, что данные заданы для всех столбцов кроме emp_id. Значение для этого столбца задает система MySQL, которая находит в столбце наибольшее значение, увеличивает его на единицу, и вставляет новое значение.

 

Чтобы облегчить эту работу можно поместить все операторы INSERT в файл. Это должен быть обычный текстовый файл с оператором INSERT в каждой строке.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: