Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

CHANGE имя_столбца_старое имя_столбца_новое тип столбца.

Читайте также:
  1. Changes
  2. Changes in the connotational meaning may result in
  3. Changes of vowels
  4. New and changed features
  5. The OE noun system,its further changes.
  6. В11. Установите соответствие характеристик экономических систем и их типов: к каждой позиции, данной в первом столбце, подберите соответствующую позицию из второго столбца.

 

Чтобы сделать это, необходимо указать старое и новое имена столбца и его тип в настоящее время. Например, чтобы переименовать столбец INTEGER из a в b, можно сделать следующее:

mysql> ALTER TABLE t1 CHANGE a b INTEGER;

 

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

mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;

можно также использовать выражение MODIFY для изменения типа столбца без переименования его:

mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;

 

Пример

начинается с таблицы t1, которая создается следующим образом:

mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));

Для того чтобы переименовать таблицу из t1 в t2:

mysql> ALTER TABLE t1 RENAME t2;

Для того чтобы изменить тип столбца с INTEGER на TINYINT NOT NULL (оставляя имя прежним) и изменить тип столбца b с CHAR(10) на CHAR(20) с переименованием его с b на c:

mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

Для того чтобы добавить новый столбец TIMESTAMP с именем d:

mysql> ALTER TABLE t2 ADD d TIMESTAMP;

Для того чтобы добавить индекс к столбцу d и сделать столбец a первичным ключом:

mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

Для того чтобы удалить столбец c:

mysql> ALTER TABLE t2 DROP COLUMN c;

Для того чтобы добавить новый числовой столбец AUTO_INCREMENT с именем c:

mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,

ADD INDEX (c);

Заметьте, что столбец c индексируется, так как столбцы AUTO_INCREMENT должны быть индексированы, кроме того, столбец c объявляется как NOT NULL, поскольку индексированные столбцы не могут быть NULL.

При добавлении столбца AUTO_INCREMENT значения этого столбца автоматически заполняются последовательными номерами (при добавлении записей). Первый номер последовательности можно установить путем выполнения команды

SET INSERT_ID=# перед ALTER TABLE или использования табличной опции AUTO_INCREMENT = #.

 

 


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

Оператор SELECT имеет следующую структуру:

SELECT [DISTINCT | ALL] * или поле1, поле2 … select_expression,... [FROM table_references [WHERE where_definition] [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC],...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC],...] [LIMIT [offset,] rows]

 

SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц. Выражение select_expression задает столбцы, в которых необходимо проводить выборку. Кроме того, оператор SELECT можно использовать для извлечения строк, вычисленных без ссылки на какую-либо таблицу. Например:

mysql> SELECT 1 + 1; -> 2

(вставка о ключевых словах)

 

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

 

A B Not A A И (AND) B A или (OR) B
True True False True True
True False False False True
True Null False Null True
False True True False True
False False True False False
False Null True False Null
Null True Null Null True
Null False Null False Null
Null Null Null Null Null

 

При указании ключевых слов следует точно соблюдать порядок, указанный выше. Например, выражение HAVING должно располагаться после всех выражений GROUP BY и перед всеми выражениями ORDER BY.

Используя ключевое слово AS, выражению в SELECT можно присвоить псевдоним. Псевдоним используется в качестве имени столбца в данном выражении и может применяться в ORDER BY или HAVING. Например:

mysql> SELECT CONCAT(last_name,', ',first_name) AS full_name

FROM mytable ORDER BY full_name;

 

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

Ссылки на столбцы могут задаваться в виде col_name, tbl_name.col_name или db_name.tbl_name.col_name. В выражениях tbl_name или db_name.tbl_name нет необходимости указывать префикс для ссылок на столбцы в команде SELECT, если эти ссылки нельзя истолковать неоднозначно. See section 6.1.2 Имена баз данных, таблиц, столбцов, индексы псевдонимы, где приведены примеры неоднозначных случаев, для которых требуются более четкие определения ссылок на столбцы.

Ссылку на таблицу можно заменить псевдонимом, используя tbl_name [AS] alias_name:

mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS t2

WHERE t1.name = t2.name

mysql> SELECT t1.name, t2.salary FROM employee t1, info t2 WHERE t1.name = t2.name; Аналогично выводятся данные о вычисляемых полях. Select поле1, поле2, выражение As pole3 from t таблица.

 

Пример базы данных Animals

Функции, используемые в языке MySQL.

 

Для работы со строками:

ASCII(‘символ’) – код ASCII, аналогично функция ORD(строка),

 

CONV(N,from_base,to_base)

Преобразует числа из одной системы счисления в другую. Возвращает строковое представление числа N, преобразованного из системы счисления с основой from_base в систему счисления с основой to_base. Если хотя бы один из аргументов равен NULL, то возвращается NULL.

CHAR(N,...)

CHAR() интерпретирует аргументы как целые числа и возвращает строку, состоящую из символов, соответствующих ASCII-коду этих чисел. Величины NULL пропускаются:

mysql> SELECT CHAR(77,121,83,81,'76'); -> 'MySQL'

CONCAT(str1,str2,...)

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

mysql> SELECT CONCAT('My', 'S', 'QL');'MySQL'

BIN(N) -Возвращает строку, представляющую двоичную величину N,

OCT(N) Возвращает строковое представление восьмеричного значения числа N, где N - целое число большого размера

LENGTH(str) Возвращает длину строки str:

LOCATE(substr,str)

POSITION(substr IN str)

Возвращает позицию первого вхождения подстроки substr в строку str. Если подстрока substr в строке str отсутствует, возвращается 0

LEFT(str,len)

