Анализ баз данных и таблиц с помощью команд SHOW

Для получения информации о структуре базы данных, её таблицах и столбцах таблиц рассмотрим самые популярные инструкции SHOW. Команда mysqlshow, вводимая в командную строку, выполняет ту же функцию, что и некоторые варианты инструкции SHOW, однако она не требует запуска монитора. Инструкция SHOW DATABASES перечисляет базы данных, к которым имеется доступ.

Для того чтобы отобразить инструкцию языка SQL, которая необходима для создания базы данных, следует воспользоваться инструкцией SHOW CREATE DATABASE. Синтаксис этой инструкции следующий:

SHOW CREATE DATABASE имя базы данных;

Инструкция SHOW TABLES перечисляет таблицы в базе данных. Синтаксис этой инструкции следующий:

SHOW TABLES FROM имя базы данных;

Если до неё выполнялась инструкция USE имя базы данных (означает, что необходимо использовать базу данных с указанным именем), то имя базы данных в конструкции SHOW TABLES можно не использовать и команда будет иметь вид:

SHOW TABLES;

Инструкция SHOW COLUMNS перечисляет столбцы в указанной таблице. Для её выполнения необходимо один раз выбрать конкретную базу данных с помощью инструкции USE имя базы данных. Синтаксис инструкции следующий:

SHOW COLUMNS FROM имя таблицы;

С помощью инструкции SHOW CREATE TABLE можно посмотреть инструкцию SQL для создания отдельной таблицы. Синтаксис данной инструкции следующий:

SHOW CREATE TABLE имя таблицы;

Выбор информации из таблиц баз данных. Оператор SELECT

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

В общем случае команда SELECT начинается с ключевого слова SELECT, сопровождаемого пробелом. После этого должен следовать список имен столбцов, отделяемые запятыми. Если необходимо видеть все столбцы таблицы, то можно заменить этот список звездочкой (*). Ключевое слово FROM следующее далее, сопровождается пробелом и именем таблицы, к которой делается запрос. В заключение точка с запятой (;) должна использоваться, чтобы закончить запрос и указать, что команда готова к выполнению.

Команда SELECT способна извлечь строго определенную информацию из таблицы. Сначала следует предоставить возможность увидеть только определенные столбцы таблицы. Это выполняется легко, простым исключением столбцов, которые не хотите видеть, из части команды SELECT. Например, запрос 34

SELECT prestupnik_name, prestupnik_god_rozhdeniya FROM prestupnik; будет производить вывод информации из столбцов с именами «prestupnik_name» и «prestupnik_god_rozhdeniya» из таблицы с именем «prestupnik» показанный на рис. 3.1.

mysql> SELECT prestupnik_name.

prestupnik_god_rozhdeniy FROM prestupnik;

! prestupnik_name 1

1 prestupnik_god_rozhdeniy !

! Andreev Sergey Ruslanovich 1

1 1959 !

! Kravchenko Petr Ivanovich 1

1 1981 i

? Ivashkin Ivan Kuzmich 1

1 1964 !

1 Petrikin Uasiliy Sergeevich 1

1 1957 !

! Anisimov Uitaliy Abramovich 1

1 1972 !

? Govorov Ivan Ivanovich 1

1 1968 i

! Getrov Ivan Gennadievich 1

1 1973 !

? Kabenov Gamshut Petrovich 1

1 1983 !

! Petrov Ivan Sidorovich 1

1 1969 !

! Belov Aleksandr Petrovich 1

1 1977 !

! Azizov Baden Pigorevich 1

1 1981 !

! Kopica Ivan Petrovich 1

1 1966 :

! Balashov Semen Pavlovich 1

1 1987 !

! Petlyakov Maksim Ivanovich 1

1 1977 !

! Makeev Gennadiy Petrovich

1 1985 i

? >_____________________________-___________________________?

? 1

? ?

15 rows in set <0.00 sec>

Рис. 3.1. Выбор определенных столбцов

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

Переупорядочивание столбца. Даже если столбцы таблицы, по определению, упорядочены, это не означает, что их и восстанавливать их в том же порядке. Конечно, звездочка (*) покажет все столбцы в их естественном порядке, но если указать столбцы отдельно, то можно получить их в том порядке, котором хотим. Рассмотрим таблицу prestuplenie:

SELECT * FROM prestuplenie.

Данный запрос выводит список всех столбцов таблицы prestuplenie в порядке установленном при создании таблицы. Результат этого запроса показан на рис. 3.2.

iysql> SELECT

* FROM prestuplenie;

?

?

| gruppirouka.id ! prestupnik.id ! prestuplenie_id ! prestuplenie.name

! prestuplenie.srok ' data.osuobozhdeniya и

11

11

1 1 Razboynoe napodenie

3.00 1 2001-11-26

1

11

11

2 1 Razhoy

4.00 1 2005-10-21

1

11

2 1

1 1 Ubiystuo

10.00 1 1999-01-15

1

11

3 1

1 1 Ograblenie nagazina

5.00 1 2002-04-19

1

11

4 1

1 1 Hosbennicbestvo

3.00 1 1986-06-09

1

i:

4 1

2 1 Razboynoe napadenie

4.00 1 1992-05-12

1

11

4 1

3 1 Kuartirnaya krazha

6.00 1 1998-08-1?

1

i:

4 1

4 1 Ubiystuo

12.00 1 2011-04-03

1

2 1

1 1

1 1 Uooruzhennoe napadenie na sotrudnika policii

9.00 1 2004-02-18

1

2:

2 1

1 1 Kuartirnaya krazha

5.00 1 2001-10-24

1

2 1

2 1

2 1 Razboynoe napadenie

4.00 1 2008-03-1?

1

3 1

1 1

1 1 Ugon autonobilya

4.00 1 1998-06-28

1

3 1

1 1

2 1 Ugon autonobilya

6.00 1 2004-09-29

1

3 1

2 1

1 1 Skupka ugnannih autonobileq

3.00 1 2008-11-1?

1

3 1

3 1

1 1 legalizaciya ugnannih autonobiley

4.00 1 2009-11-17

1

4 1

1 1

1 1 Hoshennichestuo

2.00 1 1989-02-27

1

4 1

1 1

2 1 Reyderstuo

4.00 1 1995-04-23

1

4 1

1 1

3 1 Ograblenie banka

8.00 1 2010-06-12

1

4 1

2 1

1 1 Hoshennichestuo

2.00 1 2001-01-23

1

4 1

2 1

2 1 Ograblenie banka

6.00 1 2008-06-12

1

s:

1 1

1 1 Ubiystuo

7.00 1 2009-10-18

1

S 1

2 1

1 1 Ubiystuo

8.00 1 1992-10-23

1

5:

2 1

2 1 Ubiystuo 2 i bo lee lie

15.00 1 2011-04-30

1

s:

1 1

1 1 Razboynoe napadenie

4.00 1 2003-07-11

1

61

1 1

2 1 Iznosiliuanie

7.00 1 2011-11-12

1

s i

2 1

1 1 Kuartirnaya krazha

4.00 1 1999-01-07

1

61

2 1

2 1 Razboynoe napadenie

5.00 1 2004-07-11

1

61

2 1

3 1 Hoshennichestuo

4.00 1 2009-12-18

1

?

?

?

?

?

?

к8 rows in set (0.00 sec)

Рис. 3.2. Таблица prestuplenie

Теперь выведем столбцы в другом порядке, например, prestuplenie_name, prestuplenie_id (рис. 3.3):

SELECT prestuplenie_name, prestuplenie_id FROM prestuplenie;

! prestuplenie_name 1

1 prestuplenie_id

! Razboynoe napodenie 1

! Razboy 1

! Ubiystuo 1

! Ograblenie magazina 1

! Moshennichestuo 1

! Razboynoe napadenie

! Kuartirnaya krazha

! Ubiystuo

! Uooruzhennoe napadenie na sotrudnika policii

! Kuartirnaya krazha

! Razboynoe napadenie

! Ugon automobilya

! Ugon automobilya

! Skupka ugnannih automobileq

! legalizaciya ugnannih automobiley

! Moshennichestuo

! Reyderstuo

! Ograblenie banka

! Moshennichestuo

! Ograblenie banka

! Ubiystuo

! Ubiystuo

! Ubiystuo 2 i bolee lie

! Razboynoe napadenie

I Iznosiliuanie

! Kuartirnaya krazha

! Razboynoe napadenie

! Moshennichestuo

1 1

! 2

  • 1 1
  • 1 1
  • 1 1
  • 1 2
  • 1 3
  • 1 4
  • 1 1
  • 1 1
  • 1 2
  • 1 1
  • 1 2
  • 1 1
  • 1 1
  • 1 1
  • 1 2
  • 1 3
  • 1 1

! 2

  • 1 1
  • 1 1
  • 1 2
  • 1 1

: 2

: i

! 2

! 3

28 rows in set <0.00 sec)

Рис. 3.3. Реконструкция столбцов

Структура информации в таблицах - это просто основа для активной перестройки структуры в SQL.

Контрольные вопросы

  • 1. Назначение языка SQL.
  • 2. Из каких частей состоит язык SQL?
  • 3. Какие операторы входят в состав языка манипулирования данными?
  • 4. Какие операторы входят в состав языка определения данных?
  • 5. Какие операторы входят в состав языка управления данными?
  • 6. Какой запрос выводит список баз данных на сервере СУБД MySQL?
  • 7. Какой запрос выводит список таблиц произвольной базы данных?
  • 8. Какой запрос выводит список полей произвольной базы данных?
  • 9. Каково назначение оператора SELECT?
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >