Потребител Парола | Регистрация | Забравена парола
Меню
· Начало
· Файлове
· Форум
· Връзки
· Категории на уроците
· За контакти
· Фото галерия
· Търсене
Кажи на приятел

Вашия email:
email на приятел:
Копие за вас?
Реклама

Основни заявки в SQL

PHP & MySQLСъздаване и изтриване на база

Първата стъпка при работата ни с нова база от данни, е да създадем празна база. В SQL създаваме със запазената дума CREATE:
CREATE DATABASE db_example;

Напишете този ред в прозореца за заявки и натиснете бутона Execute или Ctrl+Enter от клавиатурата. Ако всичко е наред, вече имате създадена нова база, която няма таблици в себе си. Името и е db_example. Ако от контекстното меню на списъка с базите изберете Refresh, db_example ще се появи наред с останалите в списъка. За да използвате тази база от данни трябва да укажете това със следната заявка:
USE db_example;

След тази заявка сървърът ще знае, че следващи заявки се отнасят за таблиците в тази база, а не за някоя друга.
Аналогично на създаването става и изтриването на база:
DROP DATABASE db_example;

При изпълнението на тази заявка, цялата база, с всички таблици в нея, ще бъде изтрита.
Създаване и изтриване на таблица
Вече имате създадена база, указали сте, че ще използвате нея и е време да създадете и таблици. Създаването и изтриването на таблица е аналогично на предните заявки. Тук трябва да зададем имена и типове на колоните:

CREATE TABLE items (
name VARCHAR(20),
price INTEGER UNSIGNED
);

След тази заявка се създава нова таблица с име items. Тя има две колони – name, от тип VARCHAR(20) и price от тип INTEGER. Дефинициите на колоните са в кръгли скоби след името на таблицата и са разделени със запетаи. Всяка дефиниция на поле започва с име, след това тип и други параметри, разделени с интервали. Добре е да дефинираме PK за тази таблица. По време на нейното създаване това става така:

CREATE TABLE items (
name VARCHAR(20) PRIMARY KEY,
price INTEGER UNSIGNED
);

Ако вече имаме таблицата и искаме да я променим като добавим PK, може да заявим това чрез следната заявка:

ALTER TABLE items ADD PRIMARY KEY (name);

В скобите указваме кои колони да бъдат PK. Тази заявка ще бъде изпълнена успешно само ако тези колони еднозначно определят записите в таблицата, т.е. когато няма повторения.
Така създадената таблица е празна – няма записи, т.е. редовете в нея са нула на брой. За добавяне на записи трябва да се използва запазената дума INSERT.
Изтриване на таблици става отново чрез запазената дума DROP:

DROP TABLE items;

INSERT заявки
Записи в дадена таблица се добавят чрез запазената дума INSERT:

INSERT INTO items (name, price) VALUES ('item1', 20);
INSERT INTO items (price, name) VALUES (20, 'item1');
INSERT INTO items VALUES ('item1', 20);

И трите реда от горния пример правят едно и също – в таблицата items добавят един запис, в който полето name има стойност ’item1’, а полето price има стойност ’20’. В скобите след името на таблицата изреждаме полетата, на които ще дадем стойност, а в скобите след VALUES – съответните стойности. На третия ред не са указани колони и в този случай се имат предвид всички колони на таблицата в реда, в който са били дефинирани при нейното създаване. Ако не дефинираме стойност за някоя от колоните, то тя получава стойност null.
Тъй като горните три заявки правят едно и също, те не могат да се изпълнят една след друга. Ако се опитаме да направим това, след първата от тях вече ще има запис за продукта item1. При опит втори път да добавим този запис, ще получим съобщение за грешка, защото колоната name е PK и не се позволява да има два продукта с еднакво име.
Запазената дума INSERT може да се използва и в друга форма:

INSERT INTO items SELECT …;

Тук SELECT заявката връща като резултат цяла таблица, всички записи на която се добавят в таблицата items.
SELECT заявки
За да извличаме данни от базата се използва ключовата дума SELECT. Най-простият неин вариант е следният:

SELECT * FROM items;

Тази заявка в буквален превод означава "избери всичко от items" и като резултат връща цялата таблица items. За да изберем само няколко колони, ги изреждаме на мястото на звездичката (символа '*'), разделени със запетаи. Например, за да видим само имената на всички продукти ще използваме следната заявка:

SELECT name FROM items;

Ако пък искаме да получим таблица, в която на първо място са цените, а след това имената пишем следното:

SELECT price, name FROM items;

По този начин можем да избираме и подреждаме колони. За да вземем част от редовете, трябва да поставим някакво по-абстрактно условие, защото редовете нямат номера или имена:

SELECT name FROM items WHERE price < 50 AND price > 10;

Тази SELECT заявка ще върне като резултат таблица с една колона, която съдържа имената на стоките, чиято цена е между 10 и 50. За поставяне на условия се използва се използва ключовата дума WHERE. След нея е записано някакво условие, логически израз, който се прилага на всеки един от записите. Ако резултатът е "истина", записът участва в резултата, а ако е "лъжа" се пренебрегва.
За да получим записите на таблицата в определен ред, можем да използваме ORDER BY:


SELECT price, name FROM items WHERE price < 50 AND price > 10
ORDER BY price DESC, name;

На края на SELECT заявката добавяме ORDER BY и след това изреждаме по кои колони да се сортира. В случая първо сортираме по price, а ако има няколко записа с еднаква цена, сортираме по name. По подразбиране сортирането става в нарастващ ред. Ако искаме някоя колона да се сортира в намаляващ, след името и добавяме думата DESC.
Друга полезна запазена дума е LIMIT. Тя служи за ограничаване на броя на записите в резултата от SELECT заявка. Например, ако искате само първите пет реда от горната заявка (петте най-скъпи стоки), тя би изглеждала така:

SELECT price, name FROM items WHERE price < 50 AND price > 10
ORDER BY price DESC, name LIMIT 5;

DELETE заявки
Изтриването на записи е аналогично на избирането на записи. Ако вземем една SELECT заявка и частта преди FROM заменим с DELETE, тогава всички записи, които щяха да участват в резултата на SELECT, ще бъдат изтрити:

DELETE FROM items WHERE price < 50 AND price > 10;

Тази заявка изтрива всички записи, в които цената е между 10 и 50.
Ако в DELETE заявка няма условие WHERE, всички записи от дадената таблица ще бъдат изтрити и тя ще остане празна. Забележете, че това е различно от заявката DROP, при която цялата таблица се изтрива.
· smilev на January 12 2011 07:59:21 · 0 Коментари · 1877 Прочитания · Отпечатай
Коментари
Няма добавени коментари.
Напиши коментар
Моля влезте, за да коментирате.
Оценка
Рейтингите са достъпни само за регистрирани.

Моля влезте или се регистрирайте за да гласувате.

Няма оценки.
Вход
Потребител

Парола



Не сте регистрирани?
Натиснете тук за регистрация.

Забравена парола?
Натиснете тук за нова.
Анкета
С каква операционна система работите











Трябва да влезете за да гласувате.
ЧАТ
Трябва да влезате за да пуснете съобщение.

Няма съобщения.
Статистика