• ↓
  • ↑
  • ⇑
 
Записи с темой: mysql (список заголовков)
14:22 

MySQL SELECT из одной таблицы и UPDATE другой

Heidel
If it's stupid but works, it isn't stupid.
http://stackoverflow.com/questions/37069551/mysql-add-data-from-one-table-to-another

uc_products
----------------------------
vid
sell_price

uc_product_options
----------------------------
nid
oid
price




@темы: Ссылки, MySQL

14:53 

(The only proper) PDO tutorial

netcat-na-diary
19:08 

Learning MySQL and MariaDB - Part 1

Heidel
If it's stupid but works, it isn't stupid.
XAMPP команды из консоли

mysql -p
mysql -u root -p

перейти в консоли в MariaDB

очистить ввод
\с + Enter

USE test
выбор используемой БД

SHOW TABLES FROM test;
показать таблицы

CREATE TABLE project.books (book_id INT, title TEXT, status INT);
создать таблицу

DESCRIBE books;
показать данные из таблицы

INSERT INTO books VALUES(102, 'My Antonia', 0);
вставить данные

SELECT * FROM books;
SELECT * FROM books WHERE status = 1;

выборка данных

UPDATE books SET status = 1 WHERE book_id = 102;
изменить данные

Импорт через консоль
mysql> use DATABASE_NAME;
mysql> source path/to/file.sql;
http://stackoverflow.com/questions/5152921/import-sql-file-into-mysql

@темы: MySQL, Learning MySQL and MariaDB

16:32 

Создание движка на MVC. Введение

Heidel
If it's stupid but works, it isn't stupid.
10:37 

Different SQL JOINs

netcat-na-diary
Different SQL JOINs
Before we continue with examples, we will list the types the different SQL JOINs you can use:

INNER JOIN: Returns all rows when there is at least one match in BOTH tables
LEFT JOIN: Return all rows from the left table, and the matched rows from the right table
RIGHT JOIN: Return all rows from the right table, and the matched rows from the left table
FULL JOIN: Return all rows when there is a match in ONE of the tables

SQL INNER JOIN




SQL LEFT JOIN




SQL RIGHT JOIN



@темы: MySQL

12:26 

PDO

Heidel
If it's stupid but works, it isn't stupid.
http://hashcode.ru/questions/79567/mysql-php-pdo-could-not-find-driver

Подключение к БД



Создать БД



Создать таблицу



Добавить запись в таблицу



Получить id последнего вставленного элемента



Добавить несколько записей в таблицу



Prepared Statements in PDO

@темы: PHP, PDO, MySQL

17:48 

CMS на PHP и MySQL. Часть 1

Heidel
If it's stupid but works, it isn't stupid.
22:23 

noob — начинающий Web разработчик

Heidel
If it's stupid but works, it isn't stupid.

noob — начинающий Web разработчик


http://noob.onthe.io/

@темы: Ссылки, PHP, MySQL, Javascript, Ajax, Учебники

21:32 

AJAX - послать запрос на сервер, получить данные из БД

netcat-na-diary
Создадим таблицу в БД


Файл соединения с БД db.php


Файл get-user.php получает данные из БД и возвращает из запросу


Файл index.php, с которого мы отправляем запрос


Помощь в решении http://stackoverflow.com/questions/21169924/send-ajax-get-request/

Тестовый файл

@темы: jQuery, PHP, MySQL, AJAX

12:51 

Вступление в PHP и MySQL

Teenie-weenie
Houston, we have a problem.
17:46 

Создание регистрации на сайте на PHP + MySQL 2 часть

netcat-na-diary
http://ruseller.com/project.php?id=5

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



Добавим в таблицу users в бд поле для хранения аватара
ALTER TABLE users ADD avatar VARCHAR(255) NOT NULL AFTER password;

@темы: Ссылки, Создание регистрации на сайте на PHP + MySQL, PHP, MySQL

21:49 

РНР и MySQL 1 часть

Teenie-weenie
Houston, we have a problem.

РНР и MySQL



Библиотека php_mysql предоставляет классически й файловый интерфейс к СУБД MySQL.

При работе с MySQL из РНР используются два вида дескрипторов:
дескриптор соединения - идентифицирует соединение с сервером.
дескриптор результирующей таблицы - предназначен для доступа к
результату выполнения запроса.

В первую очередь следует установить соединение с сервером при
помощи функции mysql_connect(), которая имеет следующий синтаксис:
resource mysql_connect([ $ server [, $username [, $password
[, $new_link [, $client_flags] ]]]])



После того как соединение установлено, необходимо выбрать базу данных при
помощи функции mysql_select_db()
bool mysql_select_db($database_name [, $link_identifier] )


После того как соединение установлено и выбрана база данных, с которой
будет осуществляться дальнейшая работа, можно отправлять серверу SQL­
запросы. Данную операцию можно осуществить при помощи функции
mysql_query() , которая имеет следующий синтаксис:
resource mysql_query ($query [, $link_identifier] )

Получить сообщение об ошибке можно при помощи
функции mysql_error()

Дескриптор результирующей таблицы, возвращаемый функцией
mysql_query ( ), используется далее для получения значений, возвращаемых
СУБД. Обычно это осуществляется при помощи одной из пяти функций:
mysql_result(),
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_fetch_array (),
mysql_fetch_object ()
.

Закрытие соединения производится при помощи функции mysql_close().
bool mysql_close ([ $link_identifier] )

Закрывать соединение в РНР не обязательно, так как скрипт работает
непродолжительное время, а после завершения его работы соединение закрывается
автоматически.

config.php


index.php

@темы: PHP, MySQL, РНР и MySQL

18:25 

MySQL 7 часть

netcat-na-diary

Функции MySQL


Функции шифрования



Обратимое шифрование
При обратимом шифровании, как правило, предоставляются две функции для
шифровки и расшифровки данных. Наиболее серьезную защиту обеспечивают
функции AES_ENCRYPT (str, key_str) и AES_DECRYPT (crypt _str, key_str ) ,
которые используют официальный алгоритм AES (Advanced El1cryptiol1 Stаndard).

SELECT AES_ENCRYPT('MySQL', 'секретный ключ');
SELECT AES_DECRYPT('x��$Fb�;�q��%�)}', 'секретный ключ');

Нео6ратимое шифрование
Функция MD5() осуществляет необратимое шифрование дан­ных
по алгоритму MD5 (Message-Digest Algorithm) и имеет следующий
синтаксис:
MD5 ( str)
SELECT MD5('MySQL'), MD5('MySQL');
SELECT MD5('MySQL1'), MD5('MySQL');


Алгоритм MD5 часто применяется также для создания уникального ХЭШ-КОДа
объемных файлов, которые передаются по сети . Загрузив файл, всегда можно
про верить его целостность , вы числ ив код по алгоритму MD5 и сравнив
полученный результат с хэш-кодом, предоставляемым распространителем. Это
позволяет отследить повреждения файла, вызванные передачей через сеть, а
также предотвратить фальсификацию дистрибутива.

Агрегатные функции


Функции, применяемые совместно с конструкцией GROUP ВY, часто называют
агрегатными или суммирующими функциями. Они предназначены для
вы­числения одного значения для каждой группы, создаваемой конструкцией
GROUP ВY.

Среднее значение
Функция AVG () возвращает среднее значение аргумента expr и имеет
сле­дующий синтаксис:
AVG ( [ DISTINCT ] expr)

Создадим таблицу
CREATE TABLE catalogs1 (
id_catalog INT(11) NOT NULL AUTO_INCREMENT,
name TINYTEXT NOT NULL,
total INT(11) NOT NULL,
PRIMARY KEY (id_catalog)
);
INSERT INTO catalogs1 VALUES (1, 'Процессоры', 15);
INSERT INTO catalogs1 VALUES (2, 'Материнские платы', 4);
INSERT INTO catalogs1 VALUES (3, 'Видеоадаптеры', 7);
INSERT INTO catalogs1 VALUES (4, 'Жесткие диски', 18);
INSERT INTO catalogs1 VALUES (5, 'Оперативная память', 9);
SELECT * FROM catalogs1;


Запрос
SELECT AVG(total) FROM catalogs1;


