|
Программирование >> Программный интерфейс приложений
Создание, удаление и выборка баз данных CREATE DATABASE DROP DATABASE USE Создание, модификация аруктуры, удаление таблиц и индексов ALTER TABLE CREATE INDEX CREATE TABLE DROP INDEX DROP TABLE Получение информации о базах данных, таблицах и запросах DESCRIBE EXPLAIN SHOW Выборка информации из таблиц SELECT Операторы модификации информации в таблицах DELETE INSERT LOAD DATA OPTIMIZE TABLE REPLACE UPDATE Операторы администрирования FLUSH GRANT KILL REVOKE Другие операторы CREATE FUNCTION DROP FUNCTION LOCK TABLES SET UNLOCK TABLES Рис. 3.1. Операторы SQL, поддерживаемые в СУБД MySQL Правила присвоения имен в СУБД MySQL Почти каждый оператор SQL неким образом обращается к базе данных или элементам, ее составляющим. Этот раздел освещает синтаксические правила ссылки на базы данных, таблицы, столбцы, индексы и псевдонимы. Имена рассматриваются с точки зрения чувствительности к регистру. Ссылка на элементы баз данных При присвоении имен элементам базы данных мы офаничены набором допустимых символов и длиной имени. Вид имени также зависит от контекста, в котором оно используется. Допустимые символы. Имя может состоять из любого алфавитно-цифрового символа из набора символов, которые использует сервер, плюс символы (символ подчеркивания) и $ (знак доллара). Имена могут начинаться с любого допустимого символа, включая цифры. Однако имя столбца не может состоять из одних цифр: это сделает его неотличимым от чисел. В СУБД MySQL предусмофена уникальная возможность начинать имя с цифры. При этом необходимо быть особенно внимательным при использовании имен, содержащих символ Е или е . Такие имена приводят к неоднозначности. Выражение 23е + 14 может означать сложение значения столбца 23е плюс 14. А что может значить 23е+14? Это имя или это число в научной нотации? Длина имени. Имена баз данных, таблиц, столбцов и индексов имеют длину до 64 символов. Имена псевдонимов могут иметь до 256 символов. Квалификаторы имен. Для обращения к базе данных достаточно просто указать ее имя. USE db name SHOW TABLES FROM db name Для ссьшки на таблицу есть два варианта: дать полностью квалифицированное имя таблицы, состоящее из двух частей, разделенных точкой, - имени базы данных и имени таблицы: SHOW TABLES FROM db name.tbl name SELECT * FROM db name.tbl name При указании только имени таблицы обращение происходит к текущей базе данных. Два следующие оператора идентичны: SHOW TABLES FROM member SELECT * FROM samp db.member Для ссьшки на столбец есть фи варианта: указание полностью квалифицированного имени столбца, указание частично квалифицированного имени столбца и указание неквалифицированного имени столбца. Полностью квалифицированное имя столбца (в нотации db name. tbl name . col name) дает ссьшку на определенный столбец из определенной таблиць[, входящей в состав определенной базы данных. Частично квалифицированное имя столбца (записанное как tblname. col name) ссьшается на определенный столбец в определенной таблице. Вот два запроса, ссьшающиеся на одноименные столбцы. Но из контекста предложений FROM видно, что они относятся к разным таблицам: SELECT last name, first name FROM president SELECT last name, first name FROM member Обычно давать полностью квалифицированные имена не нужно, хотя это и не будет ошибкой. Использование оператора USE делает базу данных текушей. В операторе SELECT таблица становится текущей таблицей для всех столбцов в данном операторе, если она одна указана в предложении FROM. Имена таблиц нужно квалифицировать только при наличии в операторе нескольких таблиц (когда таблицу или базу данных нельзя определить по контексту). Вот несколько ситуаций, при которых возникает такая неоднозначность Запросы, ссылающиеся на таблицы из нескольких баз данных. Любая таблица, не являющаяся в данный момент текушей, должна указываться нотацией dbname. tblname. Это помогает определить, из какой базы данных использовать таблицу. Запросы, выбирающие столбцы из нескольких таблиц. Это запросы, в которых столбец с одним и тем же именем присутствует в нескольких таблицах. Чувствительность к регистру в операторах SQL Правила, которым подчиняется синтаксис операторов SQL с точки зрения чувствительности к регистру, зависят от части оператора и от операционной системы, под управлением которой работает сервер. Ключевые слова и имена функций. Ключевые слова и имена функций не зависят от регистра. Они могут вводиться в любом регистре. Вот абсолютно идентичные операторы: SELECT NOW О select now() Select nOw{) Имена баз данных н таблиц. Имена баз данных и таблиц подчиняются правилам именования каталогов и файлов в операционной системе, работающей на сервере. Вследствие этого, чувствительность к регистру имен баз данных и таблиц подчиняется правилу, предусмотренному для имен файлов и принятому в операционной системе. Для сервера, работающего под управлением ОС UNIX, имена баз данных и таблиц зависят от регистра, а в ОС Windows имена файлов не зависят от регистра, поэтому имена баз данных и таблиц поведут себя аналогичным образом. Об этом нужно помнить в случае, когда ставится задача переноса базы данных из ОС UNIX в ОС Windows. Если в процессе работы с базой данных были созданы две таблицы, например, аЬс и ABC, то после переноса базы данных в среду ОС Windows они будут неразличимы. Как этого избежать? Достаточно выработать для себя
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |