РНР программирование

 

                               Главная       Программа телепередач, энциклопедии и многие другие справочные материалы

 

              стр. 1. 2. 3. 4. 5. 6.

Первичные ключи.

 

Первичный ключ (primary key) представляет собой один из примеров уникальных индексов и применяется для уникальной идентификации записей таблицы. Никакие из двух записей таблицы не могут иметь одинаковых значений первичного ключа. Первичный ключ обычно сокращенно обозначают как PK (primary key).

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

К примеру, в базе данных Forum таблицы themes и posts связаны между собой следующим образом:

Первичным ключом таблицы themes является id_theme, а таблицы posts - id_post. Обратите внимание, что поле id_theme присутствует и в таблице posts. Каждое значение этого поля в таблице posts является внешним ключом (в данном случае это внешний ключ для первичного ключа таблицы themes). Внешний ключ сокращенно обозначают как FK (foreign key).Как видно из рис.1, внешний ключ ссылается на первичный ключ таблицы themes, устанавливая однозначную логическую связь между записями таблиц themes и posts. Иначе говоря, если внешний ключ для записи (сообщения) с PK=1 в таблице posts имеет значение внешнего ключа равное 1, то это значит, что это сообщение относится к теме с PK=1 таблицы themes.

Способы задания первичного ключа

 

По способу задания первичных ключей различают логические (естественные) ключи и суррогатные (искусственные).

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

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

Совет:

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

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

Работа с сервером MySQL

 

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

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

  shell> mysql -h host -u user -p

После этого на экране появится запрос Enter password:, и вам нужно будет ввести свой пароль. Если соединение прошло нормально, то на экране появляется следующая информация и метка командной строки mysql>:

  Welcome to the MySQL monitor. Commands end with ; or \g.
  Your MySQL connection id is 459 to server version: 
  Type 'help' for help.
  mysql>

Появление метки mysql> означает, что программа mysql готова к работе.

Отсоединиться от сервера можно в любой момент, набрав команду QUIT:

  mysql> QUIT
  Bye

Кроме этого, разорвать соединение с сервером можно также, одновременно нажав клавиши +.

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

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

Ниже приведена простая команда, запрашивающая у сервера информацию об его версии и текущей дате:

  mysql> SELECT VERSION(), CURRENT_DATE;

Ответом MySQL на этот запрос будет следующая таблица:

  +--------------+--------------------+
  | version() | current_date |
  +--------------+--------------------+
  1 row in set (0.02 sec)

На примере выполнения этого запроса можно увидеть следующие основные особенности работы с MySQL:

·                     Команда, посылаемая серверу, обычно состоит из SQL-выражения, за которым следует точка с запятой. Из этого правила есть несколько исключений, когда после команды точка с запятой не ставится, к примеру, уже упомянутая команда QUIT;

·                     MySQL выводит результаты запроса в виде таблицы;

·                     После вывода таблицы с результатами запроса, mysql сообщает количество возвращаемых строк и время выполнения запроса. Это удобно, поскольку позволяет оценить как производительность сервера, так и эффективность выполняемого запроса;

·                     После вывода результатов запроса и времени его выполнения, mysql выводит новую строку mysql>, что означает готовность к выполнению новых команд.

Заметим, что команды MySQL не чувствительны к регистру, поэтому приведенные ниже запросы абсолютно идентичны:

  mysql> select version(), current_date;
  mysql> SELECT VERSION(), CURRENT_DATE;
  mysql> Select Version(), Сurrent_DATE;

MySQL позволяет на одной строчке разместить несколько команд, но каждая из них должна заканчиваться точкой с запятой. К примеру:

  mysql> SELECT VERSION(); SELECT NOW();

На такой запрос мы получим следующий результат:

  |  version() |
  | 4.0.13-nt |
    1 row in set (0.00 sec)
  
  | NOW()                        |
  
  | 2004-01-25 16:57:00 |
  
  1 row in set (0.03 sec)

Однако помещать все команды на одной строке совершенно необязательно:

  mysql> SELECT USER(),
      -> CURRENT_DATE;

И вот результат:

     
user()
 current_date 
   ODBC@localhost
2004-01-25
  
 
    1 row in set (0.00 sec)

Заметьте, что после того, как мы перешли на новую строку, метка командной строки изменилась с mysql> на ->. Таким образом mysql показывает, что завершенного запроса не получено и она ожидает конца запроса. Эта метка весьма полезна, так как позволяет избежать некоторых ошибок. К примеру, если вы забудете поставить точку с запятой в конце запроса, mysql сообщит вам об этом, выведя метку ->:

  mysql> select user()

                                                                            

 

1. Что такое PHP?

1. 1. Применение РНР при программировании сайтов

1.2. Программа регистрации и авторизации на вашем сайте

1.3. Программа регистрации и авторизации на сайте с шифрованием пароля

2. Глава посвящена программированию
вообще и программированию в частности
сайтов

3. MySQL элементы управления и взаимодействие с PHP

4. Русский перевод файла "httpd.conf" Для Apache 2.0

5. Русский перевод файла "php.ini"

 

главная                                                                                                                                                              стр. 1. 2. 3. 4. 5. 6.