Övningar i SQL. Grundläggande SQL för nybörjare med lektioner Lär dig SQL-frågor


Födelsedagsmänniskor:
P.P. Charyshkin (PeterChar)
Hälsa och framgång!

Kommande födelsedagar. Sajten har operatörsövningar VÄLJ(149 övningar på utbildningsstadiet och 234 på klassificeringsstadiet) och på andra datamanipuleringsoperatörer - - (nu finns det 41 övningar). Övningar för VÄLJ deltagarnas betyg behålls. Se
Testvillkor

I dag vi har 1730 deltagarna ( 219 ny).
Problem lösta i betygsstadiet: 119
(35
av SELECT och 84 av DML),
på utbildningsstadiet - 3612

Praktiska kunskaper i SQL-språket

Webbplatsen kommer att hjälpa alla som vill förvärva eller förbättra sina färdigheter i att skriva språkdatamanipuleringsoperatörer SQL... Kärnan i utbildningen är att du själv skriver operatörer som ska returnera eller ändra de uppgifter som uppgiften kräver. I det här fallet, vid ett felaktigt svar, kan du ta reda på vilken data den korrekta förfrågan returnerar, och även se vad din förfrågan returnerade. Dessutom är det möjligt att köra vilken operatör som helst DML till de befintliga databaserna genom att inaktivera kryssrutan. Övningarna har en annan svårighetsgrad (från 1 till 5), vilket anges i den andra kolumnen i övningslistan. Övningar om datasampling erbjuds (operatör VÄLJ) och övningar om datamodifiering (operatörer INFOGA, UPPDATERA, TA BORT och SLUT). Enligt resultaten av att lösa problemen utförs betyget av deltagarna på webbplatsen. Samtidigt är övningarna för ett prov indelade i tre steg: den första (6 övningar) utan kontroll över tiden för att slutföra en separat uppgift, den andra (med början från den 7:e övningen) - med kontroll över tiden för att slutföra varje uppgift. I det tredje stadiet, som kallas optimering och börjar med problem 139, krävs det inte bara för att korrekt lösa problemet, utan exekveringstiden för begäran måste stå i proportion till exekveringstiden för författarens lösning.
Övningarna i det första steget är tillgängliga utan registrering, och uppgifterna kan lösas i valfri ordning. Registrering krävs för att genomföra resten av övningarna. Registrering är gratis, precis som alla andra tjänster på webbplatsen. Den tredje kolumnen i övningslistan markerar ("OK") antalet korrekt genomförda övningar för registrerade besökare. Genom att besöka vår sida senare behöver du inte komma ihåg vilka övningar du redan har genomfört och vilka som inte har gjort det. När du har registrerat dig anger du sedan användarnamnet och lösenordet som angavs vid registreringen. Om du loggar in utan behörighet kommer systemet inte att spåra dina framsteg. För behöriga användare finns ett forum där man kan diskutera lösningar på de föreslagna övningarna.

OBS: En felaktigt formulerad fråga kan returnera "korrekta" data om databasens aktuella tillstånd. Därför bör du inte bli förvånad om resultaten av en ogiltig fråga matchar de korrekta resultaten, men frågan kommer att utvärderas som ogiltig av valideringssystemet.

UPPMÄRKSAMHET: för att webbplatsen ska fungera korrekt måste webbläsaren möjliggöra användningen av cookies och JavaScript.
Eftersom hjälpsidorna öppnas i ett underfönster måste ditt webbfilter, om det används, tillåta underfönster att öppnas.

Certifiering

Baserat på testresultaten på sajten kan du beställa certifikat"SQL Data Manipulation Language Specialist" bekräftar dina kvalifikationer. Vi upprätthåller certifikatets kvalitet genom att periodvis ändra arbetsuppgifter och öka certifieringskraven.

SQL-syntax som används

