In de huidige markt, waar elke dag zo'n 2,5 quintiljoen bytes aan data wordt gegenereerd, is het erg belangrijk om te begrijpen hoe je met zo'n gigantische hoeveelheid data om moet gaan. Welnu, dit is waar Structured Query Language of SQL in beeld komt. Dus, in dit artikel over SQL-zelfstudie, zal ik de volgende belangrijke concepten bespreken, die een must zijn om een databasebeheerder te worden.
- Inleiding tot SQL
- Wat is SQL?
- Toepassingen van SQL
- SQL-gegevenstypen
- SQL-operators
- Belangrijkste SQL-opdrachten
- MAKEN
- DROP
- VERANDER
- AFKNOP
- UITLEG
- INVOER IN
- UPDATE
- SELECTEER
- LIKE
- SUBSIDIE
- Sleutels in database
- SQL-beperkingen
- Normalisatie
- SQL-deelname
- Beelden
SQL-zelfstudie:inleiding tot SQL
Wat is SQL?
Ontwikkeld door Donald D.Chamberlin in de jaren 70, is Structured Query Language of beter bekend als SQL een van de meest populaire talen die wordt gebruikt voor het manipuleren, opslaan, bijwerken en ophalen van gegevens van een relationele database. SQL bestaat uit verschillende opdrachten die zijn onderverdeeld in 4 categorieën, namelijk DDL, DML, DCL en TCL om te spelen met gegevens in databases. Ook gebruiken relationele databases zoals MySQL-databases, Oracle, MS SQL Server, Sybase enz. SQL om gegevens te wijzigen.
Toepassingen van SQL
De toepassingen van SQL zijn als volgt:
- Met SQL kun je tabellen en databases maken en neerzetten.
- Hiermee kunnen gebruikers gegevens in databases definiëren en manipuleren.
- SQL stelt gebruikers in staat om gegevens in RDBMS te openen, aan te passen en te beschrijven.
- Met SQL kunt u machtigingen instellen voor tabellen, weergaven en procedures en specifieke machtigingen verlenen aan verschillende gebruikers.
- SQL stelt je in staat om in andere talen in te sluiten met behulp van SQL-bibliotheken en -modules.
Nu u de basis van SQL kent, gaan we in deze SQL-tutorial eens kijken wat de verschillende SQL-gegevenstypen zijn.
SQL-gegevenstypen
SQL-gegevenstypen zijn onderverdeeld in de volgende categorieën:
- Numeriek – De numerieke gegevenstypen staan zowel getekende als niet-ondertekende gehele getallen toe. Ze kunnen verder worden onderverdeeld in exacte en benaderende gegevenstypen waarbij exact de gehele getallen in de vorm van gehele getallen toestaat en bij benadering zwevende gehele getallen.
- Tekenreeks – Dit datatype laat karakters van vaste en variabele lengte toe. Dit gegevenstype kan ook verder worden onderverdeeld in Unicode-tekens, wat een vaste en variabele lengte van Unicode-tekens mogelijk maakt.
- Binair - Met de binaire gegevenstypen kunnen gegevens worden opgeslagen in het formaat van binaire waarden, voor vaste en variabele lengte.
- Datum en tijd – Met dit gegevenstype kunnen gegevens worden opgeslagen in verschillende formaten van datum en tijd.
- Overig – Dit gedeelte met gegevenstypen heeft gegevenstypen zoals tabel, XML, cursor, uniqueidentifier en sql_variant.
Als u een gedetailleerd inzicht wilt krijgen in de verschillende SQL-gegevenstypen, kunt u de gedetailleerde handleiding over SQL-gegevenstypen raadplegen.
SQL-operators
Operators zijn de constructies die de waarden van de operanden kunnen manipuleren. Beschouw de uitdrukking 4 + 6 =10, hier zijn 4 en 6 operanden en wordt + operator genoemd.
SQL ondersteunt de volgende typen operators:
- Rekenkundige operatoren
- Bitsgewijze operatoren
- Vergelijkingsoperatoren
- Samengestelde operatoren
- Logische operatoren
Om de verschillende operators die door SQL worden ondersteund te kennen, op een uitgebreide manier, kunt u hier klikken. Dus, nu je weet wat SQL is en wat de basis is, laten we de belangrijkste commando's of instructies in SQL begrijpen.
SQL-zelfstudie:belangrijkste SQL-opdrachten
SQL bestaat uit verschillende commando's of instructies om gegevens in de database toe te voegen, te wijzigen, te verwijderen of bij te werken. In dit artikel over SQL-zelfstudie gaan we de volgende uitspraken bespreken:
-
- MAKEN
- DROP
- VERANDER
- AFKNOP
- UITLEG
- INVOER IN
- UPDATE
- SELECTEER
- LIKE
- SUBSIDIE
In deze SQL-zelfstudie ga ik de onderstaande database als voorbeeld beschouwen, om je te laten zien hoe je query's schrijft met deze SQL-commando's.
Klant-ID | Klantnaam | Telefoonnummer | Adres | Stad | Land |
1 | Simon | 9876543210 | Donald Street 52 | Hyderabad | India |
2 | Akash | 9955449922 | Queens Road 74 | Mumbai | India |
3 | Patrick | 9955888220 | Silk Board 82 | Delhi | India |
4 | Sameer | 9647974327 | IG Road 19 | Hyderabad | India |
5 | Jan | 9674325689 | Brigade Road Block 9 | Bangalore | India |
MAKEN
De CREATE-instructie wordt op de volgende manier gebruikt om een tabel, weergave of database te maken:
DATABASE MAKEN
Gebruikt om een database te maken.
Syntaxis
CREATE DATABASE DatabaseName;
Voorbeeld
CREATE DATABASE CustomerInfo;
TABEL MAKEN
Deze verklaring wordt gebruikt om een tabel te maken.
Syntaxis
CREATE TABLE TableName ( Column1 data type, Column2 data type, .... ColumnN data type );
Voorbeeld
CREATE TABLE Customers ( CustomerID int, CustomerName varchar(255), PhoneNumber int, Address varchar(255), City varchar(255), Country varchar(255) );
BEELD MAKEN
Gebruikt om een weergave te maken.
Syntaxis
CREATE VIEW OR REPLACE ViewName AS SELECT Column1, Column2, ..., ColumnN FROM TableName WHERE Condition;
Voorbeeld
CREATE VIEW OR REPLACE HydCustomers AS SELECT CustomerName, PhoneNumber FROM Customers WHERE City = "Hyderabad";
Opmerking: Voordat u begint met het maken van een tabel en het invoeren van waarden, moet u de database gebruiken, met het USE-statement als [USE CustomersInfo; ]
DROP
De DROP-instructie wordt gebruikt om een bestaande tabel, weergave of database te verwijderen.
DROP DATABASE
Gebruikt om de database te verwijderen. Wanneer u deze verklaring gebruikt, gaat de volledige informatie in de database verloren.
Syntaxis
DROP DATABASE DatabaseName;
Voorbeeld
DROP DATABASE CustomerInfo;
LAAG TAFEL
Wordt gebruikt om de tabel te laten vallen. Wanneer u deze verklaring gebruikt, gaat de volledige informatie in de tabel verloren.
Syntaxis
DROP TABLE TableName;
Voorbeeld
DROP TABLE Customers;
DROP VIEW
Wordt gebruikt om de weergave te laten vallen. Wanneer u deze verklaring gebruikt, gaat de volledige informatie in de weergave verloren.
Syntaxis
DROP VIEW ViewName;
Voorbeeld
DROP VIEW HydCustomers;
VERANDER
De ALTER-instructie wordt gebruikt om beperkingen of kolommen in een bestaande tabel toe te voegen, te verwijderen of te wijzigen.
WIJZIG TABEL
De ALTER-instructie wordt gebruikt om kolommen in een bestaande tabel te verwijderen, toe te voegen en te wijzigen. U kunt ALTER TABLE met ADD/DROP-kolom gebruiken om een kolom toe te voegen of neer te zetten in de tabel. Afgezien hiervan kunt u ook een specifieke kolom WIJZIGEN/WIJZIGEN.
Syntaxis
ALTER TABLE TableName ADD ColumnName Data Type; ALTER TABLE TableName DROP COLUMN ColumnName; ALTER TABLE TableName ALTER COLUMN ColumnName Data Type;
Voorbeeld
--ADD Column Gender: ALTER TABLE Customers ADD Gender varchar(255); --DROP Column Gender: ALTER TABLE Customers DROP COLUMN Gender ; --Add a column DOB and change the data type from Date to Year. ALTER TABLE DOB ADD DOB date; ALTER TABLE DOB ALTER DOB year;
TRUNCATE
De TRUNCATE-instructie wordt gebruikt om de informatie in de tabel te verwijderen, maar niet de tabel zelf. Dus als u deze opdracht eenmaal gebruikt, gaat uw informatie verloren, maar de tabel zal niet nog steeds in de database aanwezig zijn.
Syntaxis
TRUNCATE TABLE TableName;
Voorbeeld
TRUNCATE Table Customers;
UITLEG
De EXPLAIN- en DESCRIBE-statements zijn synoniemen die worden gebruikt om respectievelijk een query-uitvoeringsplan en de informatie over een tabelstructuur te verkrijgen. Deze instructie kan worden gebruikt met INSERT-, DELETE-, SELECT-, UPDATE- en REPLACE-instructies.
Syntaxis
--Syntax for DESCRIBE DESCRIBE TableName; --Sample syntax for EXPLAIN EXPLAIN ANALYZE SELECT * FROM TableName1 JOIN TableName2 ON (TableName1.ColumnName1 = TableName2.ColumnName2);
Voorbeeld
DESCRIBE Customers; EXPLAIN ANALYZE SELECT * FROM Customers1 JOIN Orders ON (Customers.CustomerID = Orders.CustomerID);
INVOER IN
De INSERT INTO-instructie wordt gebruikt om nieuwe records in een tabel in te voegen.
Syntaxis
INSERT INTO TableName (Column1, Column2, Column3, ...,ColumnN) VALUES (value1, value2, value3, ...); --If you do not want to mention the column names then use the below syntax, but the order of values entered should match the column data types : INSERT INTO TableName VALUES (Value1, Value2, Value3, ...);
Voorbeeld
INSERT INTO Customers(CustomerID, CustomerName, PhoneNumber, Address, City, Country) VALUES ('06', 'Sanjana', '9654323491', 'Oxford Street House No 10', 'Bengaluru', 'India'); INSERT INTO Customers VALUES ('07', 'Himani','9858018368', 'Nice Road 42', 'Kolkata', 'India');
UPDATE
De UPDATE-instructie wordt gebruikt om de records te wijzigen die al in de tabel aanwezig zijn.
Syntaxis
UPDATE TableName SET Column1 = Value1, Column2 = Value2, ... WHERE Condition;
Voorbeeld
UPDATE Customers SET CustomerName = 'Aisha', City= 'Kolkata' WHERE EmployeeID = 2;
SELECTEER
De SELECT-instructie wordt gebruikt om gegevens uit een database te selecteren en op te slaan in een resultatentabel, de result-set genoemd. .
Syntaxis
SELECT Column1, Column2, ...ColumN FROM TableName; --(*) is used to select all from the table SELECT * FROM table_name; -- To select the number of records to return use: SELECT TOP 3 * FROM TableName;
Voorbeeld
SELECT CustomerID, CustomerName FROM Customers; --(*) is used to select all from the table SELECT * FROM Customers; -- To select the number of records to return use: SELECT TOP 3 * FROM Customers;
Daarnaast kunt u het SELECT-trefwoord gebruiken met DISTINCT, ORDER BY, GROUP BY, HAVING Clause en INTO.
LIKE
Deze operator wordt gebruikt met een WHERE-component om te zoeken naar een gespecificeerd patroon in een kolom van een tabel. Er zijn hoofdzakelijk twee jokertekens die worden gebruikt in combinatie met de LIKE-operator:
- % – Het komt overeen met 0 of meer tekens.
- _ – Het komt overeen met precies één teken.
Syntaxis
SELECT ColumnName(s) FROM TableName WHERE ColumnName LIKE pattern;
Voorbeeld
SELECT * FROM Customers WHERE CustomerName LIKE 'S%';
SUBSIDIE
Het GRANT-commando wordt gebruikt om privileges of toegang tot de database en zijn objecten aan de gebruikers te verlenen.
Syntaxis
GRANT PrivilegeName ON ObjectName TO {UserName |PUBLIC |RoleName} [WITH GRANT OPTION];
waar,
- PrivilegeName – De privileges/rechten/toegang verleend aan de gebruiker.
- Objectnaam – Naam van een database-object zoals TABLE/VIEW/STORED PROC.
- Gebruikersnaam – Naam van de gebruiker die de toegang/rechten/privileges heeft gekregen.
- OPENBAAR – Om toegangsrechten te verlenen aan alle gebruikers.
- Rolnaam – De naam van een set privileges die bij elkaar zijn gegroepeerd.
- MET SUBSIDIEOPTIE – Om de gebruiker toegang te geven om andere gebruikers rechten te verlenen.
Voorbeeld
-- To grant SELECT permission to Customers table to admin GRANT SELECT ON Customers TO admin;
Nu u de belangrijkste SQL-opdrachten kent, gaan we begrijpen wat de verschillende typen sleutels zijn die in de database worden gebruikt. Welnu, dit concept zal u helpen begrijpen hoe elke tabel is gerelateerd aan de andere tabel in een relationeel databasebeheersysteem.
SQL-zelfstudie:toetsen
Hier volgen de 7 typen sleutels die in een database kunnen worden beschouwd:
- Kandidaatsleutel – Een set attributen die een tabel op unieke wijze kan identificeren, kan een kandidaatsleutel worden genoemd. Een tabel kan meer dan één kandidaatsleutel hebben, en uit de gekozen kandidaatsleutels kan één sleutel als primaire sleutel worden gekozen.
- Supertoets – De set attributen die een tuple op unieke wijze kan identificeren, staat bekend als Super Key. Dus een kandidaatsleutel, primaire sleutel en een unieke sleutel is een supersleutel, maar vice versa is niet waar.
- Primaire sleutel – Een set attributen die worden gebruikt om elke tuple uniek te identificeren, is ook een primaire sleutel.
- Alternatieve sleutel – Alternatieve sleutels zijn de kandidaatsleutels, die niet als primaire sleutel worden gekozen.
- Unieke sleutel – De unieke sleutel is vergelijkbaar met de primaire sleutel, maar staat één NULL-waarde toe in de kolom.
- Buitenlandse sleutel – Een attribuut dat alleen de aanwezige waarden kan aannemen als de waarden van een ander attribuut, is de refererende sleutel naar het attribuut waarnaar het verwijst.
- Samengestelde sleutel – Een samengestelde sleutel is een combinatie van twee of meer kolommen die elke tupel op unieke wijze identificeren.
Ik hoop dat je de verschillende soorten sleutels in de database hebt begrepen. Laten we in dit artikel over SQL-zelfstudie de beperkingen in de database bespreken. Welnu, SQL-beperkingen worden gebruikt om de nauwkeurigheid en betrouwbaarheid te vergroten van gegevens die via een tabel in de database gaan.
SQL-zelfstudie: Beperkingen
SQL-beperkingen zorgen ervoor dat er geen overtreding is in termen van een transactie van gegevens, als deze wordt gevonden, wordt de actie beëindigd. Het belangrijkste gebruik van de volgende beperkingen is om het type gegevens te beperken dat in een tabel kan worden opgenomen.
- NIET NULL – Deze beperking wordt gebruikt om ervoor te zorgen dat een kolom geen NULL-waarde kan opslaan.
- UNIEK – De UNIQUE-beperking wordt gebruikt om ervoor te zorgen dat alle waarden die in een kolom of tabel worden ingevoerd, uniek zijn.
- CHECK – Deze beperking wordt gebruikt om ervoor te zorgen dat een kolom of meerdere kolommen aan een specifieke voorwaarde voldoen.
- STANDAARD – De DEFAULT-beperking wordt gebruikt om een standaardwaarde voor een kolom in te stellen als er geen waarde is opgegeven.
- INDEX – Deze beperking wordt gebruikt voor indexen in de tabel, waardoor u zeer snel gegevens uit de database kunt maken en ophalen.
Als je meer wilt weten over de volgende beperkingen, uitgebreid met syntaxis en voorbeelden, kun je andere artikelen over SQL raadplegen. Dus, nu we het hebben over sleutels en beperkingen in de database, in dit artikel over SQL-zelfstudie, laten we eens kijken naar een interessant concept Normalisatie.
SQL-zelfstudie:normalisatie
Normalisering is het proces van het organiseren van gegevens om duplicatie en redundantie te voorkomen. Er zijn veel opeenvolgende niveaus van normalisatie en die worden normale vormen genoemd . Ook is elke opeenvolgende normaalvorm afhankelijk van de vorige. De volgende zijn de aanwezige normale vormen:
Laten we de volgende tabel eens bekijken om de bovenstaande normaalvormen te begrijpen:
Als je bovenstaande tabel bekijkt, kun je de gegevensredundantie en duplicatie van gegevens duidelijk onderscheiden. Laten we deze tabel dus normaliseren. Om de databases te normaliseren, moet u altijd beginnen met de laagste normaalvorm, d.w.z. 1NF, en uiteindelijk naar de hogere normaalvormen gaan.
Laten we nu eens kijken hoe we de eerste normaalvorm kunnen uitvoeren, voor de bovenstaande tabel.
Eerste normale vorm (1NF)
Om ervoor te zorgen dat de database in 1NF . moet , moet elke tabelcel één enkele waarde hebben. Dus eigenlijk moeten alle records uniek zijn . De bovenstaande tabel wordt genormaliseerd naar 1NF zoals hieronder:
Als u in de bovenstaande tabel ziet, zijn alle records uniek. Maar toch is er veel dataredundantie en duplicatie. Dus, om dat te voorkomen, laten we de database normaliseren naar de tweede normaalvorm.
Tweede normaalvorm (2NF)
Om ervoor te zorgen dat de database in 2NF moet zijn , de database moet 1NF zijn en moet ook een primaire sleutel met één kolom hebben . De bovenstaande tabel wordt genormaliseerd naar 2NF zoals hieronder:
Als je de bovenstaande tabellen in acht neemt, heeft elke tabel een primaire sleutel met één kolom. Maar er is veel gegevensredundantie en duplicatie van een paar kolommen. Laten we, om dat te voorkomen, de database normaliseren naar de derde normaalvorm.
Derde normale vorm (3NF)
Om ervoor te zorgen dat de database zich in 3NF moet bevinden , de database moet in 2NF staan en mag geen transitieve functionele afhankelijkheden hebben . De bovenstaande tabellen worden genormaliseerd naar 3NF zoals hieronder:
Als je de bovenstaande tabellen in acht neemt, heeft de database geen transitieve afhankelijkheid. Na deze stap hoeven we onze database dus niet verder te normaliseren. Maar als u afwijkingen of meer dan een enkele kandidaatsleutel ziet, kunt u doorgaan met de volgende hogere normaalvorm, namelijk BCNF.
Boyce-Codd normale vorm (BCNF)
Om ervoor te zorgen dat de database in BCNF moet staan, moet de database aanwezig zijn in 3NF en moeten de tabellen verder worden verdeeld, zodat er maar één kandidaatsleutel aanwezig is.
Hiermee komen we een einde aan de normalisatie. Laten we nu in deze SQL-zelfstudie een belangrijk concept in SQL bespreken, namelijk Joins.
SQL-zelfstudie:deelnemen
Joins worden gebruikt om rijen van twee of meer tabellen te combineren, gebaseerd op een gerelateerde kolom tussen die tabellen en ook op enkele voorwaarden. Er zijn hoofdzakelijk vier soorten joins:
- INNER JOIN: Deze join retourneert die records die overeenkomende waarden hebben in beide tabellen.
- VOLLEDIGE JOIN: De FULL JOIN retourneert al die records die een overeenkomst hebben in de linker- of rechtertabel.
- LEFT JOIN: Deze join retourneert records uit de linkertabel, en ook die records die voldoen aan de voorwaarde uit de rechtertabel.
- RIGHT JOIN: Deze join retourneert records uit de rechtertabel, en ook die records die voldoen aan de voorwaarde uit de linkertabel.
Dit was dus een korte beschrijving van JOINS, maar als je een gedetailleerde beschrijving van JOINS wilt met een gedetailleerd voorbeeld, kun je mijn artikel over SQL JOINS raadplegen. Laten we vervolgens in deze SQL-zelfstudie het laatste concept voor dit artikel bespreken, namelijk Views.
SQL-zelfstudie:weergaven
Een view in SQL is een enkele tabel, die is afgeleid van andere tabellen. Een weergave bevat rijen en kolommen die lijken op een echte tabel en heeft velden uit een of meer tabellen. Raadpleeg de onderstaande afbeelding:
Om te begrijpen hoe je een weergave maakt en neerzet, kun je de hierboven genoemde CREATE- en DROP-statements raadplegen. Daarmee komen we tot een einde aan dit artikel over SQL-tutorial. Ik hoop dat je dit artikel informatief vond. Als u zich voorbereidt op interviews met databasebeheerders en op zoek bent naar een uitgebreide lijst met vragen, kunt u ook ons artikel over SQL-interviewvragen raadplegen.
Als je meer wilt weten over MySQL en deze open-source relationele database wilt leren kennen, bekijk dan onze MySQL DBA-certificeringstraining die wordt geleverd met door een instructeur geleide live training en echte - levensprojectervaring. Deze training zal u helpen MySQL diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.
Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze SQLTutorial en we nemen contact met je op.