SQL Асновы

Даведайцеся аб DDL, DML і злучэнні

Structured Query Language з'яўляецца адным з асноўных будаўнічых блокаў сучаснай архітэктуры базы дадзеных. SQL вызначае метады, якія выкарыстоўваюцца для стварэння і кіравання рэляцыйнымі базамі дадзеных на ўсіх асноўных платформах. На першы погляд, мова можа здацца страшным і складаным, але гэта не так ужо і складана.

Гэта ўвядзенне ў асновы ззаду SQL займае беглы погляд на некаторыя з асноўных каманд, якія выкарыстоўваюцца для стварэння і рэдагавання баз дадзеных.

Аб SQL

Правільнае вымаўленне SQL з'яўляецца спрэчным пытаннем у супольнасці баз дадзеных. У сваім стандарце SQL, Амерыканскі нацыянальны інстытут стандартаў заявіў, што афіцыйнае вымаўленне «эс чарзе эл.» Тым не менш, многія спецыялісты баз дадзеных ўзялі на слэнгу вымаўленне «працяг». Выбар за вамі.

SQL прыходзіць у шматлікіх разнавіднасцях. Базы дадзеных Oracle выкарыстоўваць свой уласны мова PL / SQL. Microsoft SQL Server выкарыстоўвае Transact-SQL. Усе варыяцыі заснаваныя на стандарце ANSI SQL прамысловасці. Гэта ўвядзенне выкарыстоўвае ANSI-сумяшчальныя каманды SQL, якія працуюць на любой сучаснай рэляцыйнай базы дадзеных.

DDL і DML

Каманды SQL можна падзяліць на два асноўных суб-моў. Мовы вызначэння дадзеных (DDL) змяшчае каманды, якія выкарыстоўваюцца для стварэння і знішчэння баз дадзеных і аб'ектаў базы дадзеных. Пасля таго, як структура базы дадзеных вызначаюцца з DDL, адміністратары баз дадзеных і карыстальнікі могуць выкарыстоўваць мову маніпулявання дадзеных (DML), каб ўставіць, здабываць і змяняць дадзеныя, якія змяшчаюцца ў ім.

Вызначэнне дадзеных Моўныя каманды

Вызначэнне мовы дадзеных выкарыстоўваюцца для стварэння і знішчэння баз дадзеных і аб'ектаў базы дадзеных. Гэтыя каманды ў асноўным выкарыстоўваюцца адміністратарамі баз дадзеных падчас ўстаноўкі і выдалення фаз праекта базы дадзеных. Вось паглядзіце на структуру і выкарыстанне чатырох асноўных каманд DDL:

СТВАРЫЦЬ. Ўстаноўка сістэмы кіравання базамі дадзеных на кампутары , дазваляе ствараць і кіраваць мноствам незалежных баз дадзеных. Напрыклад, вы можаце падтрымліваць базу дадзеных кантактаў з кліентамі для вашага аддзела продажаў і баз дадзеных персаналу для вашага аддзела кадраў. Каманда CREATE выкарыстоўваюцца для вызначэння кожнага з гэтых баз дадзеных на вашай платформе. Напрыклад, каманда:

CREATE DATABASE супрацоўнікаў

стварае пустую базу дадзеных з імем «супрацоўнікаў» на СКБД. Пасля стварэння базы дадзеных, наступны крок заключаецца ў стварэнні табліц, якія ўтрымліваюць дадзеныя. Іншы варыянт каманды CREATE можа выкарыстоўвацца для гэтай мэты. каманда:

CREATE TABLE personal_info (first_name паўкокс (20) не роўна нулю, last_name асмаленага (20) не роўна нулю, employee_id Int не нулявы)

ўсталёўвае табліцу пад назвай «personal_info» у бягучай базе дадзеных. У гэтым прыкладзе табліца складаецца з трох розных атрыбуту: first_name, last_name і EMPLOYEE_ID разам з некаторай дадатковай інфармацыяй.

ВЫКАРЫСТАННЕ. Каманда USE дазваляе паказаць базу дадзеных вы хочаце працаваць з у СКБД. Напрыклад, калі вы ў цяперашні час працуеце ў базе дадзеных продажаў і хочаце выпусціць некаторыя каманды, якія будуць уплываць на базу дадзеных персаналу, апярэдзіць іх з дапамогай наступнай каманды SQL:

супрацоўнікі USE

Важна, каб заўсёды быць у свядомасці базы дадзеных вы працуеце да выдачы каманд SQL, якія маніпулююць дадзенымі.

ALTER. Пасля таго як вы стварылі табліцу ў базе дадзеных, вы можаце змяніць яго вызначэнне. Каманда ALTER дазваляе ўносіць змены ў структуру табліцы без выдалення і аднаўлення. Паглядзіце на наступную каманду:

ALTER TABLE ADD personal_info зарплаты грошай нуль

Гэты прыклад дадае новы атрыбут да зарплаты personal_info таблічнага работніка. «Грошы» аргумент паказвае, што заработная плата работніка захоўваецца з выкарыстаннем даляраў і цэнтаў фармат. І, нарэшце, «нулявы» ключавое слова паказвае базу дадзеных, што гэта нармальна для гэтага поля не ўтрымліваюць ніякай каштоўнасці для любога дадзенага супрацоўніка.

ПАДЗЕННЕ. Апошняя каманда вызначэння дадзеных мовы, DROP, дазваляе выдаліць цэлыя аб'екты базы дадзеных з нашых СКБД. Напрыклад, калі мы хочам, каб назаўсёды выдаліць табліцу personal_info, якую мы стварылі, мы будзем выкарыстоўваць наступную каманду:

DROP TABLE personal_info

Акрамя таго, ніжэй каманда будзе выкарыстоўвацца, каб выдаліць усю базу дадзеных супрацоўнікаў

Супрацоўнікі DATABASE DROP

Выкарыстоўвайце гэтую каманду з асцярогай. Каманда DROP выдаляе цэлыя структуры дадзеных з базы дадзеных. Калі вы хочаце, каб выдаліць асобныя запісы, выкарыстоўвайце DELETE каманду Data Manipulation Language.

Маніпуляванне дадзенымі Моўныя каманды

Мовы маніпулявання дадзенымі (DML) выкарыстоўваецца для здабывання, ўстаўкі і змены інфармацыі ў базе дадзеных. Гэтыя каманды выкарыстоўваюцца ўсімі карыстальнікамі базы дадзеных падчас звычайнай працы з базай дадзеных.

Ўставілі. Каманда INSERT ў SQL выкарыстоўваецца для дадання запісаў у існуючую табліцу. Вяртаючыся да personal_info прыкладу з папярэдняга раздзела, уявіце сабе, што наш аддзел кадраў павінен дадаць новы супрацоўнік у сваю базу дадзеных. Вы можаце выкарыстоўваць каманду, падобную гэтай:

INSERT INTO personal_info значэння ( 'Bart', 'Сімпсанаў', 12345, $ 45000)

Звярніце ўвагу, што ёсць чатыры значэння, названыя для запісу. Яны адпавядаюць атрыбуты табліцы ў парадку іх былі вызначаны: first_name, last_name, EMPLOYEE_ID і заработнай платы.

SELECT. SELECT, каманда з'яўляецца найбольш часта выкарыстоўванай камандай у SQL. Гэта дазваляе карыстальнікам базы дадзеных, каб атрымаць канкрэтную інфармацыю, якую яны хочуць з аператыўнай базы дадзеных. Зірніце на некалькі прыкладаў, зноў-такі з дапамогай табліцы personal_info з базы дадзеных супрацоўнікаў.

Каманда паказана ніжэй здабывае ўсю інфармацыю, якая змяшчаецца ў табліцы personal_info. Звярніце ўвагу, што зорачка выкарыстоўваецца ў якасці шаблону ў SQL. Гэта літаральна азначае «выбраць усе з табліцы personal_info.»

SELECT * FROM personal_info

Акрамя таго, карыстальнікі могуць захацець абмежаваць атрыбуты, якія здабываюцца з базы дадзеных. Напрыклад, аддзел кадраў можа запатрабаваць спіс прозвішчаў усіх супрацоўнікаў у кампаніі. Наступная каманда SQL будзе атрымліваць толькі тую інфармацыю:

ВЫБАР last_name АД personal_info

