Structured Query Language bruges til at håndtere strukturerede data. De data, der lagres i form af tabeller, er strukturerede data. Disse SQL-kommandoer gemmer poster eller data i tabellen og bruges også til at hente posterne fra de lagrede tabeller. Der er de fire typer af kommandoer til Structured Query Language:
- Sprogkommandoer for datadefinition.
- Sprogkommandoer for datamanipulation.
- Sprogkommandoer for datakontrol.
- Sprogkommandoer for transaktionskontrol.
Sprogkommandoer til datadefinition
DDL er en forkortelse for Data Definition Language. Data Definition Sprogkommandoer bruges til at håndtere strukturen, dvs. den tabel eller relation, hvori vores poster eller data er lagret. Data Definition Language-kommandoer bruges til at oprette, slette og ændre tabellen. Data Definition Language kommandoer er:
- CREATE-kommando.
- ALTER-kommando.
- DROP-kommando.
- TRUNCATE-kommando.
OPRET kommandoer: I Structured Query Language gemmer vi data i tabellen, og for at oprette en ny tabel eller database bruger vi CREATE-kommandoen til Data Definition Language Commands. Nedenfor er syntaksen til at oprette en database:
CREATE DATABASE DATABASE_NAME;
For eksempler,
- Skriv en forespørgsel for at oprette en ny database efterfulgt af databasenavn Firma.
CREATE DATABASE COMPANY;
For at kontrollere, om der er oprettet en databasevirksomhed, bruger vi følgende forespørgsel:
SHOW DATABASES;
Database |
virksomhed |
medarbejder |
informationsskema |
mysql |
performance_schema |
phpmyadmin |
Ovenstående resultat siger, at vi har oprettet virksomheden Database.
- Skriv en forespørgsel for at oprette en ny tabel:
Vi vil oprette en ny tabel med medarbejdere i virksomheden Database. Vi skal vælge Company Database.
CREATE TABLE TABLE_NAME(COLUMN_NAME1 DATATYPE(COLUMN SIZE), COLUMN_NAME2 DATATYPE (COLUMN SIZE),COLUMN_NAME3 DATATYPE (COLUMN SIZE));
For at vælge Firmadatabase bruger vi følgende forespørgsel:
USE COMPANY;
Nu vælger vi Firma som en database; vi vil udføre CREATE TABLE-forespørgslen for at oprette en tabel:
CREATE TABLE EMPLOYEES (EMPLOYEE INT PRIMARY KEY, FIRST_NAME VARCHAR (20), LAST_NAME VARCHAR (20), SALARY INT, CITY VARCHAR (20) );
Vi har oprettet tabelnavnet Medarbejdere ved hjælp af CREATE TABLE-forespørgsel.
For at kontrollere, om tabelmedarbejdere er oprettet, bruger vi følgende forespørgsel:
SHOW TABLES;
Tables_in_company |
medarbejdere |
Ovenstående resultat siger, at vi har oprettet tabellen 'Medarbejdere'.
Vi vil oprette endnu en tabel ved hjælp af CREATE TABLE.
CREATE TABLE DEPARTMENT (DEPARTMENT INT PRIMARY KEY, DEPARTMENT_NAME VARCHAR (20));
Vi oprettede tabelnavnet 'Afdeling' ved hjælp af CREATE TABLE-forespørgslen.
For at kontrollere, om tabelafdelingen er oprettet, bruger vi følgende forespørgsel:
SHOW TABLES;
Tables_in_company |
afdelingsansatte |
Ovenstående resultat siger, at vi har oprettet tabellen 'Medarbejdere'.
ALTER-kommando: I det strukturerede forespørgselssprog, når vi ønsker at ændre tabelskemaet eller strukturen, bruger vi ALTER-kommandoen til kommandoen Data Definition Language. ALTER Command bruges til at ændre tabelskema ved at tilføje en ny kolonne, slette en eksisterende kolonne fra tabellen osv. nedenfor er syntaksen for ALTER Command for at tilføje en ny kolonne:
ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE (COLUMN SIZE);
Syntaks for ALTER-kommando for at fjerne en eksisterende kolonne:
ALTER TABLE TABLE-NAME DROP COLUMN COLUMN_NAME;
Syntaks for ALTER-kommando for at omdøbe den eksisterende tabels kolonne:
ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN-NAME TO NEW_COLUMN_NAME;
For eksempel
- Skriv en forespørgsel for at tilføje en ny kolonne i tabellen Medarbejdere:
ALTER TABLE EMPLOYEES ADD DEPARTMENT VARCHAR (20);
Her har vi udført ALTER TABLE-kommandoen på tabellen Employees efterfulgt af ADD nøgleordet, hvilket betyder at tilføje en kolonne med kolonnenavnet Department, datatypen VARCHAR og kolonnestørrelse 20. Ovenstående forespørgsel siger, at vi har tilføjet en ny kolonne med navnet ' Department' med datatypen VARCHAR og kolonnestørrelsen er 20.
For at kontrollere, om der er tilføjet en ny kolonne til tabellen Medarbejdere, bruger vi DESC-kommandoen på medarbejderens tabel.
DESC EMPLOYEES;
Felt | Typ | Nul | Nøgle | Standard | Ekstra |
EMPLOYEEID | int(11) | NEJ | PRI | NULL | |
FIRST_NAME | varchar(20) | JA | NULL | ||
LAST_NAME | varchar(20) | JA | NULL | ||
LØN | int(11) | JA | NULL | ||
BY | varchar(20) | JA | NULL | ||
AFDELING | varchar(20) | JA | NULL |
Ovenstående resultat bekræfter, at en ny kolonne er blevet tilføjet til medarbejderens tabel.
DROP-kommando: DROP-kommando i Structured Query Language bruges til at slette tabel- og tabelskemaet fra databasen. Her er syntaksen for DROP Command;
DROP TABLE TABLE_NAME;
Skriv en forespørgsel for at fjerne afdelingstabellen fra medarbejderdatabasen.
DROP TABLE DEPARTMENT;
Her har vi udført DROP TABLE-forespørgslen på tabellen Department.
For at kontrollere om tabelafdelingen er slettet, bruger vi følgende forespørgsel:
SHOW TABLES;
Tables_in_company |
Medarbejdere |
Ovenstående resultat siger, at vi har slettet afdelingstabellen fra firmadatabasen.
TRUNCATE Kommando: TRUNCATE Kommando i Structured Query Language fjerner alle data fra tabellen uden at forstyrre tabelskemaet i databasen. Nedenfor er syntaksen for TRUNCATE-kommandoen:
TRUNCATE TABLE TABLE_NAME
Skriv en forespørgsel for at slette alle poster fra tabellen Medarbejdere.
Vi vil bruge SELECT-forespørgslen til at hente dataene først i tabellen Medarbejdere og derefter udføre TRUNCATE-forespørgslen.
SELECT * FROM EMPLOYEES;
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING |
1 | Vaibhav | Sharma | 65.000 | Noida | Oracle |
2 | Shweta | Sharma | 55.000 | Jaipur | Oracle |
3 | Sonali | Mali | 60.000 | Nashik | FMW |
TRUNCATE TABLE EMPLOYEES;
Her fjernede vi med succes alle data fra tabellen Medarbejdere. Nu vil vi bruge SELECT-forespørgslen i tabellen Medarbejdere.
TRUNCATE TABLE EMPLOYEES;
Efter at have udført en SELECT-forespørgsel på tabellen Medarbejdere, vil resultatet vise et tomt sæt. Det betyder, at vi har fjernet hele tabellen.
Sprogkommando for datamanipulation
DML står for Data Manipulation Language. Data Manipulation Language-kommandoer i Structured Query Language manipulerer dataene i databasen. Data Manipulation Language-kommandoer bruges til at hente data, gemme data, ændre dataene og slette dataene fra den eksisterende tabel.
Kommandoerne for datamanipulationssprog i Structured Query Language er som følger:
- VÆLG kommando.
- INSERT Kommando.
- OPDATERING Kommando.
- DELETE-kommando.
Først vil vi se på INSERT-kommandoer for Data Manipulation Language i Structured Query Language. Efter INSERT bevæger vi os mod SELECT-kommandoen.
INSERT kommando: INSERT Command gemmer data eller poster i databasetabellen. INSERT-kommandoen er den vigtige kommando for datamanipulationssprog i Structured Query Language.
Syntaks for kommandoen INSERT Data Manipulation Language:
INSERT INTO TABLE_NAME VALUES (VALUE1, VALUE2, VALUE3, VALUE);
Denne syntaks tillader alle felterne i tabellen. Hvis du ønsker at indsætte værdier for udvalgte felter, skal du bruge nedenstående syntaks:
INSERT INTO TABLE_NAME (COLUMN_NAME1, COLUMN_NAME2) VALUES (VALUE1, VALUE2);
Ovenstående syntaks bruges til at gemme værdier for udvalgte felter i tabellen.
For eksempel
I dette eksempel vil vi indsætte en post for alle felterne i tabellen.
Lad os tage tabellen Medarbejdere, som er tom. Vi vil INDSÆTTE poster i stud-tabellen.
Nu vil vi gemme nye poster i tabellen Medarbejdere. For at gemme poster i tabellen, vil vi udføre følgende Data Manipulation Language INSERT-kommando:
INSERT INTO EMPLOYEES VALUES (1001, 'VAIBHAVI', 'MISHRA', 65000, 'PUNE', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (1002, 'VAIBHAV', 'SHARMA', 60000, 'NOIDA', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (1003, 'NIKHIL', 'VANI', 50000, 'JAIPUR', 'FMW');
INSERT INTO EMPLOYEES VALUES (1004, 'ANUJA', 'WANRE', 55000, 'DELHI', 'FMW');
INSERT INTO EMPLOYEES VALUES (2001, 'PRACHI', 'SHARMA', 55500, 'CHANDIGARH', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (2002, 'BHAVESH', 'JAIN', 65500, 'PUNE', 'ORACLE');
Vi indsatte seks poster i medarbejdertabellen.
VÆLG kommando: De vigtigste datamanipulationssprog-kommandoer i SQL er SELECT-kommandoen. SELECT-kommandoen bruges til at hente dataene fra den angivne tabel, og SELECT-kommandoen bruges også til at hente udvalgte felter i tabellen ved hjælp af WHERE-sætningen i forespørgslen.
Syntaks for SELECT Data Manipulation Language Command
SELECT * FROM TABLE_NAME;
Ovenstående syntaks bruges til at hente hele tabellen.
SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAMEN FROM TABLE_NAME;
Ovenstående syntaks er at hente alle poster i den valgte kolonne.
SELECT * FROM TABLE_NAME WHERE COLUMN_NAME;
Ovenstående syntaks bruges til at hente de enkelte poster ved hjælp af WHERE-sætningen angivet af kolonnenavnet.
For eksempel antag, at du vil hente alle data for hver kolonne fra tabellen:
SELECT * FROM EMPLOYEES;
Dette strukturerede forespørgselssprog viser følgende data i tabellen MEDARBEJDERE:
- Hent alle data i en enkelt række ved hjælp af WHERE-sætning angivet ved kolonnenavn fra tabellen:
SELECT * FROM EMPLOYEES WHERE SALARY > 55000;
Ovenstående forespørgsel vil hente alle optegnelser for de medarbejdere, hvis løn er større end 55.000.
Dette strukturerede forespørgselssprog viser følgende data i tabellen MEDARBEJDERE:
OPDATERING Kommando: UPDATE Command er en anden værdifuld Data Manipulation Language Command i SQL. UPDATE-kommandoer bruges til at ændre posterne i en databasetabel.
Syntaks for UPDATE Data Manipulation Language Command
UPDATE TABLE_NAME SET COLUMN_NAME1 = VALUES, COLUMN_NAME2 = VALUES WHERE CONDITION;
OPDATERING, INDSTIL OG HVOR er de strukturerede søgeordssprog.
For eksempel
- Dette eksempel beskriver, hvordan du ændrer værdien.
Lad os overveje tabellen MEDARBEJDERE:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING |
1001 | VAIBHAVI | MISHRA | 65.000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | TEST |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | HVOR | 50500 | JAIPUR | FMW |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TEST |
- Skriv en forespørgsel for at ændre en post, hvis efternavn er 'Jain', og indstil afdelingsværdien som 'FMW'.
UPDATE TABLE_NAME SET COLUMN_NAME1 = VALUES, COLUMN_NAME2 = VALUES WHERE CONDITION;
Vi vil bruge SELECT-forespørgslen på Employees-tabellen, hvor efternavnet er Jain, til at bekræfte, om værdien er ændret eller ej.
SELECT * FROM EMPLOYEES WHERE LAST_NAME = ‘JAIN’;
Dette strukturerede forespørgselssprog viser følgende data i tabellen MEDARBEJDERE:
DELETE kommando: DELETE er en sprogkommando til datamanipulation, der bruges til at slette posterne fra tabellen. Vi sletter poster fra tabellen ved hjælp af WHERE-sætningen i forespørgslen.
Syntaks for UPDATE Data Manipulation Language Command
DELETE FROM TABLE_NAME WHERE CONDITION;
For eksempel lad os overveje tabellen MEDARBEJDERE:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING |
1001 | VAIBHAVI | MISHRA | 65.000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | TEST |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | HVOR | 50500 | JAIPUR | FMW |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TEST |
- Skriv en forespørgsel for at slette de data, hvis bynavn er 'Mumbai';
DELETE FROM EMPLOYEES WHERE CITY = ‘MUMBAI’;
Vi vil bruge SELECT-forespørgslen i tabellen Medarbejdere til at bekræfte, om værdien er ændret eller ej.
SELECT * FROM EMPLOYEES;
Dette strukturerede forespørgselssprog viser følgende data i tabellen MEDARBEJDERE:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING |
1001 | VAIBHAVI | MISHRA | 65.000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | HVOR | 50500 | JAIPUR | FMW |
Ovenstående resultat viser, at posten med City Mumbai blev slettet.
Sprogkommandoer for datakontrol
DCL er en forkortelse af Data Control Language. Vi bruger datakontrolsprogkommandoer til at kontrollere adgangsrettighederne til posterne i Structured Query Language-tabellerne. Ved at bruge Data Control Language-kommandoer kan vi give privilegier til autoriserede brugere kun for at få adgang til de data, der er placeret i tabellerne eller databaserne.
Brugeren har nogle forudindbyggede adgangsrettigheder til kun at få adgang til de data, der er placeret i tabellerne for en bestemt bruger. Ved at bruge datakontrolsprogkommandoer kan vi tildele privilegier til brugerne på det strukturerede forespørgselssprog eller databasen eller tage tilbage (tilbagekalde) rettigheder fra brugerne. Der er to sprogkommandoer for datakontrol:
- GIVNING: Giv kommandoer bruges til at tildele adgangsrettigheder til brugerne til databaserne eller tabellerne.
- TILBAGE: Hvis vi kan GIVE adgangsrettigheder til brugerne. I så fald ønsker vi at tage tildelte privilegier tilbage fra brugeren til databaserne. Vi kan bruge REVOKE-kommandoen til at tilbagekalde alle de tildelte privilegier fra brugeren.
Transaktionskontrolsprog
I Structured Query Language har vi Data Definition Language (DDL) og Data Manipulation Language (DML) kommandoer på samme måde, som vi har Transaction Control Language (TCL) kommandoer i Structured Query Language. Transaktionskontrolsprog-kommandoer i Structured Query Language er Commit og Tilbage .
Uanset hvilke kommandoer vi udførte, er der pakket ind i én arbejdsenhed, kendt som en transaktion. Antag, at vi har udført en opdaterings- eller sletteoperation på en tabel, der er udført i en transaktion. Alle operationer eller kommandoer fra DDL eller DML lagres eller udføres i en transaktion. For at gemme en sådan udført DDL eller DML, skal vi udføre commit-kommandoen for et Transaction Control Language. Commit bruges til at gemme alle de operationer, vi udførte på en tabel. Al handling er gemt. Alt dette handler om Commit.
Tænk nu, hvad hvis vi vil fortryde de operationer, vi gemte ved hjælp af commit-kommandoer? Så kan vi fortryde handlingen i Structured Query Language? Ja, vi kan fortryde de operationer, der er forpligtet. Vi vil bruge en anden kommando i Transaction Control Language til at fortryde handlingerne, og den kommando er Rollback. Vi vil bruge Rollback-kommandoen til at fortryde commit-handlingen i Structured Query Language. Kommandoer under Transaction Control Language er:
- Forpligt
- Tilbage
Overvej den eksisterende medarbejders tabeller, som har følgende poster:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING |
1001 | VAIBHAVI | MISHRA | 65.000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | ORACLE |
1003 | NIKHIL | VANI | 50.000 | JAIPUR | FMW |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | TEST |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | HVOR | 50500 | JAIPUR | FMW |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TEST |
Vi kan bruge kommandoen commit og Rollback uden at starte transaktionerne, men vi starter vores transaktion ved at bruge Start Transaction Kommando for god praksis.
Lad os begynde og se hvert operationseksempel et efter et.
Først vil vi deaktivere auto-commit ved at tildele en værdi af auto-commit til 0
SET AUTOCOMMIT = 0;
- Indsæt nye værdier i eksisterende tabels medarbejdere, og så bruger vi Commit Command:
INSERT INTO EMPLOYEES VALUES (2003, ‘RUCHIKA’, ‘JAIN’, 50000, ‘MUMBAI’, ‘TESTING’);
Vi vil bruge SELECT-forespørgslen til at kontrollere, at data er indsat i en tabel eller ej:
SELECT * FROM EMPLOYEES WHERE EMPLOYEE = 2003;
Nu, for at gemme denne transaktion, bruger vi kommandoen commit.
COMMIT;
Medarbejder-id 2001-oplysningerne er gemt nu. Det vil ikke være Rollback, medmindre vi sletter det ved hjælp af Slet-kommandoen.
- Vi sletter alle oplysningerne i medarbejder-id 2003, og derefter vil vi nulstille delete-kommandoen ved at bruge Rollback.
DELETE FROM EMPLOYEES WHERE EMPLOYEE ID = 2003;
Vi vil bruge SELECT-forespørgslen til at kontrollere, at data er slettet fra en tabel eller ej:
SELECT * FROM EMPLOYEES;
Medarbejder-id 2003 slettes fra tabellen. Nu vil vi bruge Rollback Command til at fortryde slettehandlingen.
ROLLBACK;
Efter at have udført Rollback-kommando, vil vi bruge SELECT-forespørgslen igen for at kontrollere, at sletteoperationen er Rollback eller ej.
SELECT * FROM EMPLOYEES WHERE EMPLOYEE ID = 2003;