MYSQL базовое описание

Обсуждаем сайт и форум.

Модератор: f0s

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-10 18:33:40

Появилась мысль сделать описание/заметки по MYSQL(т.к. на сайте этого еще нет, а хотелось бы :smile: )что-то вроде статьи,
т.к. на документацию не потянет, да и полно книг на эту тему. Может есть желающие подсобить, дополнить , поправить.
Пишите плз кому интересно тут, в приват либо в асю кому как нравиться.
То что у меня получилось выкладываю ниже. Там пока не хватает базового описания как с Юзерами БД работать, пару примерчиков из шела, ПэХэПэ+SQL,возможно какихто еще SQL-запросов и краткого описания вот этого. буду рад любой помощи.

Код: Выделить всё

ll /usr/local/bin/ | grep mysq
-r-xr-xr-x  1 root  wheel   100392 29 апр 15:45 mysql
-r-xr-xr-x  1 root  wheel     6109 29 апр 15:44 mysql_config
-r-xr-xr-x  1 root  wheel     5864 29 апр 15:44 mysql_fix_privilege_tables
-r-xr-xr-x  1 root  wheel    13626 29 апр 16:29 mysql_install_db
-r-xr-xr-x  1 root  wheel   276564 29 апр 16:29 mysql_tzinfo_to_sql
-r-xr-xr-x  1 root  wheel    56636 29 апр 15:45 mysql_upgrade
-r-xr-xr-x  1 root  wheel   125104 29 апр 16:29 mysql_waitpid
-r-xr-xr-x  1 root  wheel    25112 29 апр 15:45 mysqladmin
-r-xr-xr-x  1 root  wheel    98804 29 апр 15:45 mysqlbinlog
-r-xr-xr-x  1 root  wheel    11837 29 апр 15:44 mysqlbug
-r-xr-xr-x  1 root  wheel    20504 29 апр 15:45 mysqlcheck
-r-xr-xr-x  1 root  wheel    16154 29 апр 16:29 mysqld_safe
-r-xr-xr-x  1 root  wheel    85728 29 апр 15:45 mysqldump
-r-xr-xr-x  1 root  wheel    20776 29 апр 15:45 mysqlimport
-r-xr-xr-x  1 root  wheel    19856 29 апр 15:45 mysqlshow
-r-xr-xr-x  1 root  wheel    33880 29 апр 15:45 mysqlslap
-r-xr-xr-x  1 root  wheel   147104 29 апр 15:45 mysqltest
сам материал
========================================================================
SQL это стандартный язык для доступа к базам данных и их управления.

SQL может: выполнять запросы к базе данных
извлекать данные из базы данных
добавить записи в базу данных
обновить записи в базе данных
удалить записи из базы данных
создавать новые базы данных
создавать новые таблицы в базе данных
создавать хранимые процедуры в базе данных
настроить разрешения для таблиц

table_name - имя таблицы
column_name - колонки(поля) вообщем те столбики которые вертикальные ;-)
value - значения
pattern - шаблон
database_name - имя базы данных (БД)

SQL является стандартным - но ...
Несмотря на то что SQL придерживаеться ANSI (Американского национального института стандартов)
стандарта, Есть много различных версий SQL языка. Вместе с тем, чтобы быть
совместимым со стандартом ANSI, все они поддерживают, по крайней мере, основные
команды (например, SELECT, UPDATE, DELETE, INSERT, WHERE). Большинство из SQL баз
данных имеют свои собственные расширения(функций, команд...) в дополнение к SQL стандарту!
В данном описании я буду рассматривать язык SQL в разрезе MySQL.
Чаще всего база данных содержит одну или несколько таблиц ;-). Каждая таблица
имеет определенное имя (например, "people" или "cars"). Таблицы содержат
поля (строки) с данными. Сейчас забежим немного наперед, тоесть создадим
сразу БД, табличку и заполним её. Т.к. я не знал каким образом лучше построить
материал, решил что лучший вариант это наглядный, тоесть писать в
примерах опираясь на тестовую БД.

Ниже создаем БД(mytest),и в ней таблицу под названием "people":

Код: Выделить всё

mysql> create database mytest;
Query OK, 1 row affected (0.00 sec)

mysql> use mytest;
Database changed
mysql> CREATE TABLE people(id int,Name varchar(255),LastName varchar(255
    -> addr varchar(255), telnumb int,birthdaydate date);
Query OK, 0 rows affected (0.03 sec)

mysql> show fields from people;
+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| id            | int(11)      | YES  |     | NULL    |       |
| Name          | varchar(255) | YES  |     | NULL    |       |
| LastName      | varchar(255) | YES  |     | NULL    |       |
| addr          | varchar(255) | YES  |     | NULL    |       |
| telnumb       | int(11)      | YES  |     | NULL    |       |
| birhthdaydate | date         | YES  |     | NULL    |       |
+---------------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> insert into people(id,Name,LastName,addr,telnumb,birthdaydate) values (1,'Vasia','Pupkin','selo Slavne','452','1922-10-23');
Query OK, 1 row affected, 1 warning (0.00 sec)
........
mysql> select * from people;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)

