Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wprowadzenie do poleceń SQL

W dzisiejszym świecie zwiększonej cyfryzacji, dużych zbiorów danych i przetwarzania w chmurze zarządzanie danymi jest jedną z najważniejszych umiejętności, jakie może posiadać inżynier oprogramowania. W tym celu jednym z najpotężniejszych narzędzi bazodanowych jest SQL.

SQL (Structured Query Language) to standardowy język programowania używany do manipulowania obiektami struktury danych. Działają na danych zawartych w systemie zarządzania relacyjnymi bazami danych (RDBMS). Niektóre dobrze znane RDBMS to MySQL i PostgreSQL.

W tym przewodniku dowiesz się o podzbiorach języka SQL oraz o tym, jak używać podstawowych poleceń SQL, takich jak SELECT , INSERT , UPDATE i DELETE .

Podzbiory SQL

Poniższa lista zawiera różne podzbiory językowe różnych poleceń SQL. Każdy podzbiór ma swoją własną funkcję i cel.

  • Język definicji danych (DDL):Pozwala to na tworzenie, usuwanie i aktualizowanie definicji schematu bazy danych (mianowicie tabel i indeksów) bez faktycznego manipulowania danymi w tabelach bazy danych.
  • Język zapytań o dane (DQL):DQL służy do pobierania danych z bazy danych za pomocą SELECT oświadczenie.
  • Język manipulacji danymi (DML):Ten podjęzyk pozwala na manipulację danymi w bazie danych za pomocą INSERT , UPDATE i DELETE oświadczenia.

W tym przewodniku wykorzystano przykładową bazę danych dla szkoły w celu dalszego zademonstrowania poleceń SQL dla każdego z wymienionych powyżej podzbiorów. Szkolna baza danych zawiera kilka tabel, dla uczniów, kursów, ocen i tak dalej. Definicja Student tabela zawiera kolumny dla SSNumber ucznia , Firstname i Lastname oraz definicję CourseTaken tabela zawiera kolumny dla SSNumber , CourseId , NumericGrade i YearTaken .

W przykładzie założono, że w szkole jest trzech uczniów, z których każdy ukończył dwa kursy. Przykładowe dane są pokazane w poniższej tabeli:

SSNnumer Nazwisko Imię Identyfikator kursu NumericGrade Rok podjęty
1111111111 Kowalski Jan CSC101 98 2021
1111111111 Kowalski Jan ENG101 95 2022
222222222 Jones Maryi CSC101 100 2022
222222222 Jones Maryi EEE101 75 2022
333333333 Hansen Robert POL101 92 2021
333333333 Hansen Robert SOC103 84 2022

Tworzenie, zmienianie i usuwanie tabel za pomocą poleceń SQL

Z wiersza poleceń użyj CREATE TABLE polecenie, po którym następuje nazwa tabeli i dane tabeli. Poniższe polecenie tworzy Student tabela.

CREATE TABLE Student (
  SSNumber CHAR(9) NOT NULL,
  LastName VARCHAR(30) NOT NULL,
  FirstName VARCHAR(20) NOT NULL
);

Nawias obejmuje dane tabeli, zaczynając od kolumny, która oznacza dane każdego wiersza. Następna kolumna wskazuje typ danych, który zawiera ten wiersz. CHAR wskazuje typ danych ciągu o stałej długości i VARCHAR wskazuje typ danych ciągu o zmiennej długości. W ostatniej kolumnie NOT NULL atrybut zapewnia, że ​​rekord nie może zostać dodany do tabeli, jeśli którykolwiek z NOT NULL kolumny nie mają powiązanych z nimi danych.

Uwaga CREATE TABLE Instrukcja jest oddzielona końcowym średnikiem (;), chociaż możliwe jest, że niektóre komercyjne systemy relacyjnych baz danych mogą nie wymagać tego ogranicznika.
Uwaga O ile nie wspomniano inaczej, wszystkie polecenia baz danych przedstawione w tym przewodniku działają dobrze zarówno na MySQL i PostgreSQL .

Aby utworzyć CourseTaken tabeli, wykonaj następujące polecenie:

CREATE TABLE CourseTaken (
  SSNumber CHAR(9) NOT NULL,
  CourseId CHAR(6) NOT NULL,
  NumericGrade INT NOT NULL
);

YearTaken kolumna celowo nie jest uwzględniona w CourseTaken tabela, aby zademonstrować użycie ALTER TABLE Komenda. Aby dodać YearTaken kolumna w CourseTaken tabeli, nie musisz porzucać CourseTaken tabeli całkowicie. Zamiast tego możesz użyć DDL ALTER TABLE Komenda. Następujące polecenie zmienia CourseTaken tabeli, dodając brakującą kolumnę do tabeli.

ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

Powyższe polecenie ma podobną składnię jak poprzednio. Wymaga nazwy tabeli oraz trzech argumentów:nazwy wiersza, typu danych wiersza i NOT NULL atrybut. Jeśli chcesz usunąć CourseTaken tabeli całkowicie, wydaj DDL DROP TABLE polecenie, po którym następuje nazwa tabeli.

DROP TABLE CourseTaken;
Uwaga Upuszczenie tabeli usuwa wszystkie dane w tabeli.

Jak wstawić dane do tabeli w SQL

Aby wstawić dane do tabeli, użyj SQL INSERT INTO oświadczenie. Aby wywołać to polecenie, podaj nazwę tabeli i listę nazw wierszy (w nawiasach), do których chcesz wstawić dane. Po nim następuje VALUES słowo kluczowe i rzeczywiste wartości (w nawiasach), które chcesz wstawić. Wartości są wstawiane do wierszy w kolejności, w jakiej są wywoływane.

Uwaga
  • Polecenia SQL można podzielić na wiersze. Koniec polecenia SQL jest oddzielony średnikiem (; ).
  • Dane znakowe są oddzielone apostrofem otwierającym i zamykającym ( ), podczas gdy dane liczbowe nie.

Następujące INSERT polecenia wstawiają trzy wiersze do Student stół. Te polecenia używają wielu INSERT oświadczenia.

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');

Podobnie, możesz również wstawić wiele wierszy do tabeli w jednym zapytaniu SQL, jak pokazano poniżej:

INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
Uwaga

Możesz użyć INSERT INTO polecenie podobnie w PostgreSQL aby dodać wiersze do tabeli. Upewnij się, że wartości odpowiadają kolejności kolumn w definicji tabeli.

INSERT INTO student VALUES ('111111111', 'Smith', 'John');

Usuń dane z tabeli

Aby usunąć dane z tabeli, użyj polecenia SQL DELETE FROM oświadczenie. Użyj WHERE klauzulę, aby określić warunek, a jeśli jest więcej niż jeden warunek, użyj AND klauzula wraz z WHERE .

Na przykład poniższe polecenie usuwa rekord z CourseTaken tabela z numerem SSN 333333333 i Identyfikator kursu POL101 .

Uwaga Jeśli pominiesz WHERE klauzula, wszystkie rekordy w tabeli zostaną usunięte.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

Polecenie SQL do aktualizacji danych w tabeli

Aby zaktualizować istniejący rekord w tabeli, użyj polecenia SQL UPDATE Komenda. SET Klauzula służy do ustawienia (aktualizacji) nowej wartości w określonej kolumnie i WHERE klauzula jest używana do aktualizacji wybranych wierszy.

Na przykład poniższe polecenie aktualizuje NumericGrade kolumna CourseTaken tabela dla rekordów z SSNumber 222222222 i Identyfikator kursu EEE101 .

UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';

Polecenie SQL do pobierania danych z tabeli

Prawdziwa moc systemów relacyjnych baz danych tkwi w ich zdolności do pobierania informacji w schemacie wielotabelowym za pomocą SQL SELECT polecenia oraz możliwość łączenia tabel za pomocą wspólnych klawiszy. Chociaż ten przewodnik wprowadzający nie analizuje tworzenia kluczy i indeksów przy użyciu tych kluczy, wykorzystuje on SSNumber kolumna każdej tabeli jako nośnik (klucz) do powiązania (lub połączenia) tabel w celu wygenerowania informacji. Poniższe przykłady przedstawiają różne przypadki użycia SQL SELECT polecenie z wiersza poleceń.

Przykład 1: Aby pobrać listę wszystkich uczniów w szkole.

SELECT * from Student;

Wyjście:

+-----------+----------+-----------+
| SSNumber  | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith    | John      |
| 222222222 | Jones    | Mary      |
| 333333333 | Hansen   | Robert    |
+-----------+----------+-----------+

Przykład 2: Aby pobrać listę wszystkich uczniów i kursów, w których uczestniczyli.

SELECT Student.SSNumber, Student.LastName,
       Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;

Wyjście:

+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
Uwaga W powyższym poleceniu dwie tabele, Student i CourseTaken są połączone w celu pobrania wymaganych informacji. Nazwy kolumn w SELECT i WHERE klauzule są poprzedzone ich nazwami tabel dla jasności. Jednak w przypadku SSNumber kolumny, musimy określić odpowiednie przedrostki nazwy tabeli, ponieważ obie tabele mają tę samą nazwę kolumny. FROM klauzula wskazuje tabele, które są używane w tym zapytaniu.

Przykład 3: Pobierz listę uczniów z Identyfikatorem kursu CSC101 i rok, w którym wzięli udział w tym kursie.

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';

Wyjście:

+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith    | John      | CSC101   |      2021 |
| Jones    | Mary      | CSC101   |      2022 |
+----------+-----------+----------+-----------+

Przykład 4: Pobierz listę nazwisk uczniów, odbytych kursów i otrzymanych ocen dla tych, którzy mieli oceny z kursu powyżej 90 .

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;

Wyjście:

+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith    | John      | ENG101   |           95 |
| Smith    | John      | CSC101   |           98 |
| Jones    | Mary      | CSC101   |          100 |
+----------+-----------+----------+--------------+

Uwaga AND klauzula w powyższym poleceniu umożliwia filtrowanie wyników według warunkowego testu ocen.

Wniosek

Ten przewodnik po poleceniach SQL stanowi wprowadzenie do tworzenia schematów baz danych i manipulowania danymi w tych bazach danych. Chociaż przedstawione tutaj koncepcje jedynie zarysowują powierzchnię w odniesieniu do użycia relacyjnych systemów baz danych, jest to dobry punkt wyjścia dla podstawowych i niezbędnych poleceń i koncepcji.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy w MySQL jest rozróżniana wielkość liter w nazwach kolumn i tabel?

  2. podzielone słowa kluczowe dla post php mysql

  3. Wskazówki dotyczące optymalizacji wydajności MySQL w celu optymalizacji bazy danych

  4. Duplikuj, kopiuj lub twórz kopie zapasowe tabel w MySQL, MariaDB, Oracle, PostgreSQL, DB2 i SQLite za pomocą funkcji Utwórz tabelę jako SQL

  5. Jak zainstalować MySQL na Debianie 7?