Mysql
 sql >> база данни >  >> RDS >> Mysql

Въведение в SQL командите

В днешния свят на увеличена дигитализация, големи данни и облачни изчисления, управлението на данни е сред най-важните умения, които може да притежава софтуерният инженер. За тази цел един от най-мощните инструменти за база данни е SQL.

SQL (Structured Query Language) е стандартният език за програмиране, използван за манипулиране на обекти от структурата на данни. Те оперират с данни, които се съдържат в система за управление на релационна база данни (RDBMS). Някои добре познати RDBMS са MySQL и PostgreSQL.

В това ръководство ще научите за подмножествата на SQL езика и как да използвате някои основни SQL команди, като SELECT , INSERT , UPDATE и DELETE .

Подмножества на SQL

Списъкът по-долу включва различните езикови подмножества на различни SQL команди. Всяко подмножество има своя собствена функция и предназначение.

  • Език за дефиниране на данни (DDL):Това ви позволява да създавате, изтривате и актуализирате дефиниции на схема на база данни (а именно таблици и индекси), без реално да манипулирате данните в таблиците на базата данни.
  • Език за заявки за данни (DQL):DQL се използва за извличане на данни от базата данни с помощта на SELECT изявление.
  • Език за манипулиране на данни (DML):Този подезик позволява манипулиране на данни в базата данни с помощта на INSERT , UPDATE и DELETE изявления.

Това ръководство използва примерна база данни за училище, за да демонстрира допълнително SQL командите за всяко подмножество, изброено по-горе. Училищната база данни има няколко таблици за ученици, курсове, оценки и т.н. Дефиницията на Student таблицата съдържа колони за SSNumber на ученика , Firstname и Lastname и дефиницията на CourseTaken таблицата съдържа колони за SSNumber , CourseId , NumericGrade и YearTaken .

Примерът предполага, че в училището има трима ученици, всеки от които е завършил два курса. Примерните данни са показани в таблицата по-долу:

SSNumber Фамилия FirstName CourseId NumericGrade YearTaken
111111111 Смит Джон CSC101 98 2021
111111111 Смит Джон ENG101 95 2022
222222222 Джоунс Мери CSC101 100 2022
222222222 Джоунс Мери EEE101 75 2022
333333333 Хансен Робърт POL101 92 2021
333333333 Хансен Робърт SOC103 84 2022

Създавайте, променяйте и пускайте таблици с помощта на SQL команди

От командния ред използвайте CREATE TABLE команда, последвана от името на таблицата и данните от таблицата. Командата по-долу създава Student таблица.

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

Скобите обхващат данните от таблицата, като се започва с колона, която обозначава данните на всеки ред. Следващата колона показва типа данни, които този ред съдържа. CHAR указва тип данни низ с фиксирана дължина и VARCHAR указва тип данни низ с променлива дължина. В последната колона NOT NULL атрибут гарантира, че запис не може да бъде добавен към таблицата, ако някой от NOT NULL колони нямат данни, свързани с тях.

Забележка CREATE TABLE изразът е разделен с крайна точка и запетая (;), въпреки че е възможно някои търговски системи за релационни бази данни да не изискват този разделител.
Забележка Освен ако не е посочено друго, всички демонстрирани в това ръководство команди на базата данни работят добре и на MySQL и PostgreSQL .

За да създадете CourseTaken таблица, изпълнете следната команда:

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

YearTaken колоната умишлено не е включена в CourseTaken таблица за демонстриране на използването на ALTER TABLE команда. За да добавите YearTaken колона в CourseTaken таблица, не е нужно да пускате CourseTaken масата изцяло. Вместо това можете да използвате DDL ALTER TABLE команда. Следната команда променя CourseTaken таблица, като добавите липсващата колона към таблицата.

ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

Командата по-горе следва подобен синтаксис като преди. Изисква името на таблицата, както и три аргумента:име на ред, тип данни на реда и NOT NULL атрибут. Ако искате да изтриете CourseTaken изцяло, издайте DDL DROP TABLE команда, последвана от името на таблицата.

DROP TABLE CourseTaken;
Внимание Изтриването на таблица изтрива всички данни в таблицата.

Как да вмъкнете данни в таблица в SQL

За да вмъкнете данните в таблицата, използвайте SQL INSERT INTO изявление. За да извикате тази команда, посочете името на таблицата и списъка с имена на редове (в скоби), в които искате да вмъкнете данните. Това е последвано от VALUES ключова дума и действителните стойности (в скоби), които искате да вмъкнете. Стойностите се вмъкват в редовете, в който са извиквани.

Забележка
  • SQL командите могат да бъдат разбити на редове. Краят на SQL командата е разделен с точка и запетая (; ).
  • Данните за знаците са разделени с отварящ и затварящ апостроф ( ), докато цифровите данни не са.

Следният INSERT командите вмъкват три реда в Student маса. Тези команди използват множество INSERT изявления.

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');

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

INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
Забележка

Можете да използвате INSERT INTO команда по подобен начин в PostgreSQL за добавяне на редове към таблицата. Уверете се, че стойностите съответстват на реда на колоните в дефиницията на таблицата.

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

Изтриване на данни от таблица

За да изтриете данни от таблица, използвайте SQL DELETE FROM изявление. Използвайте WHERE клауза за определяне на условието и ако има повече от едно условие, използвайте AND клауза заедно с WHERE .

Например следната команда изтрива запис от CourseTaken таблица сSSNumber 333333333 и CourseId POL101 .

Внимание Ако пропуснете WHERE клауза, всички записи в таблицата се изтриват.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

SQL команда за актуализиране на данни в таблица

За да актуализирате съществуващия запис в таблица, използвайте SQL UPDATE команда. SET клаузата се използва за задаване (актуализация) на нова стойност за конкретна колона и WHERE клаузата се използва за актуализиране на избраните редове.

Например, следната команда актуализира NumericGrade колона на CourseTaken таблица за записи сSSNumber 222222222 и CourseId EEE101 .

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

SQL команда за извличане на данни от таблица

Истинската сила на системите за релационни бази данни е в способността им да извличат информация в схема с множество таблици чрез SQL SELECT команда и възможност за присъединяване на таблици чрез общи ключове. Въпреки че това въвеждащо ръководство не разглежда създаването на ключове и индекси, използващи тези ключове, то използва SSNumber колона на всяка таблица като превозно средство (ключ) за свързване (или присъединяване) на таблиците за генериране на информация. Следните примери предоставят различни случаи на използване на SQL SELECT команда от командния ред.

Пример 1: За да извлечете списъка с всички ученици в училището.

SELECT * from Student;

Изход:

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

Пример 2: За да извлечете списъка с всички студенти и курсове, които са взели.

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

Изход:

+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
Забележка В горната команда, двете таблици, Student и CourseTaken са обединени, за да извлекат необходимата информация. Имената на колоните в SELECT и WHERE клаузите са с префикс с техните имена на таблици за яснота. Въпреки това, в случая на SSNumber колона, от нас се изисква да посочим подходящите префикси на името на таблицата, тъй като и двете таблици споделят едно и също име на колона. FROM клауза посочва таблиците, които се използват в тази заявка.

Пример 3: Извлечете списъка със студенти с CourseId CSC101 и годината, в която са преминали този курс.

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

Изход:

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

Пример 4: Извличане на списък с имена на студенти, взети курсове и получени оценки за тези, които са имали оценки от курса над 90 .

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

Изход:

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

Забележка AND клаузата в командата по-горе ви позволява да филтрирате резултатите чрез тест за условна оценка.

Заключение

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MINUTE() Примери – MySQL

  2. MySQL LN() Функция – Връща естествения логаритъм на число

  3. MySQL/MariaDB - подреждане по вътрешна подзаявка

  4. Как да записвам и извличам изображение на моя сървър в java webapp

  5. Използване на Workbench за свързване към отдалечен MySQL сървър през SSH тунел