Besökarförfrågningar exekveras faktiskt av SQL Server, vilket sätter begränsningar på den giltiga syntaxen för satserna. Vi använder för närvarande Microsoft SQL Server 2017, och på utbildningsstadiet - dessutom MariaDB-10.2.13 (MySQL 8-kompatibel), PostgreSQL 10.3 och Oracle Database 11g... Därför måste användaren följa syntaxen för dessa implementeringar när han skriver sina frågor. Observera att syntaxen för SQL-språket implementerat i Microsoft SQL Server är ganska nära standarden SQL-92... Det finns dock ett antal avvikelser, bland vilka frånvaron av en naturlig sammanfogning av tabeller (NATURAL JOIN) kan noteras. SQL Data Manipulation Language Reference, tillgänglig på webbplatsen, är standardiserad och innehåller den information du behöver för att lära dig språket och slutföra övningarna. Där kan du också hitta detaljerna för den använda implementeringen (SQL Server).

maxpoäng

Person Poäng dagar Dagar_2 Dagar_3 Poäng_3
Krasovsky E.A. (pegoopik) 671 3289 210.553 14.398 250
A.V. Kostomarov (al29) 647 2617 4143.636 2280.923 250
Dosjtjenko V.N. (mcrain) 630 2759 2035.474 520.375 248

De flesta moderna webbapplikationer interagerar med databaser, vanligtvis med ett språk som kallas SQL. Lyckligtvis för oss är detta språk väldigt lätt att lära sig. I den här artikeln kommer vi att titta på enkla SQL förfrågningar och lär dig hur du använder dem för att interagera med MySQL-databas.

Vad behöver du?

SQL (Structured Query Language) ett språk speciellt utformat för att interagera med databashanteringssystem som t.ex MySQL, Oracle, Sqlite och andra ... Att utföra SQL förfrågningar i den här artikeln rekommenderar jag dig att installera MySQL till den lokala datorn. Jag rekommenderar också att använda phpMyAdmin som ett visuellt gränssnitt.

Allt detta är tillgängligt i allas älskade Denver. Jag tycker att alla borde veta vad det är och var man kan få tag på det :). Burk annars använd WAMP eller MAMP.

Denver har en inbyggd MySQL trösta. Vi kommer att använda den.

SKAPA DATABAS:skapande av databas

Detta är vår första begäran. Vi kommer att skapa vår första databas för vidare arbete.

Öppna först MySQL konsol och logga in. För WAMP standardlösenordet är tomt. Det vill säga ingenting :). För MAMP är "root". För Denver behöver klargöras.

Efter inloggning anger du följande rad och klickar Stiga på:

SKAPA DATABAS my_first_db;

Observera att semikolon (;) läggs till i slutet av frågan, precis som på andra språk.

Se även kommandon i SQL skiftlägeskänsliga. Vi skriver dem med stora bokstäver.

Alternativ endast: Karaktärsuppsättningoch Samling

Om du vill installera teckenuppsättning och sortering kan vara skriv följande kommando:

SKAPA DATABAS my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Hittar en lista över teckenuppsättningar som stöds i MySQL.

VISA DATABASER:listar alla databaser

Detta kommando används för att visa alla tillgängliga databaser.

SLIP DATABAS:radera en databas

Du kan släppa en befintlig DB med den här frågan.

Var försiktig med det här kommandot eftersom det körs utan förvarning. Om din databas innehåller data kommer allt att raderas.

ANVÄNDA SIG AV:Databasval

Tekniskt sett är detta inte en fråga, utan en operatör och kräver inte ett semikolon i slutet.

Det berättar MySQL välj standarddatabasen för den aktuella sessionen. Nu är vi redo att skapa tabeller och göra andra saker med databasen.

Vad är en tabell i en databas?

Du kan representera tabellen i DB som Excel fil.

Precis som på bilden har tabeller kolumnnamn, rader och information. Genom att använda SQL frågor kan vi skapa sådana tabeller. Vi kan också lägga till, läsa, uppdatera och radera information.

SKAPA BORD: Skapa ett bord

C med den här frågan kan vi skapa tabeller i databasen. Förlåt, dokumentationen MySQL inte särskilt tydligt för nybörjare i denna fråga. Strukturen för denna typ av fråga kan vara mycket komplex, men vi börjar med en enkel.

Följande fråga kommer att skapa en tabell med 2 kolumner.

CREATE TABLE-användare (användarnamn VARCHAR (20), create_date DATE);

Observera att vi kan skriva våra frågor på flera rader och med flikar för indrag.

Den första raden är enkel. Vi skapar bara en tabell som heter "användare". Därefter, inom parentes, separerade med kommatecken, finns det en lista över alla kolumner. Efter varje kolumnnamn har vi informationstyper som VARCHAR eller DATE.

VARCHAR (20) betyder att kolumnen är av typen string och kan vara max 20 tecken lång. DATUM är också en typ av information som används för att lagra datum i detta format: "ÅÅÅÅ - MM-DD".

PRIMÄRNYCKEL ( primärnyckelh)

Innan vi kör nästa fråga måste vi också inkludera en kolumn för "user_id", som kommer att vara vår primära nyckel. Du kan tänka på en PRIMÄRNYCKEL som information som används för att identifiera varje rad i en tabell.

CREATE TABLE-användare (user_id INT AUTO_INCREMENT PRIMARY KEY, användarnamn VARCHAR (20), create_date DATE);

INT gör en 32-bitars heltalstyp (som siffror). AUTO_INCREMENT genererar automatiskt ett nytt värde ID varje gång vi lägger till nya rader med information. Detta är valfritt, men det gör hela processen enklare.

Den här kolumnen behöver inte vara ett heltalsvärde, men den används oftast. Närvaron av den primära nyckeln är också valfri, men den rekommenderas för databasens arkitektur och prestanda.

Låt oss köra frågan:

VISA TABELLER:visa alla tabeller

Den här frågan låter dig få en lista över tabeller som finns i databasen.

FÖRKLARA:Visa tabellstruktur

Du kan använda den här frågan för att visa strukturen för en befintlig tabell.

Kolumner visas med alla egenskaper.

SLÄPP BORD:ta bort tabell

Precis som DROP DATABASES, denna fråga tar bort tabellen och dess innehåll utan förvarning.

ÄNDRA TABELL: byta bord

Den här frågan kan också innehålla en komplex struktur på grund av de fler ändringar den kan göra i tabellen. Låt oss ta en titt på några exempel.

(om du tog bort tabellen i det sista steget, skapa den igen för tester)

LÄGG TILL EN KOLUMN

ALTER TABLE användare LÄGG TILL e-post VARCHAR (100) EFTER användarnamn;

På grund av den goda läsbarheten hos SQL tycker jag att det inte är någon idé att förklara det i detalj. Vi lägger till en ny kolumn "e-post" efter "användarnamn".

RADERA EN KOLUMN

Det var också väldigt lätt. Använd den här frågan med försiktighet, eftersom du kan radera data utan förvarning.

Återställ kolumnen du just tog bort för ytterligare experiment.

GÖR EN FÖRÄNDRING I EN KOLUMN

Ibland kanske du vill göra ändringar i egenskaperna för en kolumn, och du behöver inte ta bort den helt för detta.

Den här frågan döpte om användarkolumnen till "användarnamn" och ändrade dess typ från VARCHAR (20) till VARCHAR (30). En sådan förändring bör inte ändra uppgifterna i tabellen.

FÖRA IN: Lägga till information i en tabell

Låt oss lägga till lite information i tabellen med hjälp av följande fråga.

Som du kan se innehåller VÄRDEN () en kommaseparerad lista med värden. Alla värden finns i enstaka kolumner. Och värdena måste vara i ordningen för kolumnerna som definierades när tabellen skapades.

Observera att det första NULL-värdet för fältet PRIMARY KEY heter "user_id". Vi gör detta för att ID:t ska genereras automatiskt, eftersom kolumnen har egenskapen AUTO_INCREMENT. När informationen läggs till första gången blir ID 1. Nästa rad är 2, och så vidare ...

ALTERNATIVT ALTERNATIV

Det finns ett annat frågealternativ för att lägga till rader.

Den här gången använder vi nyckelordet SET istället för VALUES, och det har inga parenteser. Det finns flera nyanser:

Kolumnen kan hoppas över. Till exempel har vi inte tilldelat ett värde för "user_id", som som standard kommer att ha dess AUTO_INCREMENT-värde. Om du utelämnar en VARCHAR-kolumn kommer en tom rad att läggas till.

Varje kolumn måste hänvisas till med namn. På grund av detta kan de nämnas i valfri ordning, till skillnad från den tidigare versionen.

ALTERNATIVT ALTERNATIV 2

Här är ett annat alternativ.

Återigen, eftersom det finns referenser till kolumnnamnet, kan du ange värdena i valfri ordning.

LAST_INSERT_ID ()

Du kan använda denna begäran för att få ID:t som var AUTO_INCREMENT för den sista raden i den aktuella sessionen.

NU ()

Nu är det dags att visa hur du kan använda MySQL-funktionen i frågor.

Funktionen NU () visar det aktuella datumet. Så du kan använda den för att automatiskt ställa in kolumndatumet till det aktuella datumet när du infogar en ny rad.

Observera att vi fick 1 varning, men ignorera den. Anledningen till detta är att NOW () också används för att visa tillfällig information.

VÄLJ: Läser data från en tabell

Om vi ​​lägger till information i tabellen skulle det vara logiskt att lära sig hur man läser den därifrån. Det är här SELECT-frågan kommer att hjälpa oss.

Följande är den enklaste möjliga SELECT-frågan för att läsa en tabell.

I det här fallet betyder asterisken (*) att vi har begärt alla fält från tabellen. Om du bara vill ha specifika kolumner ser frågan ut så här.

SkickVAR

Oftast är vi inte intresserade av alla kolumner, utan bara av vissa. Låt oss till exempel anta att vi bara vill ha e-postadressen för användaren "nettuts".

WHERE låter dig ställa in villkor i frågan och göra detaljerade val.

Observera att ett likhetstecken (=) används för likhet, inte två som i programmering.

Du kan också använda jämförelser.

OCH eller ELLER kan användas för att kombinera villkor:

Observera att numeriska värden inte får citeras.

I ()

Detta är användbart för att sampla flera värden.

TYCKA OM

Låter dig göra "jokertecken"-förfrågningar

%-tecknet används som jokertecken. Det vill säga, allt kan vara på sin plats.

SkickSORTERA EFTER

Om du vill få resultatet sorterat efter vilket kriterium som helst

Standardordningen är ASC (från låg till hög). För motsatsen används DESC.

LIMIT ... OFFSET ...

Du kan begränsa antalet erhållna resultat.

LIMIT 2 tar bara de första 2 resultaten. LIMIT 1 OFFSET 2 får 1 resultat efter de första 2. LIMIT 2, 1 betyder detsamma (bara uppmärksamma först kommer offset och sedan limit).

UPPDATERING: Gör ändringar i informationen i tabellen

Denna fråga används för att ändra information i en tabell.

I de flesta fall används den i kombination med WHERE-satsen, eftersom du med största sannolikhet kommer att vilja modifiera vissa kolumner. Om det inte finns någon WHERE-sats kommer ändringarna att påverka alla rader.

Du kan också använda LIMIT för att begränsa antalet rader som behöver ändras.

RADERA: Ta bort information från en tabell

Precis som UPDATE används den här frågan med WHERE:

För att radera innehållet i en tabell kan du göra det helt enkelt så här:

TA BORT FRÅN användare;

Men det är bättre att använda STYMPA

Förutom att radera, återställer den här frågan också värdena AUTO_INCREMENT och när du lägger till rader igen, kommer räkningen att börja från noll. RADERA det gör det inte, och nedräkningen fortsätter.

Inaktivera lägre värden och speciella ord

Strängvärden

Vissa tecken måste inaktiveras ( fly ), eller så kan det uppstå problem.

För detta används ett snedstreck.(\).

Särskilda ord

Sedan i MySQL det finns många speciella ord ( VÄLJ eller UPPDATERA ), för att undvika fel när du använder dem, måste du använda citattecken. Men inte vanliga citat, utan dessa(`).

Det vill säga, du måste lägga till en kolumn med namnet " radera ", det måste göras så här:

Slutsats

Tack för att du läste till slutet. Jag hoppas att den här artikeln var användbar för dig. Det är inte över än! Fortsättning följer:).

Välkommen till min bloggsida. Idag ska vi prata om sql-frågor för nybörjare. Vissa webbansvariga kan ha en fråga. Varför lära sig sql? Kan du inte göra det?

Det visar sig att detta inte kommer att räcka för att skapa ett professionellt internetprojekt. Sql används för att arbeta med databaser och skapa applikationer för WordPress. Låt oss ta en närmare titt på hur man använder frågor.

Vad det är

SQL är ett strukturerat frågespråk. Designad för att definiera typen av data, ge tillgång till den och bearbeta information under korta tidsperioder. Den beskriver komponenterna eller något slags resultat som du vill se på Internetprojektet.

Enkelt uttryckt låter detta programmeringsspråk dig lägga till, ändra, söka och visa information i databasen. Populariteten för mysql beror på att den används för att skapa dynamiska internetprojekt baserade på en databas. Därför, för att utveckla en funktionell blogg, måste du lära dig detta språk.

Vad kan jag göra

SQL-språk tillåter:

  • skapa tabeller;
  • ändra ta emot och lagra olika data;
  • kombinera information till block;
  • skydda data;
  • skapa förfrågningar i åtkomst.

Viktig! Efter att ha arbetat med sql kan du skriva applikationer för WordPress av vilken komplexitet som helst.

Vilken struktur

Databasen består av tabeller som kan representeras som en Excel-fil.

Hon har ett namn, kolumner och en rad med lite information. Du kan skapa sådana tabeller med sql-frågor.

Vad du behöver veta


Höjdpunkter när du lär dig SQL

Som noterats ovan används frågor för att bearbeta och lägga in ny information i en databas som består av tabeller. Var och en av dess rader är en separat post. Så låt oss skapa en databas. För att göra detta, skriv kommandot:

Skapa databas "bazaname"

Skriv namnet på databasen på latin inom citattecken. Försök att komma på ett meningsfullt namn för henne. Skapa inte en bas som "111", "www" och liknande.

När du har skapat databasen installerar du:

SETNAMN "utf-8"

Detta är nödvändigt för att innehållet på sajten ska visas korrekt.

Nu skapar vi en tabell:

SKAPA TABELL 'bazaname'. 'Tabell' (

id INT (8) INTE NULL AUTO_INCREMENT PRIMÄRNYCKEL,

log VARCHAR (10),

passera VARCHAR (10),

datum DATUM

På den andra raden har vi skrivit tre attribut. Låt oss se vad de betyder:

  • NOT NULL-attributet betyder att cellen inte kommer att vara tom (det här fältet är obligatoriskt);
  • AUTO_INCREMENT värde - autoslutförande;
  • PRIMARY KEY är den primära nyckeln.

Hur man lägger till information

För att fylla fälten i den skapade tabellen med värden, använd INSERT-satsen. Vi skriver följande kodrader:

INFOGA I "tabell"

(inloggning, pass, datum) VÄRDEN

('Vasa', '87654321 ',' 2017-06-21 18:38:44 ');

Inom parentes anger vi namnen på kolumnerna, och i nästa - värdena.

Viktig! Observera sekvensen av kolumnnamn och betydelser.

Hur man uppdaterar information

För att göra detta, använd kommandot UPDATE. Låt oss se hur du ändrar lösenordet för en specifik användare. Vi skriver följande kodrader:

UPPDATERA 'table' SET pass = '12345678' WHERE id = '1'

Ändra nu lösenordet '12345678'. Ändringar görs på raden med "id" = 1. Om du inte skriver kommandot WHERE kommer alla rader att ändras, inte en specifik.

Jag rekommenderar att du köper boken" SQL för dummies ". Med dess hjälp kommer du att kunna arbeta professionellt med databasen steg för steg. All information är strukturerad från enkel till komplex och kommer att tas emot väl.

Hur man tar bort en post

Om du skrev något fel, korrigera det med kommandot DELETE. Fungerar på samma sätt som UPDATE. Vi skriver följande kod:

DELETE FRÅN 'tabell' WHERE id = '1'

Hämtar information

För att hämta värden från databasen, använd kommandot SELECT. Vi skriver följande kod:

VÄLJ * FRÅN 'tabell' DÄR id = '1'

I det här exemplet väljer vi alla tillgängliga fält i tabellen. Detta händer om du skriver en asterisk "*" i kommandot. Om du behöver välja något exempelvärde, skriver vi så här:

VÄLJ logg, skicka FRÅN tabellen WHERE id = '1'

Det bör noteras att förmågan att arbeta med databaser inte kommer att räcka. För att skapa ett professionellt internetprojekt måste du lära dig hur du lägger till data från databasen på sidorna. För att göra detta, bekanta dig med webbprogrammeringsspråket php. Detta kommer att hjälpa dig klassrumskurs av Mikhail Rusakov .


Släpp ett bord

Uppstår med en DROP-begäran. För att göra detta, skriv följande rader:

DROP TABLE tabell;

Mata ut en post från en tabell enligt ett specifikt villkor

Tänk på en kod som denna:

VÄLJ ID, land, stad FRÅN tabell VAR personer> 150000000

Det kommer att visa register över länder där befolkningen är över hundra och femtio miljoner.

Union

Det är möjligt att länka flera tabeller tillsammans med Join. Hur det fungerar, se den här videon mer detaljerat:

PHP och MySQL

Återigen vill jag betona att det är vanligt att göra förfrågningar när man skapar ett internetprojekt. För att använda dem i php-dokument, följ denna procedur:

  • Vi ansluter till databasen med kommandot mysql_connect ();
  • Använd mysql_select_db () för att välja önskad databas;
  • Vi behandlar begäran med mysql_fetch_array ();
  • Vi stänger anslutningen med kommandot mysql_close ().

Viktig! Att arbeta med en databas är inte svårt. Det viktigaste är att skriva begäran korrekt.

Nybörjare webbansvariga kommer att tänka. Vad ska man läsa om detta ämne? Jag skulle vilja rekommendera boken av Martin Graber " SQL för enbart dödliga ". Det är skrivet på ett sådant sätt att allt blir klart för nybörjare. Använd den som uppslagsbok.

Men detta är teori. Hur är läget i praktiken? I verkligheten behöver ett internetprojekt inte bara skapas, utan också föras till TOPPEN av Google och Yandex. Videokursen " Skapande och marknadsföring av webbplatser ».


Videoinstruktion

Har du fortfarande frågor? Se onlinevideon mer detaljerat.

Produktion

Så att hantera att skriva SQL-frågor är inte så svårt som det verkar, men alla webbansvariga måste göra det. Detta kommer att hjälpa videokurserna som beskrivs ovan. Prenumerera på min VKontakte-grupp att vara den första att veta om uppkomsten av ny intressant information.







2021 gtavrl.ru.