13 най -важни SQL команди, които всеки програмист трябва да знае

13 най -важни SQL команди, които всеки програмист трябва да знае

Базите данни управляват съвременната мрежа. Всеки голям или динамичен уебсайт използва база данни по някакъв начин и когато се комбинира с Структуриран език на заявки (SQL) , възможностите за манипулиране на данни наистина са безкрайни. Ако вече знаете SQL, не забравяйте да проверите тези умения за програмиране, които трябва да знаят всички разработчици на уебсайтове.





Днес ще ви покажа някои от основни SQL команди трябва да знаете като програмист.





Има много имена за данни, върнати от таблица на база данни. Данните обикновено се наричат Редове , Записи , или Кортежи . Ще използвам тези термини взаимозаменяемо в цялата статия.





Предговор

Всички примери днес ще се основават на четири измислени таблици. The клиент таблицата съдържа името и възрастта на клиентите:

The височини таблицата съдържа името и ръста на всяко лице:



The персонал таблицата съдържа името и възрастта на служителите - точно същото като таблицата на клиентите:

Финалната маса се обади хора съдържа името и възрастта на хората, точно както таблиците за клиенти и персонал:





1. Изберете

The изберете изявлението е най -простото и е важно да го разберете, тъй като той подкрепя почти всички останали команди. Смята се за най -добра практика да пишете запазените си SQL думи с главни букви, тъй като прави командата по -лесна за четене и разбиране.

Както подсказва името му, select е свикнал изберете данни от база данни. Ето най -простата употреба:





SELECT * FROM table;

Това има две части. Първата част ( SELECT * ) указва кои колони искате да изберете. Звездичката показва, че искате да изберете всички колони в таблицата. Втората част ( ОТ маса ) казва на вашия механизъм за бази данни, откъдето искате да извлечете тези данни. Заменете „таблица“ с името на таблицата на вашата база данни.

Този избор е известен като „изберете звезда“. Използването на звездичката е добър начин да разберете какви данни има в таблица, но не ви препоръчвам да ги използвате за произволен код. Когато използвате избрана звезда, зависи от механизма на базата данни да ви представи желаните от вас данни. Нямате никакъв контрол върху реда на връщане на данните, така че ако някой добави нова колона към таблицата, може да откриете, че вашите променливи на езика ви за програмиране вече не представляват правилните данни. За щастие има решение.

Можете изрично да посочите кои колони искате да извлечете, например:

SELECT age, name FROM people;

Тази заявка извлича колоните „възраст“ и „име“ от таблицата „хора“. Това, че сте изрични, може да бъде леко досадно, ако имате много данни, но това ще намали проблемите в бъдеще, заедно с улесняването на разбирането на вашия SQL от бъдещите програмисти.

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

SELECT age, '1234' FROM people;

Всеки низ в единични кавички ще бъде върнат, вместо да съвпада с името на колона.

2. Къде

Командата select е отлична за извличане на данни, но какво ще стане, ако искате да филтрирате резултатите малко повече? Какво ще кажете за извличане само на хора със сини очи? Ами хората, родени през януари, които работят като механици? Това е мястото, където където влиза команда. Това ви позволява да приложите условия към избраното и просто го добавяте в края на израза:

SELECT age, name FROM people WHERE age > 10;

Тази заявка вече е ограничена до хора на възраст над 10 години. Можете да комбинирате множество условия, като използвате И оператор:

SELECT age, name FROM people WHERE age > 10 AND age <20;

The И команда работи точно както в английския език: прилага друго условие към израза. В този пример върнатите данни биха били записи на възраст между 10 и 20. Тъй като няма съвпадащи резултати, не се връщат данни.

как да поправим ред мъртви пиксели на телевизора

Друга команда, която може да се използва заедно с това, е ИЛИ . Ето един пример:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Тази заявка връща записи, при които възрастта е повече от 10 или името е равно на „Джо“. Забележете как има само един знак за равенство? Повечето езици за програмиране използват двойно равно (==), за да проверят за еквивалентност. Това не е необходимо за по-голямата част от механизмите за бази данни (но може много за всяка среда, затова първо проверете).

3. Поръчка

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

SELECT name, age FROM people ORDER BY age DESC;

Трябва да посочите колоната и реда, който може да бъде ASC за възходящо или DESC за спускане. Можете да поръчате по няколко колони по следния начин:

SELECT name, age FROM people ORDER BY name ASC, age DESC

ПОДРЕДЕНИ ПО е може би най -полезната, когато се комбинира с други команди. Не всички заявки ще връщат данни по логичен или подреден начин - тази команда ви позволява да промените това.

4. Присъединете се

The присъединяване командата е свикнала да присъединяване свързани данни, съхранявани в една или повече таблици. Вие присъединяване втората таблица към първата таблица и посочете как са свързани данните. Ето един основен пример:

актуализиране на windows xp до windows 7 безплатно
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Тук се случват няколко неща. Трябва да започнете със синтаксиса „LEFT JOIN“, който посочва, че искате да се присъедините към таблица, като използвате съединение от тип left. След това посочете таблицата, към която искате да се присъедините (височини). The ИЗПОЛЗВАНЕ (име) синтаксисът гласи, че колоната „име“ може да се намери в двете таблици и че това трябва да се използва като ключ за обединяване на таблиците заедно.

Не се притеснявайте, ако вашите колони имат различни имена във всяка таблица. Можете да използвате „ON“ вместо „USING“:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Изразът on изрично посочва кои колони да се въвеждат. Има много видове присъединяване и ще отнеме много време, за да влезем в подробности за всеки от тях, така че ето кратко резюме на тяхното използване:

  • (ВЪТРЕШНО) ПРИСЪЕДИНЯВАНЕ - Връща редове с съвпадение в двете таблици.
  • НАЛЯВО (ВЪНШНО) ПРИСЪЕДИНЯВАНЕ - Връща всички редове от лявата таблица, с всички съвпадения от дясната таблица. Ако няма съвпадения, записите от лявата таблица все още се връщат.
  • ПРАВО (ВЪНШНО) ПРИСЪЕДИНЯВАНЕ - Това е обратното на лявото съединение: всички редове от дясната таблица се връщат, заедно с всички съвпадения в лявата таблица.
  • ПЪЛНО (ВЪНШНО) ПРИСЪЕДИНЯВАНЕ - Връща всички записи с съвпадение в двете таблици.

Синтаксисът „INNER“ или „OUTER“ не е задължителен. Може да направи нещата по -лесни за разбиране, но не е нужно да го посочвате през по -голямата част от времето.

5. Псевдоними

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

SELECT A.age FROM people A;

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

SELECT people.age FROM people;

Вместо да се налага да въвеждате дълго име на таблица, можете да въведете проста и лесна за запомняне буква - но какъв е смисълът? Е, ако избирате от повече от една таблица, лесно можете да се объркате кои колони принадлежат към коя таблица. Ако и двете ви таблици имат колони със същото име, вашата заявка към базата данни може дори да не успее да се изпълни без изрично препращане към името или псевдонима на таблицата. Ето пример с две таблици:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

И ето същата заявка с псевдоними:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Таблицата на персонала е дадена с псевдоним на „А“, а на таблицата с клиенти е дадена с псевдоним на „В“. Псевдонимите на таблици наистина помагат да се направи кодът ви по -лесен за разбиране и намалява количеството въвеждане, което трябва да направите.

Можете също да преименувате колона с псевдоним, като използвате командата 'AS':

SELECT age AS person_age FROM people;

Когато тази заявка се изпълнява, колоната вече ще се нарича „person_age“ вместо „age“.

6. Съюз

Съюз е страхотна команда. Позволява ви да добавяте редове един към друг. За разлика от съединенията, които добавят съвпадащи колони, съюзът може да добавя несвързани редове, при условие че имат същия брой и име на колони. Ето как го използвате:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Можете да мислите за обединението като начин за комбиниране на резултатите от две заявки. Съюзът ще връща резултати само когато има уникален ред между двете заявки. Можете да използвате синтаксиса „UNION ALL“, за да върнете всички данни, независимо от дубликатите:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Забележете как се променя редът на редовете? Union работи по най -ефективния начин, така че върнатите данни могат да варират по ред.

Възможен случай на използване за обединение е междинна сума: можете да обедините заявка за общата сума към заявка за отделните суми за конкретен сценарий.

7. Вмъкване

Вече знаете всичко за извличането на данни от база данни, но какво ще кажете за вмъкването им? Това е мястото, където вмъкване идва команда. Ето пример:

INSERT INTO people(name, age) VALUES('Joe', 102);

Трябва да посочите името на таблицата (хора) и колоните, които искате да използвате (име и възраст). След това синтаксисът „VALUES“ се използва за предоставяне на стойностите за вмъкване. Те трябва да са в същия ред като колоните, които са посочени по -рано.

Не можете да посочите клауза where за вмъквания и трябва да се уверите, че следвате всички необходими ограничения на таблицата, които са налице.

8. Актуализация

След като вмъкнете някои данни, естествено е да се наложи да промените конкретни редове. Ето и актуализация команден синтаксис:

UPDATE people SET name = 'Joe', age = 101;