Создадим таблицу
CREATE TABLE products (
id_product INT(11) NOT NULL AUTO_INCREMENT,
name TINYTEXT NOT NULL,
price DECIMAL(7,2) NOT NULL,
id_catalog INT(11) NOT NULL,
PRIMARY KEY (id_product),
KEY id_catalog (id_catalog)
);
INSERT INTO products VALUES (1, 'Материнская плата N 1', '2050.00', 2);
INSERT INTO products VALUES (2, 'Оперативная память N 1', '1500.00', 5);
INSERT INTO products VALUES (3, 'Процессор N 1', '6000.00', 1);
INSERT INTO products VALUES (4, 'Процессор N 2', '3523.00', 1);
INSERT INTO products VALUES (5, 'Процессор N 3', '4856.00', 1);
INSERT INTO products VALUES (6, 'Оперативная память N 2', '1028.00', 5);
INSERT INTO products VALUES (7, 'Материнская плата N 2', '1845.00', 2);
INSERT INTO products VALUES (8, 'Жесткий диск N 1', '4210.00', 4);
INSERT INTO products VALUES (9, 'Видеоадаптер N 1', '3670.00', 3);


Запрос
SELECT id_catalog, AVG(price) FROM products GROUP BY id_catalog;
SELECT id_catalog, AVG(price*1.2) FROM products GROUP BY id_catalog;
SELECT id_catalog, AVG(price)*1.2 FROM products GROUP BY id_catalog;

Сортировка агрегатных значений


По полученным в результате выполнения агрегатных функций значениям
может выполняться сортировка результирующей таблицы . Для этого столбцу
назначается псевдоним при помощи оператора AS, который передается
кон­струкции ORDER ВY
SELECT id_catalog, AVG(price) AS price FROM products GROUP BY id_catalog ORDER BY price DESC;

Подсчет количества записей в таблице
Подсчет количества записей в таблице осуществляется при помощи функции
COUNT (), имеющей несколько форм со следующим синтаксисом:
COUNT (expr)
COUNT (*)
COUNT ( DISTINCT expr1 , expr2 , ... )


Создадим таблицу
CREATE TABLe tbl3 (
id INT(11) NOT NULL,
value INT(11) default NULL
);
INSERT INTO tbl3 VALUES(1, 230);
INSERT INTO tbl3 VALUES(1, NULL);
INSERT INTO tbl3 VALUES(3, 405);
INSERT INTO tbl3 VALUES(4, NULL);


Запрос
SELECT COUNT(id), COUNT(value) FROM tbl3;

Форма функции COUNT(*) возвращает общее количество строк в таблице, не­
зависимо от того, принимает какое-либо поле значение NULL или нет
SELECT COUNT(*) FROM tbl2;

Функция COUNT() может быть использована не только для подсчета общего
количества записей в таблице, но и для подсчета количества строк в выборке
с условием WHERE
SELECT COUNT(*) FROM tbl3 WHERE value < 300;

Подсчет количества товара в каждом разделе
SELECT id_catalog, COUNT(*) AS total FROM products
GROUP BY id_catalog ORDER BY total DESC;


Третий вариант функции COUNT () позволяет использовать ключевое слово
DISTINCT, которое обеспечивает подсчет только уникальных значений столб­ца
SELECT COUNT(id_catalog), COUNT(DISTINCT id_catalog) FROM products;

Объединение значений группы
Для объединения значения группы предназначена функция GROU P _ CONCAT ( ) ,
которая имеет следующий синтаксис :
GROUP_CONCAT ( [ DISTINCT ] expr [, expr ... ]
[ORDER ВY { unsigned_integer | col_name | expr }
[ASC | DESC] [, col_name ... ]]
[SEPARATOR str_val] )


В простейшем случае функция принимает имя столбца expr и возвращает
строку со значениями столбца, разделенными запятыми.
SELECT GROUP_CONCAT(id_catalog) FROM products;

Ключевое слово DISTINCT требует вернуть только уникальные значения
столбца, а ключевое слово SEPARATOR позволяет задать в качестве
разделите­ля значений произвольный символ.
SELECT GROUP_CONCAT(DISTINCT id_catalog) FROM products;

SELECT GROUP_CONCAT(DISTINCT id_catalog SEPARATOR '-') FROM products;

SELECT GROUP_CONCAT(DISTINCT id_catalog ORDER BY id_catalog DESC SEPARATOR '-') AS str FROM products;

SELECT GROUP_CONCAT(price ORDER BY price DESC)
FROM products GROUP BY id_catalog;



Поиск минимального и максимального значений
Для поиска минимального значения в столбце expr предназначена функция
MIN() , которая имеет следующий синтаксис:
MIN([ DISTINCT ] expr)
В качестве аргуме нта expr обычно вы ступает имя стол бца. Необязательное
ключевое слово DISTINCT позволяет дать указание СУБД MySQL обрабаты­вать
только уникальные значения столбца expr.
SELECT MIN(price) FROM products;

Использование конструкции GROU P ВY id_catalog позволяет найти
минимальную цену для каждого из разделов каталога
SELECT id_catalog, MIN(price) FROM products GROUP BY id_catalog;

Для поиска максимального значения в столбце expr предназначена функция
MAX() , которая имеет следующий синтаксис:
MAX([ DISTINCT ] expr)
SELECT MAX(price) FROM products;

SELECT id_catalog, MAX(price) FROM products GROUP BY id_catalog;


Сумма столбца
Сумму столбца expr позволяет подсчитать функция SUM(), которая имеет
следующий синтаксис:
SUМ( [ DISТINCT ] expr)

SELECT SUM(price) FROM products;

SELECT id_catalog, SUM(price) FROM products GROUP BY id_catalog;

Разное
Miscella­nеоus-функции, что переводится как смешанные функции, т. е. функции,
ко­торые не поддаются классификации.

Преобразование IР-адреса
Функция INET_ATON (address) принимает IР-адрес address и представляет
его в виде целого числа
SELECT INET_ATON('62.145.69.10'), INET_ATON('127.0.0.1');

Работа с сокращенной формой IР-адреса
SELECT INET_ATON('127.0.01'), INET_ATON('127.1');

Функция INET_NTOA ( address ) принимает IP -aдpec в виде числа (результат
выполнения функции INET_ATON ( ) ) и возвращает адрес в виде строки,
со­стоящей из четырех чисел, разделенных точкой
SELECT INET_NTOA(1049707786), INET_NTOA(2130706433);

@темы: MySQL

12:39 

Строим свою CMS на PHP и MySQL

Teenie-weenie
Houston, we have a problem.
12:37 

Создание регистрации на сайте на PHP + MySQL 1 часть

Teenie-weenie
Houston, we have a problem.
http://ruseller.com/project.php?id=5



Создадим бд и таблицу users в бд


Файл для подключения к бд bd.php


index.php


Регистрация reg.php


Сохранение пользователя в бд save_user.php


Вход testreg.php

@темы: Ссылки, Создание регистрации на сайте на PHP + MySQL, PHP, MySQL

22:03 

MySQL 6 часть

Teenie-weenie
Houston, we have a problem.

Функции MySQL


Математические функции



Вычисление площади треугольников


Вычисление площадей треугольников
SELECT A*B*SIN(RADIANS(angle))/2.0 AS S FROM triangle;

Округление результата вычисления до третьего знака после запятой
SELECT ROUND(A*B*SIN(RADIANS(angle))/2.0, 3) AS S FROM triangle;

CEILING()/CEIL() возвращает первое целое число, которое встречает справа от
значения аргумента
SELECT CEILING(0.49), CEILING(1.51), CEIL(-0.49), CEIL(-1.51);

FLOOR() принимает дробное число Х и возвращает максимальное
целое значение, не больше чем Х.
SELECT FLOOR(0.49), FLOOR(1.51), FLOOR(-0.49), FLOOR(-1.51);

TRUNCATE (Х , О ) , которая возвращает число х с дробной частью, имеющей O
знаков после запятой. Если количество знаков после запятой в числе х боль­ше О,
лишние разряды усекаются, если меньше, то в конец числа добавляют­ся нули
SELECT TRUNCATE(1.284, 0), TRUNCATE(1.284, 1), TRUNCATE(1.284, 4);

Функции даты и времени



Форматирование календарных значений




SELECT fio, (TO_DAYS(NOW()) - TO_DAYS(putdate))/365.25 AS putdate FROM tbl1;
SELECT fio, FLOOR((TO_DAYS(NOW()) - TO_DAYS(putdate))/365.25) AS putdate FROM tbl1;

Прео6разование даты в UNIХSТАМР-формат


Для преобразо­вания MySQL-даты в UNIXSTАМР-формат используется функция
UNIX_TIMESTAМP ( [ date_time ] )

SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP('1997-10-04 22:18:56');

Функция FROM_UN IXT IME (unix _times tamp) решает обратную задачу : прини­
мает число секунд, прошедших с полуночи 1 января 970 года, и возвращает
дату и время суток в виде строки 'YYYY-MM-DD hh:mm:ss' или В виде числа
YYYYMMDDhhmmss в зависим ости от того, вызвана функция в строковом или
числовом контексте
SELECT FROM_UNIXTIME(1389208775), FROM_UNIXTIME(0);

Функция FROM_UNIXTIME (unix_ timestamp , format) может принимать второй
параметр format
SELECT FROM_UNIXTIME(1389208775, 'В %Y году контракт заканчивается');

Строковые функции


http://dev.mysql.com/doc/refman/5.5/en/string-functions.html

Изменение кодировки строки


Функция CONVERT (expr USING charset) преобразует текст из одной
кодировки в другую
SELECT CONVERT ('База данных MySQL' USING koi8r);

Иногда требуется не преобразовать строку из одной кодировки в другую при
помощи функции CONVERT ( ) , а указать ее кодировку: это осуществляется при
помощи так называемого представителя : имени кодировки, начинающегося
с символа подчеркивания
SELECT _koi8r'База данных MySQL';

Первые несколько символов строки
SELECT SUBSTRING(fio,1,5) FROM tbl1;

Извлечение инициалов
Создание таблицы

SELECT CONCAT(surname, ' ',
SUBSTRING(name,1,1), '.',
SUBSTRING(patronymic,1,1), '.') AS fio

FROM tbl2;


Изменение регистра строки
UPDATE tbl2 SET surname = UPPER(surname),
name = UPPER(name),
patronymic = UPPER(patronymic);
SELECT * FROM tbl2;


Преобразование строки в верхний регистр осу­ществляется
при помощи функции UPPER(); для решения обратной задач и
предназначена функция LOWER()
UPDATE tbl2 SET surname = LOWER(surname),
name = LOWER(name),
patronymic = LOWER(patronymic);
SELECT * FROM tbl2;


Перевод первого символа в верхний регистр
UPDATE tbl2 SET
surname = CONCAT(UPPER(SUBSTRING(surname, 1, 1)), SUBSTRING(surname,2)),
name = CONCAT(UPPER(SUBSTRING(name, 1, 1)), SUBSTRING(name,2)),
patronymic = CONCAT(UPPER(SUBSTRING(patronymic, 1, 1)), SUBSTRING(patronymic,2));
SELECT * FROM tbl2;

@темы: Ссылки, MySQL

01:24 

MySQL 5 часть

Teenie-weenie
Houston, we have a problem.

Выборка данных



Все данные из таблицы
SELECT * FROM catalogs;

SELECT id_catalog, name FROM catalogs;
SELECT name, id_catalog FROM catalogs;

Условная выборка


Ключевое слово WHERE , после
которого следует логическое условие.

SELECT * FROM catalogs WHERE id_catalog > 2;

Условие может быть составным и объединяться при помощи логических
операторов AND (И) или OR (ИЛИ).
SELECT * FROM catalogs
WHERE id_catalog > 2 AND id_catalog <= 7;


СУБД MySQL поддержи­вает унарный оператор отрицания NOT
SELECT id_catalog, id_catalog > 2, NOT id_catalog > 2 FROM catalogs;


Помимо операторов OR и AND язык SQL предоставляет еще один логический
оператор: исключающее ИЛИ - XOR.

Для выборки записей из определенного интервала используется оператор
BETWEEN min AND mах, возвращающий записи, значения которых лежат в диапазоне
от min до mах.
SELECT * FROM catalogs WHERE id_catalog BETWEEN 2 and 6;


Существует конструкция, противоположенная конструкции BETWEEN - NOT
BETWEEN, которая возвращает записи, не попадающие в интервал между min и
mах.
SELECT * FROM catalogs WHERE id_catalog NOT BETWEEN 2 and 6;

Иногда требуется извлечь записи, удовлетворяющие не диапазону, а списку,
например, записи с id_cata1og из списка ( 1, 2, 5).
Для этого предназначена конструкция IN.
SELECT * FROM catalogs WHERE id_catalog IN (1, 2, 7, 10);

Конструкция NOT IN является противоположной оператору IN
SELECT * FROM catalogs WHERE id_catalog NOT IN (1, 2, 7, 10);

В конструкции WHERE могут использоваться не только числовые столбцы.
SELECT * FROM catalogs WHERE name = 'видеоадаптеры';

Условную выборку с участием строк удобнее производить при помощи оператора LIKE,
который по­зволяет использовать простейшие регулярные выражения.
Оператор LIKE имеет следующий синтаксис:
expr LIКE раt
SELECT * FROM catalogs WHERE name LIKE '%ы';

