Кампутары, Праграмнае забеспячэнне
Як складаць SQL-запыты - падрабязныя прыклады
Кожны з нас рэгулярна сутыкаецца і карыстаецца рознымі базамі дадзеных. Калі мы выбіраем адрас электроннай пошты, мы працуем з базай дадзеных. Базы дадзеных выкарыстоўваюць пошукавыя сэрвісы, банкі для захоўвання дадзеных аб кліентах і г.д.
Але, нягледзячы на пастаяннае выкарыстанне баз дадзеных, нават для многіх распрацоўшчыкаў праграмных сістэм застаецца шмат «белых плям» з-за рознага тлумачэння адных і тых жа тэрмінаў. Мы дамо кароткае вызначэнне асноўных тэрмінаў баз дадзеных перад разглядам мовы SQL. Такім чынам.
База дадзеных - файл або набор файлаў для захоўвання упарадкаваных структур дадзеных і іх узаемасувязяў. Вельмі часта базай дадзеных называюць сістэму кіравання базай дадзеных (СКБД). База дадзеных - гэта толькі сховішча інфармацыі ў пэўным фармаце і можа працаваць з рознымі СКБД.
Табліца - уявім сабе тэчку, у якой захоўваюцца дакументы, згрупаваныя па вызначаным прыкмеце, напрыклад спіс заказаў за апошні месяц. Гэта і ёсць табліца ў кампутарнай базе дадзеных. Асобная табліца мае сваё ўнікальнае імя.
Тып дадзеных - від інфармацыі, дазволенай для захоўвання ў асобным слупку або радку. Гэта могуць быць колькасці або тэкст пэўнага фармату.
Слупок і радок - усе мы працавалі з электроннымі табліцамі, у якіх таксама прысутнічаюць радкі і слупкі. Любая рэляцыйная база дадзеных працуе з табліцамі аналагічным чынам. Радкі часам называюць запісамі.
Першасны ключ - кожны радок табліцы можа мець адзін або некалькі слупкоў для яе ўнікальнай ідэнтыфікацыі. Без першаснага ключа вельмі цяжка выконваць абнаўленне, змяненне і выдаленне патрэбных радкоў.
Што такое SQL?
Мова запытаў SQL (англ. Structured Query Language - мова структураваных запытаў) быў распрацаваны толькі для працы з базамі дадзеных і ў сапраўдны момант з'яўляецца стандартам для ўсіх папулярных СКБД. Сінтаксіс мовы складаецца з невялікай колькасці аператараў і просты ў вывучэнні. Але, нягледзячы на знешнюю прастату, ён дазваляе стварэнне sql запытаў для складаных аперацый з БД любога памеру.
З 1992 г. існуе агульнапрыняты стандарт, званы ANSI SQL. Ён вызначае базавы сінтаксіс і функцыі аператараў і падтрымліваецца ўсімі лідэрамі рынку СКБД, такімі як ORACLE Microsoft SQL Server. Разгледзець усе магчымасці мовы ў адной невялікай артыкуле немагчыма, таму мы коратка разгледзім толькі асноўныя SQL запыты. Прыклады наглядна паказваюць прастату і магчымасці мовы:
- стварэнне баз і табліц;
- выбарка дадзеных;
- даданне запісаў;
- мадыфікацыя і выдаленне інфармацыі.
Тыпы дадзеных SQL
Усе слупкі ў табліцы базы дадзеных захоўваюць адзін тып дадзеных. Тыпы дадзеных у SQL такія ж, як і ў іншых мовах праграмавання.
| тып дадзеных | апісанне |
| INT | цэлыя лікі |
| REAL | Колькасці з якая плавае коскі |
| TEXT | Знакавая радок з зменнай даўжынёй |
| DATE | sql запыт "дата" ў розных фарматах |
| TIME | час |
| CHAR | Тэкставыя радкі фіксаванай даўжыні |
Ствараем табліцы і базы дадзеных
Ствараць новыя базы, табліцы і іншыя запыты ў SQL можна двума спосабамі:
- Аператарамі SQL праз кансоль СКБД
- Выкарыстоўваючы інтэрактыўныя сродкі адміністравання, якія ўваходзяць у склад сервера баз дадзеных.
Ствараецца новая база дадзеных аператарам CREATE DATABASE <найменне базы дадзеных>; . Як бачым, сінтаксіс просты і лаканічны.
Табліцы ўнутры базы дадзеных ствараем аператарам CREATE TABLE з наступнымі параметрамі:
- найменне табліцы
- імёны і тыпы дадзеных слупкоў
У якасці прыкладу створым табліцу Commodity з наступнымі слупкамі:
| слупок | апісанне |
| commodity_id | ID прадукту |
| vendor_id | ID пастаўшчыка (ключ знешняй табліцы Vendors) |
| commodity_name | найменне прадукту |
| commodity_price | Кошт |
| commodity_desc | апісанне |
Ствараем табліцу:
CREATE TABLE Commodity
(commodity_id CHAR (15) NOT NULL,
vendor_id CHAR (15) NOT NULL,
commodity_name CHAR (254) NULL,
commodity_price DECIMAL (8,2) NULL,
commodity_desc VARCHAR (1000) NULL);
Табліца складаецца з пяці слупкоў. Пасля назвы ідзе тып дадзеных, слупкі падзяляюцца коскамі. Значэнне слупка можа прымаць пустыя значэння (NULL) або павінна быць абавязкова запоўнена (NOT NULL), і гэта вызначаецца пры стварэнні табліцы.
Выбарка дадзеных з табліцы
Аператар выбаркі дадзеных - самыя часта выкарыстоўваюцца SQL запыты. Для атрымання інфармацыі неабходна ўказаць, што мы хочам выбраць з такой табліцы. Спачатку просты прыклад:
SELECT commodity_name FROM Commodity
Пасля аператара SELECT паказваем імя слупка для атрымання інфармацыі, а FROM вызначае табліцу.
Вынікам выканання запыту будуць усе радкі табліцы са значэннямі Commodity_name ў тым парадку, у якім яны былі ўнесены ў базу дадзеных г.зн. без усялякай сартавання. Для парадкавання выніку выкарыстоўваецца дадатковы аператар ORDER BY.
Для запыту па некалькіх палях пералічваем іх праз коску, як у наступным прыкладзе:
SELECT commodity_id, commodity_name, commodity_price FROM Commodity
Ёсць магчымасць атрымаць як вынік запыту значэнне ўсіх слупкоў радка. Для гэтага выкарыстоўваецца знак "*":
SELECT * FROM Commodity
- Дадаткова SELECT падтрымлівае:
- Сартаванне дадзеных (аператар ORDER BY)
- Выбар згодна з умовамі (WHERE)
- Групоўку тэрмін (GROUP BY)
дадаем радок
Для дадання радкі ў табліцу выкарыстоўваюцца SQL запыты з аператарам INSERT. Даданне можа вырабляцца трыма спосабамі:
- дадаем новую цэлую радок;
- частка радка;
- вынікі запыту.
Для дадання поўнай радкі неабходна ўказаць імя табліцы і значэння слупкоў (палёў) новага радка. Прывядзём прыклад:
INSERT INTO Commodity VALUES ( '106', '50', 'Coca-Cola', '1.68', 'No Alcogol,)
Прыклад дадае ў табліцу новы тавар. Значэння паказваюцца пасля VALUES для кожнага слупка. Калі няма адпаведнага значэння для слупка, то неабходна ўказваць NULL. Стоўбцы запаўняюцца значэннямі ў парадку, паказаным пры стварэнні табліцы.
У выпадку дадання толькі часткі радка неабходна відавочна паказаць найменні слупкоў, як у прыкладзе:
INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)
VALUES ( '106', '50', 'Coca-Cola',)
Мы ўвялі толькі ідэнтыфікатары тавару, пастаўшчыка i яго назву, а астатнія поля адставіў пустымі.
Даданне вынікаў запыту
У асноўным INSERT выкарыстоўваецца для дадання радкоў, але можа выкарыстоўвацца і для дадання вынікаў аператара SELECT.
змена дадзеных
Для змены інфармацыі ў палях табліцы базы дадзеных неабходна выкарыстоўваць аператар UPDATE. Аператар можа прымяняцца двума спосабамі:
- Абнаўляюцца ўсе радкі ў табліцы.
- Толькі для пэўнай радка.
UPDATE складаецца з трох асноўных элементаў:
- табліца, у якой неабходна вырабляць змены;
- імёны палёў і іх новыя значэння;
- ўмовы выбару радкоў для змены.
Разгледзім прыклад. Дапусцім, у тавара з ID = 106 змяніўся кошт, таму гэты радок неабходна абнавіць. Пішам наступны аператар:
UPDATE Commodity SET commodity_price = '3.2' WHERE commodity_id = '106'
Мы паказалі імя табліцы, у нашым выпадку Commodity, дзе будзе вырабляцца абнаўленне, затым пасля SET - новае значэнне слупка і знайшлі патрэбную запіс, паказаўшы ў WHERE патрэбнае значэнне ID.
Для змены некалькіх слупкоў пасля аператара SET паказваюцца некалькі пар слупок-значэнне, падзеленых коскамі. Глядзім прыклад, у якім абнаўляецца найменне і кошт тавару:
UPDATE Commodity SET commodity_name = 'Fanta', commodity_price = '3.2' WHERE commodity_id = '106'
Для выдалення інфармацыі ў слупку можна прысвоіць яму значэнне NULL, калі гэта дазваляе структура табліцы. Неабходна памятаць, што NULL - гэта менавіта «ніякае» значэнне, а не нуль ў выглядзе тэксту ці лікі. Выдалім апісанне тавару:
UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = '106'
выдаленне радкоў
SQL запыты на выдаленне радкоў у табліцы выконваюцца аператарам DELETE. Ёсць два варыянты выкарыстання:
- ў табліцы выдаляюцца пэўныя радкі;
- выдаляюцца ўсе радкі ў табліцы.
Прыклад выдалення аднаго радка з табліцы:
DELETE FROM Commodity WHERE commodity_id = '106'
Пасля DELETE FROM паказваем імя табліцы, у якой будуць выдаляцца радка. Аператар WHERE змяшчае ўмова, па якім будуць выбірацца радка для выдалення. У прыкладзе мы выдаляем радок тавару з ID = 106. Ўказваць WHERE вельмі важна бо пропуск гэтага аператара приведт да выдалення ўсіх радкоў у табліцы. Гэта адносіцца і да змены значэння палёў.
У аператару DELETE не пазначаюцца найменні слупкоў і метасімвалы. Ён цалкам выдаляе радкі, а выдаліць асобны слупок ён не можа.
Выкарыстанне SQL ў Microsoft Access
Microsoft Access звычайна выкарыстоўваецца ў інтэрактыўным рэжыме для стварэння табліц, баз дадзеных, для кіравання, змены, аналізу дадзеных у базе дадзеных і з мэтай укараніць запыты SQL Access праз зручны інтэрактыўны канструктар запытаў (Query Designer), выкарыстоўваючы які можна пабудаваць і адразу ж выканаць аператараў SQL любой складанасці.
Таксама падтрымліваецца рэжым доступу да сервера, пры якім СКБД Access можа выкарыстоўвацца як генератар SQL-запытаў да любога ODBC крыніцы дадзеных. Гэтая магчымасць дазваляе прыкладанням Access ўзаемадзейнічаць з базамі дадзеных любога фармату.
пашырэння SQL
Паколькі SQL запыты не маюць ўсіх магчымасцяў працэдурных моў праграмавання, такіх як цыклы, галінавання і г.д., вытворцы СКБД распрацоўваюць свой варыянт SQL з пашыранымі магчымасцямі. У першую чаргу гэта падтрымка захоўваемых працэдур і стандартных аператараў працэдурных моў.
Найбольш распаўсюджаныя дыялекты мовы:
- Oracle Database - PL / SQL
- Interbase, Firebird - PSQL
- Microsoft SQL Server - Transact-SQL
- PostgreSQL - PL / pgSQL.
SQL ў Інтэрнэт
СКБД MySQL распаўсюджваецца пад вольнай ліцэнзіяй GNU General Public License. Маецца камерцыйная ліцэнзія з магчымасцю распрацоўкі заказных модуляў. Як складовая частка ўваходзіць у найбольш папулярныя зборкі Інтэрнэт-сервераў, такіх як XAMPP, WAMP і LAMP, і з'яўляецца самай папулярнай СКБД для распрацоўкі прыкладанняў у сетцы Інтэрнэт.
Была распрацавана кампаніяй Sun Microsystems і ў сапраўдны момант падтрымліваецца карпарацыяй Oracle. Падтрымліваюцца базы дадзеных памерам да 64 тэрабайт, стандарт сінтаксісу SQL: 2003 гады, рэплікацыя баз дадзеных і хмарных сэрвісаў.
Similar articles
Trending Now