Возвращает крайние слева len символов из строки str:mysql> SELECT LEFT('foobarbar', 5); -> 'fooba'

RIGHT(str,len)

Возвращает крайние справа len символов из строки str:

mysql> SELECT RIGHT('foobarbar', 4); -> 'rbar'

LTRIM(str)

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

mysql> SELECT LTRIM(' barbar'); -> 'barbar'

RTRIM(str)

Возвращает строку str с удаленными конечными пробелами:

mysql> SELECT RTRIM('barbar '); -> 'barbar'

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

Возвращает строку str с удаленными всеми префиксами и/или суффиксами, указанными в remstr. Если не указан ни один из спецификаторов BOTH, LEADING или TRAILING, то подразумевается BOTH. Если аргумент remstr не задан, то удаляются пробелы:

mysql> SELECT TRIM(' bar '); -> 'bar'

REPLACE(str,from_str,to_str)

Возвращает строку str, в которой все вхождения строки from_str заменены на to_str:

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com'

REPEAT(str,count)

Возвращает строку, состоящую из строки str, повторенной count раз. Если значение count <= 0, возвращает пустую строку. Возвращает NULL, если str или count равны NULL:

mysql> SELECT REPEAT('MySQL', 3); -> 'MySQLMySQLMySQL'

REVERSE(str)

Возвращает строку str с обратным порядком символов:

mysql> SELECT REVERSE('abc'); -> 'cba'

Данная функция поддерживает многобайтные величины.

INSERT(str,pos,len,newstr)

Возвращает строку str, в которой подстрока начиная с позиции pos, имеющая длину len замещена на newstr:

mysql> SELECT INSERT('Quadratic', 3, 4, 'What'); -> 'QuWhattic'

LOWER(str)

Возвращает строку str, в которой все символы переведены в нижний регистр в соответствии с текущей установкой набора символов

UPPER(str)

Возвращает строку str, в которой все символы переведены в верхний регистр в соответствии с текущей установкой набора символов.

LOAD_FILE(file_name)

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

mysql> UPDATE tbl_name SET blob_column=LOAD_FILE("/tmp/picture")

WHERE id=1;

 

Функции сравнения строк

 

LIKE – см. раньше

STRCMP( expr1,expr2)

Функция STRCMP() возвращает: 0, если строки идентичны, -1 - если первый аргумент меньше второго (в соответствии с имеющимся порядком сортировки), и 1 - в остальных случаях:

mysql> SELECT STRCMP('text', 'text2'); -> -1mysql> SELECT STRCMP('text2', 'text'); -> 1mysql> SELECT STRCMP('text', 'text'); -> 0

Числовые функции

 

RAND()

RAND(N)

Возвращает случайную величину с плавающей точкой в диапазоне от 0 до 1,0. Если целочисленный аргумент N указан, то он используется как начальное значение этой величины

LEAST(X,Y,...)

Если задано два или более аргументов, возвращает наименьший (с минимальным значением) аргумент.

GREATEST(X,Y,...)

Возвращает наибольший (с максимальным значением) аргумент.

 

Функции даты и времени

 

MONTH(date)

Возвращает порядковый номер месяца в году для аргумента date в диапазоне от 1 до 12:

mysql> SELECT MONTH('1998-02-03'); -> 2

MONTHNAME(date)

Возвращает название месяца для аргумента date:

mysql> SELECT MONTHNAME("1998-02-05");

'February'

YEAR(date)

Возвращает год для аргумента date в диапазоне от 1000 до 9999:

mysql> SELECT YEAR('98-02-03'); -> 1998

HOUR(time)

Возвращает час для аргумента time в диапазоне от 0 до 23:

mysql> SELECT HOUR('10:05:03'); -> 10

MINUTE(time)

Возвращает количество минут для аргумента time в диапазоне от 0 до 59:

mysql> SELECT MINUTE('98-02-03 10:05:03'); -> 5

SECOND(time)

Возвращает количество секунд для аргумента time в диапазоне от 0 до 59:

mysql> SELECT SECOND('10:05:03'); -> 3

PERIOD_ADD(P,N)

Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает величину в формате YYYYMM. Следует учитывать, что аргумент периода P не является значением даты:

mysql> SELECT PERIOD_ADD(9801,2); -> 199803

PERIOD_DIFF(P1,P2)

Возвращает количество месяцев между периодами P1 и P2. P1 и P2 должны быть в формате YYMM или YYYYMM. Следует учитывать, что аргументы периода P1 и P2 не являются значениями даты:

mysql> SELECT PERIOD_DIFF(9802,199703); -> 11

DATE_ADD(date,INTERVAL expr type)

DATE_SUB(date,INTERVAL expr type)

ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)

Данные функции производят арифметические действия над датами. Функции ADDDATE() и SUBDATE() - синонимы для DATE_ADD() и DATE_SUB(). В версии MySQL 3.23 вместо функций DATE_ADD() и DATE_SUB() можно использовать операторы + и -, если выражение с правой стороны представляет собой столбец типа DATE или DATETIME (см. пример ниже). Аргумент date является величиной типа DATETIME или DATE, задающей начальную дату. Выражение expr задает величину интервала, который следует добавить к начальной дате или вычесть из начальной даты. Выражение expr представляет собой строку, которая может начинаться с - для отрицательных значений интервалов. Ключевое слово type показывает, каким образом необходимо интерпретировать данное выражение. Вспомогательная функция EXTRACT(type FROM date) возвращает интервал указанного типа (type) из значения даты. В следующей таблице показана взаимосвязь аргументов type и expr:

CURDATE()




Дата добавления: 2014-12-18; просмотров: 43 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.015 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав