Как поменять тип данных в таблице sql

Типы данных в языке SQL, операторы языка SQL для создания, удаления и модификации таблиц.

Типы данных SQL разделяются на три группы:
строковые;
с плавающей точкой (дробные числа);
целые числа, дата и время.

Типы данных SQL строковые

Типы данных SQL Описание
CHAR(size) Строки фиксированной длиной (могут содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Можно записать до 255 символов
VARCHAR(size) Может хранить не более 255 символов.
TINYTEXT Может хранить не более 255 символов.
TEXT Может хранить не более 65 535 символов.
BLOB Может хранить не более 65 535 символов.
MEDIUMTEXT Может хранить не более 16 777 215 символов.
MEDIUMBLOB Может хранить не более 16 777 215 символов.
LONGTEXT Может хранить не более 4 294 967 295 символов.
LONGBLOB Может хранить не более 4 294 967 295 символов.
ENUM(x,y,z,etc.) Позволяет вводить список допустимых значений. Можно ввести до 65535 значений вSQL Тип данных ENUM список. Если при вставке значения не будет присутствовать в списке ENUM, то мы получим пустое значение. Ввести возможные значения можно в таком формате: ENUM ( ‘X’, ‘Y’, ‘Z’)
SET SQL Тип данных SET напоминает ENUM за исключением того, что SET может содержать до 64 значений.

Типы данных SQL с плавающей точкой (дробные числа) и целые числа

Типы данных SQL Описание
TINYINT(size) Может хранить числа от -128 до 127
SMALLINT(size) Диапазон от -32 768 до 32 767
MEDIUMINT(size) Диапазон от -8 388 608 до 8 388 607
INT(size) Диапазон от -2 147 483 648 до 2 147 483 647
BIGINT(size) Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
FLOAT(size,d) Число с плавающей точкой небольшой точности.
DOUBLE(size,d) Число с плавающей точкой двойной точности.
DECIMAL(size,d) Дробное число, хранящееся в виде строки.

Типы данных SQL — Дата и время

Типы данных SQL Описание
DATE() Дата в формате ГГГГ-ММ-ДД
DATETIME() Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP() Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIME() Время в формате ЧЧ:ММ:СС
YEAR() Год в двух значной или в четырехзначном формате.

Создание таблицы в базе данных производится командой CREATE TABLE.

Синтаксис:

CREATE TABLE [IF NOT EXISTS] tbl_name [(create_definition. )] [table_options] [select_statement]

tbl_name— Задает имя таблицы, которая будет создана в текущей базе данных. Если никакая база данных на момен вызова команды CREATE TABLE не была принята текущей, то возникнет ошибка выполнения команды.

IF NOT EXISTS— Если указан этот параметр и производится попытка создать таблицу с дублирующим именем (т.е. таблица с таким именем в текущей БД уже есть), то таблица создана не будет и сообщение об ошибке не появиться. В противном случае таблица также создана не будет, но команда вызовет ошибку.

create_definition— Определяет внутреннюю структуру создаваемой таблицы (названия и типы полей, ключи, индексы и т.д.)

Возможные синтаксисы create_definition:

col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]

PRIMARY KEY (index_col_name. )

KEY [index_name] (index_col_name. )

INDEX [index_name] (index_col_name. )

UNIQUE [INDEX] [index_name] (index_col_name. )

[CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name. ) [reference_definition]

col_name — Задает имя столбца в создаваемой таблице.

Type— Задает тип данных для столбца col_name.

Возможные значения параметра type:

§ INT[(length)] [UNSIGNED] [ZEROFILL]

§ BIGINT[(length)] [UNSIGNED] [ZEROFILL]

§ DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]

§ FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]

§ DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]

[NOT NULL | NULL] —Указывавет, может ли данных столбец содержать значение NULL или нет. Если не указано, то по умолчанию принимается NULL (т.е. может содержать NULL).

[DEFAULT default_value]— Задает значение по умолчанию для данного столбца. При вставке новой записи в таблицу командой INSERT если значение для поля col_name явно указано не было, то устанавливается значение default_value.

[AUTO_INCREMENT]— При вставке новой записи в таблицу поле с этим атрибутом автоматически получит числовое значение, на 1 больше самого большого значения для этого поля в текущий момент времени. Данная возможность обычно используется для генерирования уникальных идентификаторов строк. Столбец, для которого применяется атрибут AUTO_INCREMENT, должен иметь целочисленный тип. В таблице может быть только один столбец с атрибутом AUTO_INCREMENT. Так же этот столбец должен быть проиндексирован. Отсчет последовательности чисел для AUTO_INCREMENT начинается с 1. Это могут быть только положительные числа.

Следующий пример создает таблицу users с 3 полями, где первое поле — уникальный идентификатор записи, второе поле — имя пользователя, а третье поле — его возраст:

create table Water_Area(

id int auto_increment,

constraint pk_Water_Area primary key nonclustered(id))

create table Station(

id_Water_Area int not null,

name varchar(20) not null,

Latitude float(4) null,

Longitude float(4) null,

coordinates varchar(40) null,

coordinates_modern varchar(30) null,

comment varchar(70) null

constraint pk_Station primary key nonclustered(id))

Удаление таблицы.

Для удаления таблицы служит команда DROP TABLE.

DROP TABLE [IF EXISTS] tbl_name [, tbl_name. ] [RESTRICT | CASCADE]

tbl_name — Имя удаляемой таблицы.

IF EXISTS – Если указан этот параметр, то при попытке удаления несущестующей таблицы ошибки не возникнет. В противном случае возникнет ошибка выполнения команды.

RESTRICT и CASCADE Не несут никакой функциональности. Оставлены для упрощения переноса программы.

Drop table Station

Модификация таблиц.

Для модификации служит команда Alter Table.

ALTER TABLE TableName1ADD | ALTER [COLUMN] FieldName1FieldType [(nFieldWidth [, nPrecision])][NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]][DEFAULT eExpression1][PRIMARY KEY | UNIQUE][REFERENCES TableName2 [TAG TagName1]][NOCPTRANS] |[DROP [COLUMN] FieldName]

Команда ALTER TABLE изменяет определение таблицы одним из следующих способов:

-добавляет ограничение целостности

-переопределяет столбец (тип данных, размер, умалчиваемое значение)

-модифицирует характеристики памяти или иные параметры

-включает, выключает или удаляет ограничение целостности или триггер.

alter table Station

alter table Station

add constraint fk_Station_Relation_Water_Area foreign key (id_Water_Area) references Water_Area (id)

Как поменять тип данных в таблице sql

SELECT * Into XLImport FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,’Excel 8.0;Database= + FileName + , ‘SELECT * FROM [tarzona_mn$]’)

���������� ���������:
�������� ����� ������ �� �������
—-
SELECT * Into XLImport FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,’Excel 8.0;Database=» + OpenDialog1->FileName + «‘, ‘SELECT * FROM [tarzona_mn$]
—-

CREATE TABLE [dbo].[XLImport] (
[��/�] [float] NULL ,
[��� ������] [float] NULL ,
[������������ ������] [nvarchar] (255) NULL ,
[��� ����] [float] NULL ,
[������������ ����] [nvarchar] (255) NULL
) ON [PRIMARY]
GO

Введение в SQL. Создание, изменение и удаление таблиц. Выборка данных из таблиц. Создание SQL-запросов. Обработка данных в SQL. Методика.

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

Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций: создание в базе данных новой таблицы; добавление в таблицу новых записей; изменение записей; удаление записей; выборка записей из одной или нескольких таблиц (в соответствии с заданным условием); изменение структур таблиц.

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

В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов: на создание или изменение в базе данных новых или существующих объектов; на получение данных; на добавление новых данных (записей); на удаление данных; обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на:

-запросы, оперирующие самими таблицами (создание и изменение таблиц);

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

Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием: типа хранимых в каждом поле значений; связей между таблицами (задание первичных и вторичных ключей); информации, необходимой для построения индексов.

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

Команды SQL разделяются на следующие группы:

1. Команды языка определения данных — DDL (Data Definition Language). Эти SQL команды можно использовать для создания, изменения и удаления различных объектов базы данных.

2. Команды языка управления данными — DCL (Data Control Language). С помощью этих SQL команд можно управлять доступом пользователей к базе данных и использовать конкретные данные (таблицы, представления и т.д.).

3. Команды языка управления транзакциями — TCL (Тгаnsасtiоn Соntrol Language). Эти SQL команды позволяют определить исход транзакции.

4. Команды языка манипулирования данными — DML (Data Manipulation Language). Эти SQL команды позволяют пользователю перемещать данные в базу данных и из нее.

Операторы SQL делятся на:

-операторы определения данных (Data Definition Language, DDL)

-CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.)

-ALTER изменяет объект

-DROP удаляет объект

-операторы манипуляции данными (Data Manipulation Language, DML)

-SELECT считывает данные, удовлетворяющие заданным условиям

-INSERT добавляет новые данные

-UPDATE изменяет существующие данные

-DELETE удаляет данные

-операторы определения доступа к данным (Data Control Language, DCL)

-GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом

-REVOKE отзывает ранее выданные разрешения

-DENY задает запрет, имеющий приоритет над разрешением

-операторы управления транзакциями (Transaction Control Language, TCL)

-COMMIT применяет транзакцию.

-ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.

-SAVEPOINT делит транзакцию на более мелкие участки.

Преимущества: 1.Независимость от конкретной СУБД (тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую). 2. Наличие стандартов (наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка). 3. Декларативность (с помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать)

Недостатки:1.Несоответствие реляционной модели данных 2.Повторяющиеся строки 3. Неопределённые значения (nulls) 4. Явное указание порядка колонок слева направо 5. Колонки без имени и дублирующиеся имена колонок 6. Отсутствие поддержки свойства «=» 7. Использование указателей 8. Высокая избыточность

2.2 Создание, изменение и удаление таблиц.

Создание таблицы:

Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу — таблицу без строк. Значения вводятся с помощью DML команды INSERT. Команда CREATE TABLE в основном определяет им таблицы, в виде описания набора имен столбцов указанных в определенном порядке. Она также определяет типы данных и размеры столбцов. Каждая таблица должна иметь по крайней мере один столбец.

CREATE TABLE <TABLE-NAME>

Изменение таблицы:

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

ALTER TABLE <TBODY></TBODY></TABLE><TABLE name>ADD <COLUMN name>

Столбец будет добавлен со значением NULL для всех строк таблицы. Новый столбец станет последним по порядку столбцом таблицы. Вообще то, можно добавить сразу несколько новых столбцов, отделив их запятыми, в одной команде. Имеется возможность удалять или изменять столбцы. Наиболее часто, изменением столбца может быть просто увеличение его размера, или добавление (удаление) ограничения.
Удаление таблица:

Нужно быть создателем таблицы, чтобы иметь возможность удалить ее. Поэтому не волнуйтесь о случайном разрушении ваших данных, SQL сначала потребует чтобы вы очистили таблицу прежде, чем удалит ее из базы данных. Таблица с находящимися в ней строками, не может быть удалена. Синтаксис для удаления вашей таблицы, если конечно она является пустой, следующая:

DROP TABLE < table name >;

2.3 Выборка данных из таблицы

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

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

Формат запроса с использованием данного оператора:

SELECT список полей FROM список таблиц WHERE условия…

[DISTINCT | ALL] FROM <список таблиц>

[WHERE <предикат – условие выборки или соединения>]

[GROUP BY <список полей результата>]

[HAVING <предикат-условие для группы>]

[ORDER BY <список полей, по которым требуется упорядочит ввод>]

WHERE — используется для определения, какие строки должны быть выбраны или включены в GROUP BY.

GROUP BY — используется для объединения строк с общими значениями в элементы меньшего набора строк.

HAVING — используется для определения, какие строки после GROUP BY должны быть выбраны.

ORDER BY — используется для определения, какие столбцы используются для сортировки результирующего набора данных.

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

2.4 Создание SQL-запросов.

Запрос– это средство выбора необходимой информации из базы данных. Вопрос, сформированный по отношению к базе данных, и есть запрос. SQL – запросы – это запросы, которые составляются (программистами) из последовательности SQL – инструкций. Эти инструкции задают, что надо сделать с входным набором данных для генерации выходного набора. Все запросы Access строит на основе SQL – запросов, чтобы посмотреть их, необходимо в активном окне проектирования запроса выполнить команду Вид/SQL.

Существует несколько типов запросов: на выборку(приведён выше), на обновление, на добавление, на удаление, перекрестный запрос, создание таблиц. Наиболее распространенным является запрос на выборку. Запросы на выборку используются для отбора нужной пользователю информации, содержащейся в таблицах. Они создаются только для связанных таблиц.

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

Создание запроса в режиме SQL похоже на программирование, пользователю предстоит вручную набрать нужные команды. Запрос на выбор информации начинается словом SELECT. Далее нужно перечислить нужные поля таблицы, напечатаем наименование таблицы, поставим точку, а в квадратных скобках наберем имя поля из этой таблицы и т.д. Поля отделяются запятыми.

Запрос заканчивается служебным словом FROM, после которого указывается таблица, из которой была взята информация. В конце строки запроса должна стоять точка с запятой.

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

2.5 Обработка данных в SQL:

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

• COUNT — производит подсчет количества строк или не-NULL значений полей, которые выбрал запрос;

• SUM — рассчитывает арифметическую сумму всех выбранных значений данного поля;

• AVG — производит усреднение всех выбранных значении данного поля;

• МАХ — находит и возвращает наибольшее из всех выбранных значений

• MIN — находит и возвращает наименьшее из всех выбранных значений данного поля.

Для упорядочения вывода полей таблиц SQL использует команду ORDER BY, позволяя сортировать вывод запроса согласно значениям в том количестве выбранных столбцов.

Для размещения нескольких запросов вместе и объединения вывода используют предложение UNION. Предложение UNION объединяет вывод двух или более SQL запросов в единый набор строк и столбцов. Команда UNION автоматически исключает дубликаты строк из вывода.

Компьютерные сети

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

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

Изменение, заполнение и обновление таблиц

После создания пустых таблиц следующим логическим шагом является заполнение их данными и обновление этих данных. Для этого в Transact-SQL предназначена пара инструкций INSERT – UPDATE.

Однако, часто на позднем этапе проектирования возникает необходимость изменить саму схему таблиц. Например, если изменился первичный ключ или тип данных столбца. Чтобы не удалять старые таблицы и не создавать их заново с помочью CREATE TABLE c правильными параметрами, применяется инструкция ALTER TABLE. Применение этих трех конструкций рассматривается ниже.

Заполнение таблиц

Заполнить таблицу данными можно через конструкцию CREATE TABLE, однако более эффективным подходом является разделять создание таблицы и ее заполнение, особенно новичкам в SQL, потому что:

  • визуально понятнее;
  • удобнее, если наполнение таблиц поэтапное.

Чтобы получить следующий вид таблицы:

Потребуется создать ее с помощью CREATE TABLE и заполнить, применив инструкцию INSERT. Следующая инструкция добавляет одну строку в уже созданную нами таблицу housemates:

В примере выше следует различать два блока конструкции INSERT:

INTO – указывающий на таблицу в которую добавляются данные

VALUES – инициализирующий построчный ввод.

В параметрах (в скобках) блока INTO перечисляются столбцы в порядке их следования. Допустима запись без параметров, если порядок следования столбцов при создании таблицы и заполнении ее совпадают. Следующий код идентичен предыдушему:

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

В блоке VALUES производится построчная инициализация в порядке следования столбцов блока INTO. Заполнение строки – это перечисление значений ячеек в скобках. Значения перечисляются через запятую, строки между собой тоже.

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

Обновление таблицы

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

Следующий код присвоит новый почтовый ящик жителю дома с идентификационным номером 103.

Блок SET – это блок изменений. Если нужно обновить значение нескольких ячеек, то они перечисляются через запятую.

Изменение таблицы

На поздних этапах проектирования или уже после разработки базы часто возникает необходимость:

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

Для всех этих операций предназначена инструкция переопределения ATER TABLE.

Чтобы добавить столбец инструкция ALTER TABLE применяется с предложением ADD. Добавим новый столбец к таблице housemates из прошлого раздела:

Нужно применить к нему предложение ALTER COLUMN внутри ALTER TABLE:

Удаляется столбец применением DROP COLUMN внутри ALTER TABLE:

Первичный или внешний ключ удаляется и добавляется конструкциями ALTER TABLE ADD CONSTRAINT/DROP CONSTRAINT, соответственно:

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

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

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