mysql>
Таблица содержит 4 записи и 6 колонок (id,Name, Lastname,addr,telnumb,birthdaydate).

Практически все действия в базе данных осуществляется с помощью SQL запросов.
Например следующий SQL запрос выведет все записи из таблицы "peolple" :

SELECT * from people;
(Для SQLя не важен регистр символов, заглавные, прописные, все равны
(SELECT и select - одно и тоже), также важно помнить что MySQL
требует чтобы каждый запрос заканчивался символом ";")

Для более легкого запоминания и понимания можно запросы разделить на
3 типа: управление данными(УД), и определение(вид) данных(по другому
не придумал как грамотнее выразиться - ОД).И еще пожалуй системные запросы(СЗ)
К УД можно отнести:
SELECT - извлечение(выборка) данных из БД
UPDATE - обновление данных в БД
DELETE - удаление данных из БД
INSERT INTO - вставка(заполнение) новыми данными БД
к ОД:
CREATE DATABASE - создать новую БД
CREATE TABLE - создать новую таблицу
ALTER TABLE - изменить таблицу
DROP TABLE - удалить таблицу
CREATE INDEX - создать индекс (поисковый ключ)
к СЗ:
show processlist - показать процессы БД
нада дописать сюда остальное........

-----------
SELECT - используеться для того чтобы делать выборки из БД
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name;
column_names - если необходимо выбрать несколько полей,
они должны указываться через запятую, например

Код: Выделить всё

mysql> SELECT Name, LastName from people;
+-------+-----------+
| Name  | LastName  |
+-------+-----------+
| Vasia | Pupkin    |
| Petia | Zatochkin |
| Semen | Krivoy    |
| Masha | Zolotaya  |
+-------+-----------+
4 rows in set (0.00 sec)

mysql>
* - всё
SELECT * from people;
выведет всё(все поля) что есть в таблице people;

Иногда в таблице, некоторые из колонок могут содержать повторяющиеся значения.
Это не проблема, т.к. всегда можно сделать выборку лишь тех значений
который разняться между собой(не дублируються). Ключевое слово DISTINCT может быть использовано для этих целей.
синтаксис:

Код: Выделить всё

SELECT DISTINCT column_name(s) FROM table_name;
например:

Код: Выделить всё

mysql> SELECT DISTINCT addr FROM people;
+-------------+
| addr        |
+-------------+
| selo Slavne |
| g.Zhitomir  |
| pgt. Pobeda |
+-------------+
3 rows in set (0.00 sec)
--------
WHERE - используется для получения только тех записей, которые соответствуют
определенному критерию.
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name WHERE column_name=value;

Код: Выделить всё

mysql> SELECT * FROM people WHERE Name='Vasia';
+------+-------+----------+-------------+---------+--------------+
| id   | Name  | LastName | addr        | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
|    1 | Vasia | Pupkin   | selo Slavne |     452 | 1922-10-23   |
+------+-------+----------+-------------+---------+--------------+
1 row in set (0.00 sec)

mysql>
Здесь также могут использоваться операторы:
= равно
<> не равно
> больше
< меньше
>= больше либо равно
<= меньше либо равно
...
здесь еще много чего может быть... см. оффиц сайт либо любую книгу по MySQL

-----------------
Операторы AND & OR
Оператор AND отображает данные если выполняются оба условия.
Оператор OR отображает данные если выполняеться хотябы одно условие.

Код: Выделить всё

mysql> SELECT * FROM people WHERE Name='Vasia' AND LastName='Pupkin';
+------+-------+----------+-------------+---------+--------------+
| id   | Name  | LastName | addr        | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
|    1 | Vasia | Pupkin   | selo Slavne |     452 | 1922-10-23   |
+------+-------+----------+-------------+---------+--------------+
1 row in set (0.01 sec)

mysql>

Код: Выделить всё

mysql> SELECT * FROM people WHERE Name='Semen' OR LastName='Zolotaya';
+------+-------+----------+-------------+---------+--------------+
| id   | Name  | LastName | addr        | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
|    3 | Semen | Krivoy   | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+----------+-------------+---------+--------------+
2 rows in set (0.00 sec)

mysql>
Смешивание AND & OR

Код: Выделить всё

mysql> SELECT * FROM people WHERE Name='Petia' AND (LastName='Zatochkin' OR
    ->
    -> LastName='Krivoy');
+------+-------+-----------+------------+---------+--------------+
| id   | Name  | LastName  | addr       | telnumb | birthdaydate |
+------+-------+-----------+------------+---------+--------------+
|    2 | Petia | Zatochkin | g.Zhitomir |      23 | 1995-04-12   |
+------+-------+-----------+------------+---------+--------------+
1 row in set (0.01 sec)

mysql>
------------------
ORDER BY - оператор сортировки, используется для сортировки результатов,
установленных указанной колонки.ORDER BY по умолчанию сортирует
записи в возрастающем порядке.(ASC)
Если вы хотите сортировать записи в (обратном)порядке убывания,
вы можете использовать ключевое слово DESC.
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC 

Код: Выделить всё

mysql> SELECT * FROM people ORDER BY Name;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.01 sec)
в обратном порядке

Код: Выделить всё

mysql> SELECT * FROM people ORDER BY Name DESC;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)
----------------
LIMIT - используеться для вывода определенной группы(кол-ва) данных
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name LIMIT a,b;
a - число , с какой позиции выдавать данные
b - кол-во выводимых строк

Код: Выделить всё

mysql> SELECT * from people LIMIT 1,3;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+-----------+-------------+---------+--------------+
3 rows in set (0.00 sec)
-----------------
LIKE - этот оператор используеться для поиска данных в полях по шаблону.
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

Код: Выделить всё

mysql> SELECT * from people WHERE Name LIKE '%em%';
+------+-------+----------+-------------+---------+--------------+
| id   | Name  | LastName | addr        | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
|    3 | Semen | Krivoy   | pgt. Pobeda |     231 | 1992-02-11   |
+------+-------+----------+-------------+---------+--------------+
1 row in set (0.01 sec)

mysql> SELECT * from people WHERE telnumb LIKE '2%';
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
+------+-------+-----------+-------------+---------+--------------+
2 rows in set (0.01 sec)

mysql>
----------------
IN - позваляет задавать несколько значений в поиск
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,..)

Код: Выделить всё

mysql> SELECT * from people WHERE LastName IN('Krivoy','Zolotaya');
+------+-------+----------+-------------+---------+--------------+
| id   | Name  | LastName | addr        | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
|    3 | Semen | Krivoy   | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha | Zolotaya | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+----------+-------------+---------+--------------+
2 rows in set (0.00 sec)
------------------
BETWEEN - оператор с помощью которго можно вывести диапазон данных
который ограниченный двумя значениями полей.
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;

Код: Выделить всё

mysql> select * from people where id between 1 and 3;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
+------+-------+-----------+-------------+---------+--------------+
3 rows in set (0.00 sec)
--------------
JOIN, AS - пока что нет описания, примера.
--------------



Еще одна таблица cars в тойже БД mytest

Код: Выделить всё

+------+----------------+-----------+
| C_id | Cmodel         | GosNumber |
+------+----------------+-----------+
|    1 | GAZ            |      2211 |
|    2 | Zaporogets     |      4521 |
|    3 | Volga-supercar |      7711 |
+------+----------------+-----------+

Код: Выделить всё

mysql> create table cars(C_id int, Cmodel varchar(255), GosNumber int);
Query OK, 0 rows affected (0.01 sec)

