
т.к. на документацию не потянет, да и полно книг на эту тему. Может есть желающие подсобить, дополнить , поправить.
Пишите плз кому интересно тут, в приват либо в асю кому как нравиться.
То что у меня получилось выкладываю ниже. Там пока не хватает базового описания как с Юзерами БД работать, пару примерчиков из шела, ПэХэПэ+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>
Практически все действия в базе данных осуществляется с помощью 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;
они должны указываться через запятую, например
Код: Выделить всё
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>
Код: Выделить всё
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;
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;
Код: Выделить всё
+------+-----------+--------+
| 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,
....
);
data_type - тип данных для этого солбца;
Какие типы данных могут быть в MySQL описано в разделе "Типы данных"
пример создания таблицы cars:
Код: Выделить всё
CREATE TABLE cars(C_id int,CModel varchar(255),Gos_Number int);
Код: Выделить всё
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;
Код: Выделить всё
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>
синтаксис:
Код: Выделить всё
ALTER TABLE table_name DROP column_name;
запятую.
-----------------------
INSERT - вставка(заполнение) данных в полях таблицы
синтаксис:
Код: Выделить всё
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);
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)
то нужно писать так:
Код: Выделить всё
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>
-------
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 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)
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)
пример: 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.