пятница, 15 ноября 2013 г.

Базовые запросы по SQL

В таблице А выбрать определенную последнюю запись:

SELECT *
FROM А
WHERE field1 = '<value>' ORDER BY <field_date> DESC LIMIT 1;

Идея данного запроса в том, что мы берем записи с определенным значением в поле field1, упорядочиваем их по полю field2_date и выводим только первую запись. Условие "последняя запись" достигается тем, что мы упорядочиванием по убыванию по полю field_date, в котором хранится дата записи, и берем только первую оператором LIMIT из результирующей выборки.

понедельник, 28 января 2013 г.

Записи по SQL



(SELECT)
                - select ПОЛЕ from Таблица
                - select name FROM mytable

(LIKE) Select что в поле было заданное значение
                - select поле from таблица where поле like '%заданное значение%'
                - select name from mytable where name like '%ал%'

(DISTINCT) Выборка различных значений в столбце таблицы с помощью ключегого слова DISTINCT
                - select distinct поле from таблица
                - select distinct name from mytable

(count) Количество записей в таблице
                - select count(*) поле from таблица
                - select count(*) name from mytable

(LIMIT 1) Ограничить количество выводимых записей
               - select * from таблица limit <количество строк>;

(where) Какой либо столбец равен значению
                - select поле from таблица where поле = 'значение'
                - select name from table where name = 'admin'

(rownum < n, Не больше, <) Вывод записей не более какого-либо количества
                - select поле from таблица where rownum < 10

(rownum between 10<rownum<20)
                - select поле from (select rownum r, поле from таблица) where r > 5 and r < 11
                - select name, price from (select rownum r, name, price from items) where r >  5 and r < 11;

(ORDER ASC, DESC - сортировка результата по возрастанию или убыванию)
        - SELECT * FROM address ORDER BY name ASC

(mysql) Подключение к серверу под пользователем jack, hello.
mysql -u jack -phello

(CREATE) Создание пользователя
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';

(GRANT ALL PRIVILEGES) Назначение привилегий
GRANT ALL PRIVILEGES ON *.* TO 'bill'@'%' WITH GRANT OPTION;

(USE) Использовать базу данных
                USE ‘DATA_BASE_NAME’;

(SHOW) Показать все базы данных сервера
SHOW DATABASES;

(SHOW) Показать все таблицы выбранной базе данных
SHOW TABLES;

Показать всех пользователей
SELECT User FROM mysql.user;

Показать тип полей в таблице
SHOW FIELDS FROM tableName where Field ='nameOfField';

(INSERT) Вставка строки в таблицу
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);

(ALTER) Изменить тип столбца
ALTER TABLE mytable CHANGE field field char(64); - field два раза, что бы указать что         изменяем столбец не меняя его названия

(UPDATE) Изменить содержимое строки
UPDATE  tomcat_users SET password = '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b' WHERE user_name='curly'; - если не вставить условие WHERE, то всем записям в указанном поле буду сменены значения.

(DELETE) Удалить строку:
DELETE FROM table_name WHERE condition;