SQL
разполага със средства за работа с регулярни изрази. За сравнение на значенията
с регулярните значения използваме оператора LIKE, а за конструиране на прости
извеждания - символите '_' (произволен символ) и '%' (произволно количество
произволни символи).
Пример. Това запитване намира всички имена, които
започват с 'Jo':
SELECT name FROM staff
WHERE name LIKE
'Jo%n';
+----------+
| name
|
+----------+
| Jonathan |
| John
|
+----------+
MySQL също позволява да се изпълняват много
по- развити сравнения със шаблони с помощта на оператора REGRXP
SELECT
name, project FROM staff
WHERE project REGEXP "[bB]";
Това запитване
извежда всички записи, в които името на проекта съдържа буквата 'b' бе текст з зависимост от регистъра
И последно по ред,
но не и по значение - е използването на повече от една таблица. Особеността е в
това, че използваните таблици могат да имат общи полета, с които те са свързани.
За да може да се указва точно за кое поле от таблицата става дума, се използва
запис от типа staff.project, където пред точката стои името на таблицата, а след
нея - името на полето. Вторият вариант - назначение на псевдоними за таблиците
за поголямо удобство. За това в списъка на таблиците имената на всяка таблица се
указват заедно с псевдоними - например: stuff x, projects y.
SELECT
x.name, x.project, x.description
FROM staff x, projects
x
WHERE
x.project = x.project_name;
В този пример се обединяват
таблиците staff и projects, при което се извежда името на сътрудника, проекта
над който работи и описание на този проект
+----------+-------------+------------------------------+
|
name | project | description
|
+----------+-------------+------------------------------|
| Jonathan |
Blue apples | Worldwide apple distribution |
| Fred | Secret data | Secret
data |
| John | Secret data | Secret data
|
+----------+-------------+------------------------------+
Обединявайки
всичко това в едно запитване ще получим следното:
SELECT DISTINCT
y.project_name, y.description, COUNT(x.name), FROM staff x, projects
yWHERE
y.project_name = x.project AND
y.project_name > 'Secret data'
AND
y.project_name LIKE "Wo__d%"
ORDER BY
project_name;
+--------------+--------------------------+-------------+
|
project_name | description | COUNT(name)
|
+--------------+--------------------------+-------------+
| Blue apples
| Worldwide apple delivery | 3
|
+--------------+--------------------------+-------------+
Това
запитване показва имената на проектите, техните описания и броя на сътрудниците,
които са заети в тези проекти, които не са секретни и описанията, на които
започват с 'Wo', след което има още два символа, после има - 'd' и нататък
продължава с какво да е, и сортира значението по взето
project_name.
Редактиране на данни
Редактиране на данни - това е
добавяне, премахване и промяна на данни. За изпълнението на тези операции се
използват командите INSERT, DELETE и UPDATE
Командата INSERT служи за
поствяне на записи в таблиците. Ето как можве да изглежда такова
запитване:
INSERT INTO staff VALUES ("Robert", "1980-05-07",
"2000-04-26",
"$100", "Secret data");
Възможно е също да се поставят и
отделни значения. В такъв случай е необходимо да се укаже, в кои полета трябва
да се въведат данните, при което оставените полета няма да бъдат запълнени - при
изпълнение на запитването SELECT те ще бъдат представени като NULL - специално
значение, означаващо че данни няма.
INSERT INTO staff(name,
date_of_birth) VALUES ("Jack", "1977-07-29");
SELECT * FROM
staff
WHERE name = "Jack";
+------+---------------+-------------+---------+---------+
|
name | date_of_birth | works_since | project | sallary
|
+------+---------------+-------------+---------+---------+
| Jack |
1997-07-29 | NULL | NULL | NULL
|
+------+---------------+-------------+---------+---------+
Премахването
на данни се извършва с командата DELETE. За това е нужно да се укаже таблицата и
(незадължително) условията, които трябва да удовлетворят записите , които следва
да се изтрият. Ако условията са пропуснати, тази команда, както и при SELECT, ще
извърши тази операция с всички записи - т.е. ще изчисти таблицата.
DELETE
FROM staff
WHERE
name = "Jack";
Промяната на данни се извършва с
помощта на командата UPDATE. Трябва да се укаже кои полета ще се променят, а
също (незадължително) условията, които трябва да удовлетворят записите , които
следва да се променят.
UPDATE staff
SET
works_since =
"2000-04-26"
sallary = "$200"
project = "Secret data"
WHERE
name =
"Jack";
Това запитване установява датата на започване на работа,
заплатата, и имената на всички проекти на Jack, които се намират в базата
данни.
Това е една малка част от езика SQL, необходим за работа с MySQL,
в частност при Web програмирането. За по подробна информация се обърнете към
официалната документация за SQL или за MySQL