mysql> show columns from cars;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| C_id      | int(11)      | YES  |     | NULL    |       |
| Cmodel    | varchar(255) | YES  |     | NULL    |       |
| GosNumber | int(11)      | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into cars values(1,'GAZ','2211'),(2,'Zaporogets','4521'),(3,'Volga-supercar','7711');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> select * from cars;
+------+----------------+-----------+
| C_id | Cmodel         | GosNumber |
+------+----------------+-----------+
|    1 | GAZ            |      2211 |
|    2 | Zaporogets     |      4521 |
|    3 | Volga-supercar |      7711 |
+------+----------------+-----------+
3 rows in set (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| cars             |
| people           |
+------------------+
2 rows in set (0.00 sec)

mysql>
--------
JOIN - используется для запроса(вывода) данных из двух или более таблиц.

Код: Выделить всё

mysql> SELECT * from cars join people;
+------+----------------+-----------+------+-------+-----------+-------------+---------+--------------+
| C_id | Cmodel         | GosNumber | id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+----------------+-----------+------+-------+-----------+-------------+---------+--------------+
|    1 | GAZ            |      2211 |    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    2 | Zaporogets     |      4521 |    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    3 | Volga-supercar |      7711 |    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    1 | GAZ            |      2211 |    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    2 | Zaporogets     |      4521 |    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Volga-supercar |      7711 |    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    1 | GAZ            |      2211 |    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    2 | Zaporogets     |      4521 |    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    3 | Volga-supercar |      7711 |    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    1 | GAZ            |      2211 |    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
|    2 | Zaporogets     |      4521 |    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
|    3 | Volga-supercar |      7711 |    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+----------------+-----------+------+-------+-----------+-------------+---------+--------------+
12 rows in set (0.00 sec)
-----------
UNION - оператор сочетает вывод двух и более SELECT операторов.
примечание: каждый запрос SELECT в сочетании с UNION должны иметь одинаковое число столбцов. Колонки также должны иметь аналогичные типы данных.
синтаксис:

Код: Выделить всё

SELECT column_name(s) FROM table_name1 UNION
SELECT column_name(s) FROM table_name2;
делаем доп таблицу cars2

Код: Выделить всё

+------+-----------+--------+
| id   | model     | number |
+------+-----------+--------+
|    1 | Mers      |   3411 |
|    2 | BMW       |   3317 |
|    3 | Velosiped |   3456 |
+------+-----------+--------+

Код: Выделить всё

mysql> SELECT * from cars UNION SELECT * FROM cars2;
+------+----------------+-----------+
| C_id | Cmodel         | GosNumber |
+------+----------------+-----------+
|    1 | GAZ            |      2211 |
|    2 | Zaporogets     |      4521 |
|    3 | Volga-supercar |      7711 |
|    1 | Mers           |      3411 |
|    2 | BMW            |      3317 |
|    3 | Velosiped      |      3456 |
+------+----------------+-----------+
6 rows in set (0.00 sec)

=======================================================================
CREATE DATABASE - создает базу данных
синтаксис:

Код: Выделить всё

CREATE DATABASE database_name;

------
CREATE TABLE - для создания таблиц в БД
синтаксис:

Код: Выделить всё

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
);
где table_name - имя таблицы, column_name1 - имя столбца,
data_type - тип данных для этого солбца;
Какие типы данных могут быть в MySQL описано в разделе "Типы данных"
пример создания таблицы cars:

Код: Выделить всё

CREATE TABLE cars(C_id int,CModel varchar(255),Gos_Number int);
Создание таблицы people:

Код: Выделить всё

CREATE TABLE people(id int,Name varchar(255),LastName varchar(255),
addr varchar(255), telnumb int,birhthdaydate date);
понятно что таблицы будут пустые , и их предстоит заполнить.

------------
CREATE INDEX
Индекс может быть создан для таблицы,это даст возможность более быстро и эффективно работать.
Пользователю индекс не виден, он просто используется для ускорения поисков / запросов.
Примечание: Обновление таблицы с индексами занимает больше времени,
чем обновление таблицы без (поскольку индексы также нуждаются в обновлении).
Таким образом, индексы стоит создавать только на столбцы (таблицы), по которым будет часто производиться поиск и запросы.
синтаксис:

Код: Выделить всё

CREATE INDEX index_name ON table_name (column_name,column_name2,..);

Код: Выделить всё

mysql> create index indx on people (Name);
Query OK, 4 rows affected (0.02 sec)
Records: 4  Duplicates: 0  Warnings: 0
до

Код: Выделить всё

mysql> show columns from people;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id           | int(11)      | YES  |     | NULL    |       |
| Name         | varchar(255) | YES  |     | NULL    |       |
| LastName     | varchar(255) | YES  |     | NULL    |       |
| addr         | varchar(255) | YES  |     | NULL    |       |
| telnumb      | int(11)      | YES  |     | NULL    |       |
| birthdaydate | date         | YES  |     | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
после

Код: Выделить всё

mysql> show columns from people;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id           | int(11)      | YES  |     | NULL    |       |
| Name         | varchar(255) | YES  | MUL | NULL    |       |
| LastName     | varchar(255) | YES  |     | NULL    |       |
| addr         | varchar(255) | YES  |     | NULL    |       |
| telnumb      | int(11)      | YES  |     | NULL    |       |
| birthdaydate | date         | YES  |     | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
Для создания уникального индекса по таблице. Повторяющиеся значения не допускаются, необходимо:

Код: Выделить всё

CREATE UNIQUE INDEX index_name ON table_name (column_name);
----------
DROP INDEX
удаления индекса
синтаксис:
DROP INDEX index_name;
Эта команда ничего не делает. Чтобы удалить индекс, Вы должны использовать команду ALTER TABLE.

Код: Выделить всё

ALTER TABLE table_name DROP INDEX index_name;
---------
DROP TABLE - удаляет табличку.
синтаксис:

Код: Выделить всё

DROP TABLE table_name;
----------
DROP DATABASE - удаляет БД
синтаксис:

Код: Выделить всё

DROP DATABASE database_name;
----------
ALTER TABLE - используется для добавления, удаления или изменения
данных в существующих таблицах.Для того чтобы добавить(ADD)
колонку в таблицу необходимо выполнить следующее:
синтаксис:
'Добавить'

Код: Выделить всё

ALTER TABLE table_name ADD column_name datatype;
По умолчанию новый столбец вставляется в конец таблицы.

Код: Выделить всё

mysql> alter table people add country varchar(255);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from people;
+------+-------+-----------+-------------+---------+--------------+---------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate | country |
+------+-------+-----------+-------------+---------+--------------+---------+
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   | NULL    |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   | NULL    |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   | NULL    |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   | NULL    |
+------+-------+-----------+-------------+---------+--------------+---------+
4 rows in set (0.00 sec)

mysql>
Если необходимо, чтобы столбец встал в начало таблицы,
нужно после параметров вставляемого столбца написать ключевое слово FIRST:

Код: Выделить всё

ALTER TABLE table_name ADD column_name datatype FIRST;

Код: Выделить всё

mysql> alter table people add country varchar(255) FIRST;
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from people;
+---------+------+-------+-----------+-------------+---------+--------------+
| country | id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+---------+------+-------+-----------+-------------+---------+--------------+
| NULL    |    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
| NULL    |    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
| NULL    |    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
| NULL    |    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+---------+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.01 sec)

mysql>
Если необходимо, чтобы столбец был вставлен не в начале таблицы,
и не в конце, а после определенного столбца, то нужно применить
ключевое слово AFTER 'имя столбца', после которого будет установлен
новый столбец:

Код: Выделить всё

ALTER TABLE table_name ADD column_name datatype AFTER column_name2;
добавит колонку column_name следом за колонкой column_name2

Код: Выделить всё

mysql> alter table people add country varchar(255) after id;
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from people;
+------+---------+-------+-----------+-------------+---------+--------------+
| id   | country | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+---------+-------+-----------+-------------+---------+--------------+
|    1 | NULL    | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    2 | NULL    | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | NULL    | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | NULL    | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+---------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)

mysql>
Если нужно дописать к таблице не один, а несколько столбцов,
то для каждого столбца нужно ADD column_name datatype записать через запятую:

Код: Выделить всё

ALTER TABLE table_name ADD column_name datatype,
ADD column_name2 datatype, ADD column_name3 datatype;

Код: Выделить всё

mysql> alter table people add country varchar(255), add state varchar(255);
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from people;
+------+-------+-----------+-------------+---------+--------------+---------+-------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate | country | state |
+------+-------+-----------+-------------+---------+--------------+---------+-------+
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   | NULL    | NULL  |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   | NULL    | NULL  |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   | NULL    | NULL  |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   | NULL    | NULL  |
+------+-------+-----------+-------------+---------+--------------+---------+-------+
4 rows in set (0.00 sec)

CHANGE - Изменить параметр:
синтаксис:

Код: Выделить всё

ALTER TABLE table_name CHANGE column_name_old column_name_new parametrs;
где
table_name - имя таблицы, в которой находится изменяемый столбец;
column_name_old - имя столбца изменяемого столбца;
column_name_new - новое имя изменяемого столбца (должно равняться column_name_old,
если мы не хотим поменять имя столбца);
parametrs - новые параметры столбца.

Код: Выделить всё

mysql> alter table people CHANGE LastName Familia varchar(255);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select * from people;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | Familia   | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    1 | Vasia | Pupkin    | selo Slavne |     452 | 1922-10-23   |
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+-----------+-------------+---------+--------------+
4 rows in set (0.01 sec)

mysql>
DROP - Для удаления колонки:
синтаксис:

Код: Выделить всё

ALTER TABLE table_name DROP column_name;
если необходимо удалить несколько колонок из таблицы - указывыаем все через
запятую.
-----------------------
INSERT - вставка(заполнение) данных в полях таблицы
синтаксис:

Код: Выделить всё

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);
columnN - названия полей в таблице table_name
valueN - значения полей, т.е. содержимое, те данные которые будут в поле

------
UPDATE - используется для обновления существующих записей в таблице.
синтаксис:

Код: Выделить всё

UPDATE table_name SET column1=value, column2=value2,.. WHERE some_column=some_value;
работать с данной конструкцией надо внимательно т.к. например если указать обновление
значений полей без "доп фильтра" можно затереть данные которые вам на самом деле нет
нужды трогать.
Например:

Код: Выделить всё

UPDATE people SET Name='Vasia', LastName='Mikolich';
приведет таблицу к такому виду

Код: Выделить всё

mysql> update people set Name='Vasia', LastName='Mikolich';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> select * from people;
+------+-------+----------+-------------+---------+--------------+
| id   | Name  | LastName | addr        | telnumb | birthdaydate |
+------+-------+----------+-------------+---------+--------------+
|    1 | Vasia | Mikolich | selo Slavne |     452 | 1922-10-23   |
|    2 | Vasia | Mikolich | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Vasia | Mikolich | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Vasia | Mikolich | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+----------+-------------+---------+--------------+
4 rows in set (0.01 sec)
т.е. если необходимо обновить только поле где id=1
то нужно писать так:

Код: Выделить всё

mysql> UPDATE people SET Name='Mikola', LastName='Mikolich' WHERE id='1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from people;
+------+--------+-----------+-------------+---------+--------------+
| id   | Name   | LastName  | addr        | telnumb | birthdaydate |
+------+--------+-----------+-------------+---------+--------------+
|    1 | Mikola | Mikolich  | selo Slavne |     452 | 1922-10-23   |
|    2 | Petia  | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen  | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha  | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+--------+-----------+-------------+---------+--------------+
4 rows in set (0.00 sec)

mysql>
т.к. здесь присутствует WHERE соответсвенно можно комбинировать с AND & OR.
-------
DELETE - удаление записей
синтаксис:

Код: Выделить всё

DELETE FROM table_name WHERE some_column=some_value;

Код: Выделить всё

mysql> delete from people where id=1;
Query OK, 1 row affected (0.00 sec)

mysql> slect * from people;
ERROR 1064 (42000): You have an error in your SQL syntax; check the 
manual that corresponds to your MySQL server version for the right
syntax to use near 'slect * from people' at line 1
mysql> select * from people;
+------+-------+-----------+-------------+---------+--------------+
| id   | Name  | LastName  | addr        | telnumb | birthdaydate |
+------+-------+-----------+-------------+---------+--------------+
|    2 | Petia | Zatochkin | g.Zhitomir  |      23 | 1995-04-12   |
|    3 | Semen | Krivoy    | pgt. Pobeda |     231 | 1992-02-11   |
|    4 | Masha | Zolotaya  | selo Slavne | 5551232 | 1980-05-05   |
+------+-------+-----------+-------------+---------+--------------+
3 rows in set (0.00 sec)

mysql>
SHOW - используеться для отображения информации о полях, таблицах в БД;
самым популярным являеться
SHOW DATABASES - просмотрет какие есть базы в MySQL сервере
SHOW TABLES - показать таблицы Бд
SHOW FIELDS(COLUMNS) - показать информацию о том какие поля есть в таблице, каких они типов
пример - SHOW columns from people;
SHOW KEYS from table_name - вот так и переводиться -) отобразить ключи таблицы
вообщем можно посмотреть имя индекса например, и на какое поле он установлен.

=======================================
Функции ... какие-то опишу чтобы было базовое понятие за остальным на официал.
AVG() возвращает среднее значение

Код: Выделить всё

mysql> SELECT AVG(id) FROM people;
+---------+
| AVG(id) |
+---------+
|  2.5000 |
+---------+
1 row in set (0.00 sec)
COUNT() считает что прикажешь
SELECT COUNT(column_name) FROM table_name;
SELECT COUNT(*) FROM table_name;
думаю понятно что делает...
MAX() - возвращает максимальное значение
пример: SELECT MAX(column_name) FROM table_name;
MIN() - возвращает минимальное значение
пример: SELECT MIN(column_name) FROM table_name;
SUM() - функция суммирования
пример: SELECT SUM(column_name) FROM table_name;
UCASE() - ковертирует символы в верхний регистр
пример: SELECT UCASE(column_name) FROM table_name;

Код: Выделить всё

mysql> select ucase(Name) from people;
+-------------+
| ucase(Name) |
+-------------+
| MASHA       |
| PETIA       |
| SEMEN       |
| VASIA       |
+-------------+
4 rows in set (0.00 sec)
LCASE() - конвертирует символы в нижний регистр
пример: SELECT LCASE(column_name) FROM table_name;
и т.д.
====================
типы данных которые используються в таблице, при их создании (data_type)

Целые числа
TINYINT Может хранить числа от -128 до 127
SMALLINT Диапазон от -32 768 до 32 767
MEDIUMINT Диапазон от -8 388 608 до 8 388 607
INT Диапазон от -2 147 483 648 до 2 147 483 647
BIGINT Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Строки (символьные данные)
VARCHAR Может хранить не более 255 символов.
TINYTEXT Может хранить не более 255 символов.
TEXT Может хранить не более 65 535 символов.
MEDIUMTEXT Может хранить не более 16 777 215 символов.
LONGTEXT Может хранить не более 4 294 967 295 символов.

Дата и время
DATE Дата в формате ГГГГ-ММ-ДД
TIME Время в формате ЧЧ:ММ:СС
DATETIME Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP Дата и время в формате ГГГГММДДЧЧММСС

Бинарные данные
Бинарные данные - это почти то же самое, что и данные в формате TEXT,
но только при поиске в них учитывается регистр символов.