Оператор NOT LIKE противоположен по действию
оператору LIKE и имеет следующий синтаксис:
expr NOT LIКE раt
SELECT * FROM catalogs WHERE name NOT LIKE '%ы';

Псевдонимы столбцов
В SELECT-заnросе столбцу можно назначить новое имя при
помощи оператора AS.
SELECT id_catalog , name , DATE_FORMAT (putdate , '%d. %m. %Y') AS printdate
FROM catalogs ;


Сортировка записей


Осуществляется при помощи конструкции ORDER ВY,
которая следует за выражением SELECT.
SELECT id_catalog, name FROM catalogs ORDER BY id_catalog;
SELECT id_catalog, name FROM catalogs ORDER BY name;

По умолчанию сортировка производится в прямом порядке, однако, добавив
после имени столбца ключевое слово DESC, можно добиться сортировки в
обратном порядке
SELECT id_catalog, name FROM catalogs ORDER BY id_catalog DESC;
SELECT id_catalog, name FROM catalogs ORDER BY name DESC;

Сортировка таблицы по двум столбцам
SELECT * FROM tbl ORDER BY id_catalog, putdate DESC;

Записи в таблице tbl сначала сортируются по
столбцу id_catalog, а совпадающие в рамках одного значения id_catalog
записи сортируются по полю putdate в обратном порядке.
!!! Следует отметить, что ключевое слово DESC относится только к полю putdate.

Вывод записей в случайном порядке
Для вывода записей в случай ном порядке используется конструкция
ORDER ВY RAND ()
SELECT id_catalog, name FROM catalogs ORDER BY RAND();

Вывести одну случайную запись
SELECT id_catalog, name FROM catalogs ORDER BY RAND() LIMIT 1;

Ограничение выборки


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

Получить последние две записи
SELECT id_catalog, name FROM catalogs
ORDER BY id_catalog DESC
LIMIT 2;


Ключевое слово LIMIT с двумя числами:
первое указывает позицию, начиная с которой необ­ходимо вернуть
результат, а второе - количество извлекаемых записей
SELECT id_catalog, name FROM catalogs
ORDER BY id_catalog DESC
LIMIT 2, 2;


Вывод уникальных значений
Kлючевое слово DISTINCT предписывает MySQL извлекать
только уникальные значения
SELECT DISTINCT id_catalog FROM tbl ORDER BY id_catalog;

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

Часто для извлечения уникальных записей прибегают к конструкции
GROUP ВY, содержащей имя столбца, по которому группируется результат
SELECT id_catalog
FROM tbl
GROUP BY id_catalog
ORDER BY id_catalog;


Объединение таблиц


Если формат результирующих таблиц (число, порядок следования и тип
столбцов) совпадает, то возможно объединение результатов выполнения двух
операторов SELECT в одну результирующую таблицу. Это достигается с
ис­пользованием оператора UNION.

SELECT id_catalog FROM catalogs
UNION
SELECT id_catalog + 5 FROM tbl;


Отобразить повторяющиеся вопросы
SELECT id_catalog FROM catalogs
UNION ALL
SELECT id_catalog + 5 FROM tbl;

@темы: MySQL

00:59 

MySQL 4 часть

Teenie-weenie
Houston, we have a problem.

Обновление записей


Операция обновления позволяет менять значения полей в уже существующих
записях. Для обновления данных предназначены операторы UРDАТЕ и
REPLACE. Первый обновляет отдельные поля в уже существующих записях,
тогда как оператор REPLACE больше похож на INSERT, за исключением того,
что если старая запись в данной таблице имеет тоже значение индекса
UN IQUE или PRIMARY КЕУ, что и новая, то старая запись перед занесением
но­вой записи будет удалена.

UPDATE [ IGNORE ] tbl
SET col1=expr1 [, col2= expr2 ... ]
[WНERE where_ definition]
[ORDER ВУ ... ]
[LIMIT rows]


UPDATE catalogs SET name = 'Процессоры (Intel)'
WHERE name = 'Процессоры';
SELECT * FROM catalogs;


Синтаксис оператора RENAМE аналогичен синтаксису оператора INSERT :
REPLACE [INTO ] tbl [( col _name, ... )] VALUES (exprеssion, ... ) , ( ... ) , ...

@темы: MySQL

00:37 

MySQL 3 часть

Teenie-weenie
Houston, we have a problem.

Удаление данных



DELETE - удаление всех или части записей из таблицы;
TRUNCATE TAВLE - удаление всех записей из таблицы.