Прапанова WHERE можа быць выкарыстана для абмежавання запісаў, вымаемых на тыя, якія адказваюць вызначаным крытэрам. Генеральны дырэктар можа быць зацікаўлены ў разглядзе кадравага ўліку ўсіх высокааплатных супрацоўнікаў. Наступная каманда здабывае ўсе дадзеныя, якія змяшчаюцца ў personal_info для запісаў, якія маюць значэнне заробкі больш, чым $ 50000:

SELECT * FROM personal_info WHERE зарплата> $ 50000

UPDATE. Каманда UPDATE можа выкарыстоўвацца для змены інфармацыі, якая змяшчаецца ў табліцы, альбо ў масе ці паасобку. Выкажам здагадку, кампанія прадастаўляе ўсім супрацоўнікам 3 адсотка ў кошту жыцця павелічэнне іх заработнай платы штогод. Наступная каманда SQL можа выкарыстоўвацца, каб хутка ўжыць гэта для ўсіх супрацоўнікаў, якія захоўваюцца ў базе дадзеных:

UPDATE personal_info SET зарплаты = аклад * 1,03

Калі новы супрацоўнік Барт Сімпсан дэманструе прадукцыйнасць вышэй і па-за службовага абавязку, кіраўніцтва жадае прызнаць яго зорныя дасягненні з рейз $ 5,000. Прапанова WHERE можа быць выкарыстана вылучыць Барт для гэтага павышэння:

UPDATE personal_info SET зарплаты = аклад + $ 5000 WHERE employee_id = 12345

DELETE. Нарэшце, давайце паглядзім на каманду Выдаліць. Вы ўбачыце, што сінтаксіс гэтай каманды падобны на іншых камандах DML. На жаль, наш апошні справаздачу карпаратыўных даходаў не цалкам адпавядаюць чаканням і бедныя Барт быў звольнены. Выдаліць каманда з ИНЕКЕМ можа быць выкарыстана для выдалення яго запісы з табліцы personal_info:

DELETE FROM personal_info ГДЕ employee_id = 12345

JOIN і

Зараз, калі вы пазнаёміліся з асновамі SQL, прыйшоў час перайсці да адной з самых магутных канцэпцый мовы можа прапанаваць-Злучыць заяву. Аб'яднанне аператар дазваляе аб'яднаць дадзеныя ў некалькіх табліцах, каб эфектыўна апрацоўваць вялікія аб'ёмы дадзеных. Гэтыя заявы, дзе сапраўдная сіла базы дадзеных пражывае.

Для таго, каб вывучыць магчымасць выкарыстання базавых Рэгіструючы аперацыі аб'яднаць дадзеныя з двух табліц, да прыкладу з дапамогай табліцы personal_info і дадаць дадатковую табліцу ў сумесь. Выкажам здагадку, у вас ёсць табліца з імем DISCIPLINARY_ACTION, які быў створаны наступнай заявай:

CREATE TABLE DISCIPLINARY_ACTION (action_id Int не нулявы, employee_id Int не нулявы, каментары паўкокс (500))

У дадзенай табліцы прыведзены вынікі дысцыплінарных спагнанняў на супрацоўнікаў кампаніі. Вы заўважыце, што яна не ўтрымлівае ніякай інфармацыі пра супрацоўніка, акрамя ліку супрацоўнікаў. Лёгка ўявіць сабе шмат сцэнарыяў, у якіх вы, магчыма, захочаце аб'яднаць інфармацыю з DISCIPLINARY_ACTION і табліц personal_info.

Выкажам здагадку, вы даручана стварыць справаздачу, у якім пералічаныя дысцыплінарныя меры, прынятыя ў дачыненні да ўсіх супрацоўнікаў з заробкам больш $ 40 000. Выкарыстанне аперацыі JOIN, у дадзеным выпадку, з'яўляецца простым. Мы можам атрымаць гэтую інфармацыю, выкарыстоўваючы наступную каманду:

ВЫБАР personal_info.first_name, personal_info.last_name, disciplinary_action.comments З personal_info, DISCIPLINARY_ACTION ГДЕ personal_info.employee_id = disciplinary_action.employee_id І personal_info.salary> 40000

Код вызначае дзве табліцы, якія мы хочам далучыцца да ЕКУ, а затым ўключае ў сябе заяву, у сказе WHERE, каб абмежаваць вынікі запісаў, якія мелі адпаведныя ідэнтыфікатары супрацоўнікаў і задавальнялі вылучаныя крытэрыі акладу больш, чым $ 40 000.