TINYBLOB Может хранить не более 255 символов.
BLOB Может хранить не более 65 535 символов.
MEDIUMBLOB Может хранить не более 16 777 215 символов.
LONGBLOB Может хранить не более 4 294 967 295 символов.
Дробные числа
FLOAT Число с плавающей точкой небольшой точности.
DOUBLE Число с плавающей точкой двойной точности.
REAL Синоним для DOUBLE.
DECIMAL Дробное число, хранящееся в виде строки.
NUMERIC Синоним для DECIMAL.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-10 18:34:45

вот...
нада как-то довести до ума и в более читаемом виде выложить на сайте

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: MYSQL базовое описание

Непрочитанное сообщение paradox » 2008-10-10 18:43:06

неспеши
вот прийдут знатоки lissyara & zg
и быстренько эту статью раскритикуют)))

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-10 18:53:43

ждёмс -)
ну в теме написано что это базовое описание
и задача не книгу переписать а сделать краткие заметки

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение dikens3 » 2008-10-10 20:50:37

Неосилил.... Книга получилась... :-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-10 21:01:43

значит нада главами, или заголовками оформлять, так наверно тяжело читать будет.
Вообще нада кому-то ? -)
Може со временем дополню если кто будет пинать что чего-то не хватает
ЗЫ: идея - описать как запросы составлять ну и +всякие фичи помелочам...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: MYSQL базовое описание

Непрочитанное сообщение paradox » 2008-10-10 21:09:46

))))
мну этому sql учили в универе 3 года
а Morty решил внушить это всем желающим в 3 строки

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение dikens3 » 2008-10-10 21:35:17

Нужно заикнуться про нормализованную форму, реляционную алгебру... :-)

Идея нормальная, главное чтобы ты сам это понимал, читателям может и пригодится, но лучше источников SQL, MYSQL, проектирование баз данных и т.п. не сделаешь.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-10 21:57:23

ну мое дело предложить -)
если народ хо ....могу еще потратить время и дописать остальное

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: MYSQL базовое описание

Непрочитанное сообщение paradox » 2008-10-10 22:01:45

сдесь вопрос в другом

я в ветку про SQL не заглядываю
но если такой контингент народа
которые прибегают с вопросами как сделать в mysql то или другое - есть
тогда статью надо
дабы просто отправлять их на нее
а не заниматься топтологией в каждой ветке

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-10 22:06:07

вообщем пускай эта статья побалтаеться тут до понедельника наверное,
посм что народ напишет, будет видно как дальше поступать.

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение manefesto » 2008-10-11 11:49:34

dikens3 писал(а):Неосилил.... Книга получилась... :-)
я тоже не смог, но готов проголосовать ЗА.
где тут голосовалка ?
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Alex Keda » 2008-10-11 19:08:59

всё ниасилил - тока по диагонали.
но - как мимнимум вики - достойно.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-11 20:14:34

могу на вики закинуть и дополнить со временем
нада только посм как там статью добавить :smile:

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-11 21:57:08

где в вики то место куда постить статью ?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Alex Keda » 2008-10-11 22:10:06

http://wiki.lissyara.su/wiki/
дописываешь в конце урл название статьи - оно предлагает создать такую =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-11 22:41:12

что-то не понравился мне вообще "редактор" в этом вики, редкостный ацтой
сам делает переносы как считает правильным,

Код: Выделить всё

 не понятно как делать,
т.е все одним черным сплошным цветом, подсветки синтакисиса нет вообще никакой
побить на страницы тоже не понял как... 
зы: может кончено это первое впечатление, но что-то не очень...  :bad: :bad:  :bad:

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Al » 2008-10-13 9:03:08

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

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-13 11:51:57

мне вариант - на сайт, тоже больше нравиться,
могу начать выкладывать в скрытом состоянии, линк просто сюда кину,
а потом когда будет готово можно - "открыть" статью

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Alex_hha » 2008-10-13 13:59:36

Внесу свои 5 копеек
SQL это стандартный язык для доступа к базам данных и их управления.
уж лучше написать SQL - язык структурированных запросов.
SQL может: выполнять запросы к базе данных
извлекать данные из базы данных
добавить записи в базу данных
обновить записи в базе данных
удалить записи из базы данных
создавать новые базы данных
создавать новые таблицы в базе данных
создавать хранимые процедуры в базе данных
настроить разрешения для таблиц
Логичнее разбить на DDL(Data Definition Language) / DML(Data Manipulation Language) / DCL (Data Control Language). А то никакой структуры
SQL является стандартным - но ...
Несмотря на то что SQL придерживаеться ANSI (Американского национального института стандартов)
стандарта, Есть много различных версий SQL языка.
принято называть диалекты
Вместе с тем, чтобы быть
совместимым со стандартом ANSI, все они поддерживают, по крайней мере, основные
команды (например, SELECT, UPDATE, DELETE, INSERT, WHERE). Большинство из SQL баз
данных имеют свои собственные расширения(функций, команд...) в дополнение к SQL стандарту!
нет SQL баз данных ;) Есть реляционные БД
В данном описании я буду рассматривать язык SQL в разрезе MySQL.
Чаще всего база данных содержит одну или несколько таблиц ;-).
спорное утверждение, смысл в БД, содержащей всего одну таблицу?! Прочитай про нормализацию данных и смысл и назначение реляционных БД
Каждая таблица имеет определенное имя (например, "people" или "cars"). Таблицы содержат
поля (строки) с данными.
таблицы содержат поля (колонки) с записями (строки)
Практически все действия в базе данных осуществляется с помощью SQL запросов.
что значит практически? Вы можете сделать что то не с помощью sql?! :-D

Для более легкого запоминания и понимания можно запросы разделить на
3 типа: управление данными(УД), и определение(вид) данных(по другому
не придумал как грамотнее выразиться - ОД).И еще пожалуй системные запросы(СЗ)
К УД можно отнести:
SELECT - извлечение(выборка) данных из БД
UPDATE - обновление данных в БД
DELETE - удаление данных из БД
INSERT INTO - вставка(заполнение) новыми данными БД
к ОД:
CREATE DATABASE - создать новую БД
CREATE TABLE - создать новую таблицу
ALTER TABLE - изменить таблицу
DROP TABLE - удалить таблицу
CREATE INDEX - создать индекс (поисковый ключ)
к СЗ:
show processlist - показать процессы БД
нада дописать сюда остальное........
смотри выше насчет DDL/DCL/DML
ORDER BY - оператор сортировки, используется для сортировки результатов,
установленных указанной колонки.ORDER BY по умолчанию сортирует
записи в возрастающем порядке.(ASC)
Если вы хотите сортировать записи в (обратном)порядке убывания,
вы можете использовать ключевое слово DESC.
...
...
...
я бы описал здесь про индексы и их назначение. Для интереса, создай таблицу с двумя полями id(int) и test(varchar) (255). Заполнии ее любыми данными. Создай порядка 2-3х мил записей. Сделай индекс по полю int. И потом засеки время выполнение двух запросов: select * from test order by id и select * from test. И покажи разницу между ними
ALTER TABLE - используется для добавления, удаления или изменения
данных в существующих таблицах.
не правильно, используется для изменения структуры таблицы, а не данных в существующих таблицах.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Alex Keda » 2008-10-13 14:29:41

что-то не SQL сделать в БД?
например в мусе я могу командой mkdir создать базу данных.
Частный случай?
Могу дропнуть хоть бвзу хоть таблицу командой rm
=========
смысл в БД, содержащей всего одну таблицу?
Например БД с траффом по одному интерфейсу.
Цель - ускорить рандомные выборки с раными параметрами.
тектсовые файлы в тких случаях отдыхают, а вот база в одну табличку - самое оно.
========
про прочее - в общем верно но всё не осилил =)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: MYSQL базовое описание

Непрочитанное сообщение Morty » 2008-10-13 15:02:22

о , спасибо ! что покритиковали в частности Alex_hha
учтёмс, но не все сразу кончено, руки только 2 , да и пишеться все в основном в свободное время
ЗЫ: я решил что всетаки выложу на сайт для начала в скрытом состоянии, и со временем буду дополнять,
править, надеюсь общими усилиями доведем до ума :smile:
ЗЫЫ: сейчас взялся еще за описание консольных тулз,скриптов которые идут вмесет с Мусей, будет раздельцик
mysql_cli (Mysql command line interface)
если ничто не вмешается в мои планы , сегодня вечером начну почутьчуть выкладывать

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Alex_hha » 2008-10-13 16:56:26

что-то не SQL сделать в БД?
например в мусе я могу командой mkdir создать базу данных.
Частный случай?
Могу дропнуть хоть бвзу хоть таблицу командой rm
чо за муся?
Например БД с траффом по одному интерфейсу.
Цель - ускорить рандомные выборки с раными параметрами.
тектсовые файлы в тких случаях отдыхают, а вот база в одну табличку - самое оно.
это частные случаи, я указывал, что как правило реляционные БД подразумевают как минимум 2 таблицы. Иначе откуда взяться отношениям(relation)? ;)

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение manefesto » 2008-10-13 17:20:11

муся-MySQL
я такой яростный шо аж пиздеЦ
Изображение

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: MYSQL базовое описание

Непрочитанное сообщение Alex_hha » 2008-10-14 10:37:16

Понятно, просто привык к мускулу, но никак не к мусе :-D

По сабжу, не совсем понял смысл мана, если все это есть в документации, структурированно и на русском?