DELETE FROM tbl
WНERE where_definition
ORDER ВY ...
LIMIT rows


DELETE FROM catalogs WHERE id>2;
SELECT * FROM catalogs;


Если в операторе DELETE отсутствует условие WHERE, из таблицы удаляются
все записи.

DELETE FROM catalogs;
SELECT * FROM catalogs;


Применение ограничения LIMIT позволяет задать максимальное количество
уничтожаемых записей.
DELEТE FROМ catalogs LIМIT З;

Оператор TRUNCATE TAВLE, в отличие от оператора DELETE, полностью очища­ет
таблицу и не допускает условного удаления. То есть оператор
TRUNCATE TAВLE аналогичен оператору DELETE без условия WHERE и ограниче­ния
LIMIT. В отличие от оператора DELETE удаление происходит гораздо бы­стрее,
так как при этом не выполняется перебор каждой записи.

@темы: MySQL

16:08 

MySQL 2 часть

Teenie-weenie
Houston, we have a problem.

Вставка записи в таблицу



Для вставки записи в таблицу используется оператор INSERT.
INSERT [ IGNORE ] [ INTO ] tbl [( col_nаmе, ... )] VALUES (expression , ... )

Вставка числовых значений в таблицу


Создадим таблицу
CREATE TABLE tbl (
id INT(11) NOT NULL DEFAULT '5',
id_cat INT(11) DEFAULT NULL
);


Вставим значения
INSERT INTO tbl VALUES (10, 20);
INSERT INTO tbl (id_cat, id) VALUES (10, 20);
INSERT INTO tbl (id) VALUES (30);
INSERT INTO tbl () VALUES ();
INSERT INТO tbl (id, id_cat) VALUES (DEFAULT, DEFAULT );


Просмотр содержимого таблицы
SELECT * FROM tbl;

Альтернативный синтаксис оператора INSERT (СУБД MySQL)
INSERT INTO tbl SET id = 40, id_cat = 50;
INSERT INTO tbl SET id = 50;


Вставка строковых значений в таблицу


Создадим таблицу
CREATE TABLE catalogs (
id_catalog INT(11) NOT NULL,
name TINYTEXT NOT NULL
);


Добавление новой записи в таблицу
INSERT INTO catalogs VALUES (1, 'Процессоры');
INSERT INTO catalogs VALUES (2, "Память");

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

(!!!) При помещении в базу данных текста , набранного пользователем, всегда
следует экранировать кавычки, для того чтобы предотвратить возникновение
ошибки и атаку SQL-инъекцией.


Вставка календарных значений в таблицу



CREATE TABLE tbl (
id INT(11) NOT NULL,
putdate DATETIME NOT NULL,
lastdate DATE NOT NULL
);


Вставка календарных значений
INSERT INTO tbl VALUES(1, '2007-01-03 0:00:00', '2007-01-03');

Для получения текущего времени удобно вос­пользоваться
встроенной функцией MySQL - NOW ()

INSERT INTO tbl VALUES(3, NOW(), NOW());

Для получения сдвига даты относительно текущей можно прибавлять и вы­читать
интервалы. Для этого используется ключевое слово INTERVAL, после
которого следует временной интервал.
INSERT INTO tbl VALUES (4, '2007-01-01 0:00:00' - INTERVAL 3 WEEK, NOW() + INTERVAL 3 MONTH);


Вставка уникальных значений в таблицу


Первичный ключ таблицы ( PRIМARY КЕУ) или столбец, индексированный
уникальным индексом (UNIQUE ), не могут иметь повторяющихся значений.
Вставка записи со значением, уже имеющимся в таблице, приводит к возник­новению
ошибки.

CREATE TABLE tbl (
id INT(11) NOT NULL,
name TINYTEXT NOT NULL,
PRIMARY KEY (id)
);


Если необходимо, чтобы новые записи с дублирующим ключом
отбрасывались без генерации ошибки, следует добавить после
оператора INSERT клю­чевое слово IGNORE.

INSERT INTO tbl VALUES (1, 'Видеоадаптеры');
INSERT IGNORE INTO tbl VALUES (1, 'Видеоадаптеры');
SELECT * FROM tbl;


Генерации ошибки не происходит, тем не менее,
новая запись также не добавляется.

АUTO_INCREMENT

Многострочны й оператор INSERT

@темы: MySQL

Блокнот

главная