Трябва да посочите таблицата, която искате да промените, и след това да използвате синтаксиса 'SET', за да посочите колоните и новите им стойности. Този пример е добър, но ще актуализира всеки отделен запис - нещо, което не винаги е желателно!

За да бъдете по -конкретни, можете да използвате клаузите „WHERE“, точно както при извършване на избор:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Можете дори да зададете множество условия, като използвате „И“ и „ИЛИ“:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Забележете как скобите се използват за ограничаване на условията.

как да използвате флаш устройство

9. Upsert

Ами сега! е странно звучаща дума, но е изключително полезна команда. Да речем, че имате ограничение на масата си и сте посочили, че винаги искате само записи с уникални имена - не искате да съхранявате два реда със същото име, например. Ако се опитате да вмъкнете няколко стойности на „Joe“, вашият механизъм за бази данни ще изхвърли грешка и ще откаже да го направи (съвсем основателно). UPSERT ви позволява да актуализирате запис, ако той вече съществува. Това е изключително полезно! Без тази команда ще трябва да напишете много логика, за да проверите първо дали съществува запис, да го вмъкнете, ако не съществува, в противен случай да извлечете правилния първичен ключ и след това да актуализирате.

За съжаление, надстройките се реализират по различен начин в различни двигатели на бази данни. PostgreSQL едва наскоро придоби тази способност, докато MySQL я притежава от доста време. Ето синтаксиса на MySQL за справка:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Забележете как това е по същество актуализация и вмъкване, което може да се обобщи като „актуализация, ако вмъкването не е успешно“.

10. Изтриване

Изтрий се използва за изцяло премахване на записи - може да бъде доста вредно, ако се злоупотребява! Основният синтаксис е много лесен за използване:

DELETE FROM people;

Подобно на повечето други команди, това ще изтрие всичко ! Трябва да използвате къде, за да го ограничите до малко по -разумен брой редове - в идеалния случай един:

DELETE FROM people WHERE name = 'Joe';

Ако разработвате система, често е разумно да приложите „меко изтриване“. Всъщност никога не изпълнявате командата delete, по -скоро създавате изтрита колона и след това проверявате тази колона в избраните от вас възможности - тя може да избегне много потенциални смущения, ако можете бързо и лесно да извлечете предполагаемо изтрити записи. Това обаче не замества правилното архивиране.

11. Създайте таблица

The създайте таблица команда се използва за създаване на таблици. Това е още един много прост:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Забележете как имената и ограниченията на колоните са в скоби, а на колоните е даден подходящ тип данни. Първичен ключ е посочен, както се изисква във всеки добър дизайн на база данни.

12. Промяна на таблицата

The промяна на таблицата команда се използва за промяна на структурата на таблица. Това е малко ограничено, тъй като вашата база данни няма да ви позволи да променяте таблица, ако съществуващите данни биха причинили конфликт - промяна на низ на цяло число, например. В тези случаи първо коригирайте данните, след което променете таблицата. Ето един пример:

ALTER TABLE people ADD height integer;

Този пример добавя колона, наречена „височина“ от тип integer към таблицата с хора. Всъщност няма ограничение за това, което можете да промените.

13. Drop Table

Последната команда е падаща маса . Мислете за това като за изтриване, но вместо да изтриете един запис, той премахва всеки отделен запис заедно с таблицата! Ето как го използвате:

DROP TABLE people;

Това е доста драстична команда и няма причина да е необходимо да се програмира във вашата система. То трябва да се извършва само ръчно в по -голямата част от случаите и може да бъде много разрушителни.

Това е всичко за днес. Надявам се, че сте научили някои полезни трикове! Можете да научите как да направете уебсайт , и след това използвайте новооткритите си умения, за да го направите динамичен - просто се уверете, че не допускате тези грешки или го оставяте уязвим за SQL инжектиране. Ако не сте сигурни, че трябва да научите SQL, обмисляли ли сте статичен генератор на сайтове?

Защо не оставите коментар по -долу с любимите си SQL съвети и трикове?

Кредити за изображения: HYS_NP/Shutterstock

Дял Дял Туит електронна поща Струва ли си да надстроите до Windows 11?

Windows е преработен. Но достатъчно ли е това, за да ви убеди да преминете от Windows 10 към Windows 11?

Прочетете Напред
Свързани теми
  • Програмиране
  • Програмиране
  • SQL
За автора Джо Кобърн(136 статии са публикувани)

Джо е завършил компютърни науки от университета в Линкълн, Великобритания. Той е професионален разработчик на софтуер и когато не лети с дронове или пише музика, често може да бъде намерен да прави снимки или да произвежда видеоклипове.

Още от Джо Кобърн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате