Database
 sql >> Baza danych >  >> RDS >> Database

Ściągawka SQL:co to jest SQL, polecenia SQL i iniekcja SQL

Korzystanie ze strukturalnego języka zapytań (SQL) może początkowo wydawać się skomplikowane, ale później stanie się łatwiejsze i znacznie wygodniejsze. Potrzebujesz tylko praktyki.

Jeśli szukasz lepszych sposobów zarządzania danymi w swojej bazie danych lub po prostu jesteś ciekawy możliwości, jakie otwiera przed Tobą SQL, to trafiłeś we właściwe miejsce!

Dlaczego SQL?

Większość ludzi słyszała o SQL, ale może nie być w pełni zaznajomiona z jego działaniem. Możesz myśleć o SQL jako o specjalnym języku do komunikacji z bazami danych. Ponieważ komputery nie rozumieją języków naturalnych, takich jak angielski, potrzebujesz sposobu na tłumaczenie. I tutaj mamy SQ do nakazywania bazom danych, aby zaprezentować jakieś dane lub przechować nowe dane. Korzystają z niego różne bazy danych, takie jak Oracle, Microsoft SQL Server, IBM DB2, MySQL, PostgreSQL itp.

SQL pozwala nam pobierać, wstawiać, aktualizować i usuwać dane z baz danych za pomocą zapytań SQL. Zapytanie SQL używa słów zwanych klauzulami. Klauzule składają się z kilku elementów, które współpracują ze sobą, aby wykonać jakąś akcję na bazie danych. Trzy najpopularniejsze klauzule to SELECT, UPDATE i DELETE. Znajdziesz je w prawie każdej instrukcji SQL.

Weźmy najbardziej podstawową składnię zapytania:

SELECT * FROM table_name;

To zapytanie wybierze wszystkie dane przechowywane w określonej tabeli. Gwiazdka (*) wskazuje, że wszystkie kolumny w tej tabeli powinny zostać zwrócone, bez względu na to, ile ich ma tabela.

Ściągawka z zapytaniami SQL:jakie są polecenia?

Poniżej przedstawiamy wybór najczęściej używanych poleceń i klauzul SQL, których będziesz potrzebować podczas pracy z bazami danych. Zacznijmy.

SQL UTWÓRZ BAZĘ DANYCH

Niewiele można zrobić w SQL bez bazy danych, więc najlepiej jest to najpierw usunąć.

UTWÓRZ BAZĘ DANYCH to polecenie do tworzenia nowych baz danych na twoim serwerze. Na przykład chcesz zacząć od nowa bez istniejących tabel lub danych. Składnia jest poniżej:

CREATE DATABASE testDB;

SQL CREATE TABLE

Relacyjne bazy danych przechowują dane w tabelach. Aby więc korzystać z naszych baz danych, musimy stworzyć w nich tabele. Operacja ta jest ściśle związana ze zmianą struktury tabel, np. zmiana nazw kolumn, dodawanie nowych kolumn, usuwanie kolumn itp.

Ale zmiana tabeli jest możliwa tylko dla istniejącej. Dlatego będziesz musiał najpierw CREATE TABLE. Innym powiązanym poleceniem jest ADD COLUMN, które pozwoli Ci dodać dodatkowe kolumny do istniejącej tabeli.

CREATE TABLE [dbo].[Students](
	[Name] [nvarchar](100) NOT NULL,
	[Bio] [ntext] NULL,
	[DateOfBirth] [datetime] NOT NULL,
);

Tabela upuszczania SQL

Jest czas i miejsce na usuwanie tabel i nigdy nie jest dobrym pomysłem robienie tego dla kaprysu. DROP TABLE usuwa z bazy danych całą tabelę ze wszystkimi jej rekordami, indeksami i ograniczeniami.

Nie ma możliwości odzyskania stołu po jego upuszczeniu. Upewnij się, że potrzebujesz i chcesz usunąć ten konkretny stół. W przeciwnym razie jedyną opcją odzyskania danych jest przywrócenie ich z kopii zapasowej.

DROP TABLE [dbo].[Students];

WYBÓR SQL

Być może najczęściej używaną funkcją w SQL jest Select. Jego celem jest pobieranie danych z jednej lub więcej tabel do dalszej manipulacji i analizy. Ta funkcjonalność pozwala użytkownikom izolować i analizować podzbiory danych (tabele) poprzez określenie różnych atrybutów (filtrów).

Aby wybrać grupę wierszy, piszesz zapytanie, które określa, które wiersze mają zostać zwrócone, na podstawie co najmniej jednego filtra. Filtry są określone przez dowolną liczbę różnych funkcji lub wyrażeń w połączeniu z innymi operacjami zgodnie z Twoimi celami.

SELECT TOP (1000) [Name]
      ,[Phone]
      ,[Website]
      ,[Address]
      ,[City]
      ,[State]
      ,[Country]
      ,[Description]
      ,[Employees]
FROM [test].[dbo].[company]

WSTAWKA SQL

Funkcja INSERT wstawia wiersze danych do tabeli w SQL. Podstawowa struktura tej instrukcji określa tablicę dodawać dane do kolumn aby uwzględnić te dane. Następnie definiuje każdą wartość które należy umieścić w każdej kolumnie w tym wierszu. Jeśli dopiero uczysz się korzystać z SQL, może to wydawać się mylące, ale przy odrobinie praktyki staje się to znacznie łatwiejsze.

INSERT INTO [dbo].[company]
           ([Name]
           ,[Phone]
           ,[Website]
           ,[Address]
           ,[City]
           ,[State]
           ,[Country]
           ,[Description]
           ,[Employees])
     VALUES(
           'NameValue'
           ,'PhoneValue'
           ,'WebsiteValue'
           , 'AddressValue'
           , 'CityValue'
           , 'StateValue'
           , 'CountryValue'
           , 'DescriptionValue'
           , 2 ) 

AKTUALIZACJA SQL

Instrukcja UPDATE jest niezbędna, gdy chcemy zmienić dane przechowywane w tabelach. Jest to również jedna z najczęściej używanych instrukcji SQL, która ma zastosowanie zarówno do prostego wiersza, jak i wielu rekordów.

Domyślna składnia zawiera komponenty SET i WHERE. USTAW określa, w jaki sposób rekordy powinny być aktualizowane i GDZIE określa, które rekordy muszą zostać zaktualizowane. Bez klauzuli WHERE polecenie zaktualizuje wszystkie rekordy w tabeli.

UPDATE [dbo].[company]
   SET [Name] = <Name, nvarchar(max),>
      ,[Phone] = <Phone, nvarchar(max),>
      ,[Website] = <Website, nvarchar(max),>
      ,[Address] = <Address, nvarchar(max),>
      ,[City] = <City, nvarchar(max),>
      ,[State] = <State, nvarchar(max),>
      ,[Country] = <Country, nvarchar(max),>
      ,[Description] = <Description, nvarchar(max),>
      ,[Employees] = <Employees, int,>
 WHERE <Search Conditions,,>

SQL AVG

Funkcja AVG zwraca średnią wartości liczbowych w kolumnie jako liczbę całkowitą lub zmiennoprzecinkową. Podobnie jak w przypadku większości funkcji SQL, może być częścią instrukcji SELECT lub instrukcji INSERT. Gdy jest używany w instrukcji SELECT, musi znajdować się w nawiasach. Poniżej możesz zobaczyć przykład zapytania z funkcją AVG(), która musi zwracać średni wiek wszystkich pracowników:

SELECT avg(age) FROM employee;

SUM SQL

Funkcja SUMA zwraca sumę wszystkich wartości w kolumnie. Jest to bardzo pomocne, gdy masz do czynienia z wieloma kolumnami. Rezultatem byłby przegląd tej tabeli, który sumuje wszystkie zawarte w niej dane.

SELECT  Sum(Employees) as Sum, 
		AVG(Employees) as AVG,
		MAX(Employees) as Max, 
		MIN(Employees) as Min
FROM [test].[dbo].[company]

SQL ORDER BY

SQL ma wiele operatorów, ale jednym z najczęściej używanych jest ORDER BY. Sortuje dane zgodnie z określonym wyrażeniem. Dlatego jeśli Twój zestaw danych zawiera wiele rekordów o podobnych wartościach, zostaną one posortowane zgodnie z Twoimi preferencjami.

Innymi słowy, operator ORDER BY w SQL jest operatorem porównania. Umożliwia porównanie wartości z jednej kolumny z wartościami z innej kolumny i zwrócenie wyników w kolejności zgodnej z tym porównaniem.

Składnia to ORDER BY nazwa kolumny . Może to być pomocne, jeśli chcesz znaleźć informacje w uporządkowany sposób. Na przykład podczas wyszukiwania wierszy o tej samej wartości lub podczas określania, które wiersze są najpopularniejsze.

SELECT * FROM Readers
ORDER BY City;

GRUPA SQL WG

Operator GROUP BY jest bardzo ważnym i użytecznym narzędziem w SQL. Może służyć do grupowania wierszy danych, które mają jakąś wspólną cechę lub właściwość. Dlatego sortuje wiersze według co najmniej jednej kolumny określonej w zapytaniu. Klauzula ta jest zwykle umieszczana na końcu instrukcji SQL po wykonaniu wszystkich innych klauzul.

Typowym przypadkiem jest użycie funkcji GROUP BY do podsumowania danych w bazie danych. Instrukcja SELECT używa klauzuli WHERE do odfiltrowania niechcianych rekordów z zestawu wyników, a następnie używa klauzuli GROUP BY do grupowania powiązanych rekordów na podstawie określonej przez Ciebie cechy.

SELECT * FROM Readers
GROUP BY Country;

Iniekcja SQL

Każdy programista WWW słyszał o atakach typu SQL injection. Są plagą Internetu, pozostawiając głębokie rany w wielu popularnych witrynach i aplikacjach, których leczenie może zająć lata. Jeśli chcesz uniknąć padania ofiarą tych ataków, ważne jest, aby zrozumieć, czym one są, jak działają i co możesz zrobić, aby chronić się przed nimi w przyszłości.

Jeśli nie znasz ataków typu SQL injection, Twoja aplikacja internetowa może być na nie podatna. Zagrożenie jest na tyle poważne, że może wywołać nową technologię wykrywania takich ataków. Jednak poleganie na technologii nie wystarczy. Aby pomóc specjalistom ds. bezpieczeństwa, przygotowaliśmy przydatną ściągawkę, która w prostym języku angielskim wyjaśnia, jak działa wstrzyknięcie SQL.

Atakujący wykonują nieautoryzowane zapytania, aby uzyskać dostęp do poufnych danych, zmodyfikować istniejącą bazę danych lub usunąć dane. W ten sposób wstrzykiwanie SQL jest techniką wstrzykiwania kodu, która atakuje aplikacje oparte na danych, w których złośliwe instrukcje SQL są wstawiane do pola wejściowego w celu wykonania (zwykle za pomocą żądania HTTP).

Udany atak daje atakującemu dostęp do wszystkich serwerów baz danych tej witryny. Po wejściu do środka atakujący może odzyskać zawartość bazy danych, zmienić ją, a nawet zniszczyć. Dlatego tak ważne jest, aby programiści stron internetowych zrozumieli, w jaki sposób ich język programowania ułatwia lub utrudnia wstrzykiwanie SQL potencjalnym napastnikom.

Istnieją dwa główne typy ataków typu SQL injection:oparte na błędach i ślepy .

Atak oparty na błędach występuje, gdy programista nie oczyszcza danych wejściowych użytkownika. Powoduje to przekazywanie złych danych do interpretera i powodowanie błędów (lub nieoczekiwanego zachowania) dla legalnych użytkowników. Przyczyna ataku opartego na błędach jest często łatwa do zauważenia. Zostanie on zarejestrowany w dziennikach błędów lub pojawi się jako błąd podczas testowania.

Tego rodzaju ataki zdarzają się również z powodu złego procesu przeglądu kodu — jeśli jeden koder pozostawi w skrypcie kod debugowania, inni uruchomią go, nie wiedząc o możliwych problemach.

Jeśli zauważysz błędy bazy danych lub inne dziwne zachowanie na swojej stronie, możesz mieć problem z wstrzyknięciem SQL!

Wniosek

Oczywiście każdy specjalista od baz danych, który w pracy używa języka SQL, powinien znać wszystkie te polecenia na pamięć. Mimo to pomocne jest również posiadanie ich jako prostej ściągawki. Podziel się swoimi przemyśleniami i profesjonalnymi sztuczkami w sekcji komentarzy poniżej!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL, jak zaktualizować dane

  2. Wiele planów dla identycznego zapytania

  3. Porównywanie obiektów według wartości. Część 6:Wdrażanie równości struktury

  4. Jak wyeliminować zduplikowane wiersze w SQL?

  5. Uruchamiaj skrypty SQL w środowisku Multitenant z catcon.pl