sql >> Database teknologi >  >> RDS >> Mysql

Hvad er MySQL:En oversigt

Mange programmer skal gemme eller gemme data til senere brug og læse data, der er optaget. Selvom der er mange måder at gøre dette på, er den mest almindelige tilgang at bruge et Relational DataBase Management System (RDBMS). MySQL er et industristandard open source RDBMS, der er blevet bredt brugt af softwareudviklingsprojekter. Denne guide giver et overblik over MySQL og forklarer de vigtigste RDBMS-koncepter.

Hvad er en relationel database (RDBMS)?

En database er et program til at gemme og hente data. Selvom mekanismerne er forskellige, har de fleste databaser en API, der giver brugerne mulighed for at tilføje, slette, få adgang til, søge og administrere deres data. Som et alternativ til at bruge en database kan data gemmes i tekstfiler eller hashtabeller. Denne teknik er dog ikke så hurtig eller praktisk som at bruge en database og bruges sjældent i moderne systemer.

Tidlige databaseapplikationer udviklede sig til den moderne relationelle database , som giver brugerne mulighed for at gemme enorme mængder data. En RDBMS tvinger ikke længere brugere til at gemme data i én stor tabel. Det giver mere strukturerede måder at opdele data på og er designet til mere effektiv adgang. RDBMS-applikationer er optimeret til hurtig læsning og skrivning og masseoverførsel af information.

Databasedesignere konceptualiserer og organiserer dataene i form af tabeller , kolonner , og rækker . En række omtales også som en post , eller tupel. Nutidige relationelle databaser strukturerer dataene ved hjælp af følgende begreber:

  • Hver database indeholder en eller flere tabeller.
  • Når brugeren opretter en tabel, angiver de kolonnerne i tabellen på samme tid.
  • Hver kolonne repræsenterer en specifik attribut eller felt i posten. En kolonne er designet til at indeholde data af en bestemt datatype, for eksempel VARCHAR , som står for en streng med variabel længde.
  • En tabel indeholder en klynge af rækker.
  • Hver række i en tabel repræsenterer en unik databasepost. Hver kolonne i rækken indeholder et individuelt felt i denne post.
  • En databasetabel er som en to-til-to matrix. Hver firkant inde i matrixen indeholder et stykke data.

Et RDBMS anses for at være relationelt, fordi det giver brugerne mulighed for at definere relationer inden for og mellem de forskellige tabeller ved hjælp af nøgler og indekser. En relationsdatabase tillader en bruger at levere eller generere en primær nøgle for hver række. SQL kan garantere, at denne nøgle er unik i tabellen. Felterne i disse tabeller kan være relateret til hinanden baseret på deres primære og fremmede nøgler. Disse relationer hjælper med at strukturere og organisere databasen og begrænse mængden af ​​dataduplikering.

En RDBMS-applikation giver altid de funktioner, der er angivet nedenfor. Individuelle applikationer tilbyder muligvis flere muligheder.

  • Det giver mulighed for oprettelse, definition, ændring og fjernelse af databasetabeller, kolonner, rækker, primærnøgler og indekser.
  • Den accepterer SQL-forespørgsler og gemmer eller henter de relevante data ved at kombinere information fra forskellige databasetabeller efter behov.
  • Det garanterer integriteten af ​​dataene og referencerne mellem tabellerne. For eksempel peger en fremmednøgle altid på en gyldig række i en anden tabel.
  • Det opdaterer automatisk indekser, tidsstempler og andre internt genererede attributter efter behov.

Relationelle databaser bruger Structured Query Language (SQL) for at forespørge og opdatere databasen. For eksempel bruger en RDBMS-klient SQL INSERT kommando for at tilføje en ny række til en af ​​databasetabellerne. Når en bruger tilføjer en ny række, angiver de samtidig en værdi for hver kolonne. Yderligere SQL-kommandoer bruges til at ændre og slette rækker, administrere databaseelementer og hente en liste over poster, der opfylder specifikke kriterier.

Overvej for eksempel en database for en skole. Denne database har flere tabeller for lærere, studerende, kurser, klasseværelser og så videre. Definitionen af ​​Studenter tabel kan indeholde kolonner for elevens for- og efternavn, id, karakter, familie og mere. Hver række i denne tabel symboliserer en individuel elev og tjener til at repræsentere og indsamle alle relevante oplysninger om denne elev. Hvis elevens navn er "John", for_name kolonne i denne række indeholder John . Elev-id'et kan tjene som indeks og primær nøgle og kan bruges til at krydshenvise eleven i andre tabeller.

For eksempel en forenklet Studenter tabel kan defineres ved hjælp af strukturen vist nedenfor. Den øverste række repræsenterer navnene på kolonnerne i tabellen. Tabellen nedenfor har i øjeblikket to rækker med data, en for hver elev.

fornavn efternavn karakter familie-id student_id
John Doe 4 1116 5005
Jane Student 5 1224 5350

Hvad er nogle almindelige RDBMS-vilkår?

Følgende termer bruges ofte i relation til databaser:

  • Kolonne: Et sæt værdier af samme datatype, der repræsenterer én attribut i en tabel. Kolonner defineres, når en tabel oprettes.
  • Sammensat nøgle: En nøgle bestående af flere kolonner. En sammensat nøgle bruges, når en enkelt kolonne ikke kan identificere en række pålideligt.
  • Database: En organiseret gruppe af data, der lagres elektronisk. En database er normalt organiseret i mindre klynger af information.
  • Udenlandsk nøgle: Et indeks, der bruges til at krydslinke en tabelpost til en række i en anden tabel.
  • Indeks: En metode til hurtigere at få adgang til databaseposter. Et indeks kan oprettes ved hjælp af enhver kombination af attributter, men implementeringen er applikationsspecifik. Et databaseindeks ligner et indeks i en bog.
  • Primær nøgle: En kolonne, der tjener som et indeks til entydigt at identificere en række inde i en tabel. En primær nøgle kan enten være automatisk genereret eller defineret i tabeldefinitionen. En primær nøgle kan bruges til at finde en bestemt række i en tabel.
  • Referentiel integritet: En intern databaseegenskab for at sikre, at en fremmednøgle altid refererer til en gyldig række i en anden tabel.
  • Relational DataBase Management System (RDBMS): En type databasesystem baseret på relationer mellem tabeller og poster.
  • Række: En struktureret post i en tabel bestående af et sæt relaterede data. Hver række i en tabel har den samme struktur, som svarer til kolonnespecifikationerne i tabeldefinitionen. En række omtales også som en post eller en tupel.
  • Structured Query Language (SQL): Et forenklet domænespecifikt programmeringssprog, der bruges til at administrere data i et RDBMS.
  • Tabel: En samling af databaseposter, bestående af en række rækker og kolonner. En tabel kan opfattes som en todimensionel matrix af information.

SQL vs. MySQL

Begreberne SQL og MySQL er ofte blandet sammen eller bruges i flæng, men de er ikke ens. SQL er standardprogrammeringssproget til forespørgsler på RDBMS-applikationer. Det bruges til at skrive databaseforespørgsler og kan bruges med ethvert databasesystem, der understøtter det. MySQL er en specifik forekomst af et RDBMS, der bruger SQL. Databasebrugere sender SQL-kommandoer til en RDBMS såsom MySQL for at læse og skrive data og for at administrere databasen. Der er ingen applikation med navnet SQL, så det giver ikke mening at lave en "SQL vs MySQL" sammenligning. Men udtrykket SQL-database bruges ofte uformelt som en forkortelse for enhver relationel database.

SQL-sproget

SQL-sproget er angivet som en række udsagn. Det betragtes ikke som et generelt imperativt programmeringssprog som Python, fordi det mangler et komplet udvalg af datastrukturer og kontroludsagn. Det er i stedet et domænespecifikt sprog beregnet til et enkelt formål. SQL er designet til forespørgsel, definition og manipulation af data. Det er også designet til at give dataadgangskontrol. En fordel ved SQL er, at den kan få adgang til flere poster ved kun at bruge én kommando. Den specificerer ikke, hvordan databasen skal få adgang til en post.

SQL-sproget består af udpegede nøgleord, udtryk, forespørgsler, sætninger, operatorer og valgfrie klausuler. Objektidentifikatorer bruges til at henvise til databaseenheder, herunder tabeller og kolonner. SQL understøtter et stort antal foruddefinerede datatyper, såsom CHAR , for tegnet og INTEGER . Nogle af de vigtigste SQL-operatorer inkluderer = , <> , > , < , IN , LIKE , TRUE , FALSK , og IKKE . Nylige udgivelser af SQL understøtter nu en simpel CASE udmelding. MySQL-dokumentationen indeholder flere oplysninger om SQL-sprogstrukturen, datatyper og udsagn.

Nogle af de mest udbredte SQL-sætninger og -sætninger inkluderer følgende:

  • ÆNDRING: Ændrer strukturen af ​​et databaseobjekt.
  • OPRET: Opretter et databaseobjekt, såsom en tabel eller database.
  • SLET: Fjerner en eller flere eksisterende rækker fra databasen.
  • SLIP: Sletter et objekt permanent fra databasen.
  • FRA: Angiver, hvilken tabel der skal bruges til forespørgslen.
  • GIVNING: Giver en databasebruger tilladelse til at udføre en bestemt handling.
  • GRUPPER EFTER: En klausul til at organisere output fra en SELECT erklæring.
  • INDSÆT: Tilføjer rækker til databasen.
  • DELTAG: En klausul, der specificerer, hvordan man kombinerer og samler data fra flere tabeller.
  • FLET: Kombinerer data fra flere tabeller.
  • BEstil efter: En klausul til sortering af output fra en forespørgsel.
  • VÆLG: Henter data fra en eller flere tabeller. Denne kommando ændrer ikke databasen eller ændrer nogen data.
  • OPDATERING: Ændrer en eller flere eksisterende rækker.
  • HVOR: En klausul til at identificere de rækker, en forespørgsel skal fungere på. Det bruges typisk sammen med en sammenligningsoperator.

Jokertegnet * operator bruges ofte sammen med SELECT kommando. Denne kommando instruerer SQL til at vise alle kolonner i outputtet.

Nedenfor er et par eksempler på SQL-forespørgsler. Den følgende SQL-kommando viser name af hver klasse i Klassen database for hver række, hvor værdien af ​​emnet kolonnen er matematik .

SELECT name
    FROM Class
    WHERE subject='math';

Den næste SQL-sætning opretter Class bord. CREATE sætning definerer hver kolonne i tabellen sammen med dens datatype i sekventiel rækkefølge. VARCHAR datatypen bruges til at holde en streng med variabel længde. SMALLINT datatypen bruges til små heltalsværdier fra det signerede område -32768 til 32767 .

CREATE TABLE Class (
    classID smallint,
    name varchar(255),
    subject varchar(255),
    level smallint
);

Hvad er MySQL-databasen?

MySQL er et RDBMS, der implementerer SQL. Det blev oprindeligt designet til brug med små til mellemstore databaser, men det kan nu håndtere selv meget store mængder lagret data. MySQL er skrevet i C/C++ og er for det meste kompatibel med SQL-standarden. Det tilføjer dog mange udvidelser og understreger hastighed og pålidelighed frem for perfekt compliance. En mere detaljeret diskussion om MySQL og SQL-overholdelse kan findes i MySQL-dokumentationen om overholdelsesstandarder.

Den grundlæggende version af MySQL distribueres af Oracle Corporation og er tilgængelig gratis under en open source-licens. Den aktuelle udgivelse af MySQL er 8.0. MySQL kan bruges på enhver Linux-distribution og på de fleste andre platforme. Det er en vigtig komponent i open sourceLAMP-stakken , sammen med Linux, Apache og programmeringssproget PHP. LAMP-stakken er hjørnestenen i udvikling af open source webapplikationer på Linux. MySQL kan bruges som en del af et klient/serversystem eller som en del af et indlejret system.

Som alle RDBMS-applikationer er MySQL en relationel database. Administratorer og brugere definerer relationer inden for og mellem tabellerne i databasen. Forskellige kolonner kan markeres som enten påkrævet eller valgfri og kan tjene som en primær nøgle eller som en pegepind til en anden tabel. MySQL er stabil, pålidelig og nem at bruge. Her er nogle specifikke fordele ved MySQL:

  • MySQL er et modent, populært og veletableret produkt. Den har mere fællesskabsstøtte end andre open source-databaser og bedre referencemateriale og dokumentation.
  • MySQL kan konfigureres til at være ACID-kompatibel når det bruges sammen med InnoDB-lagersystemet. Akronymet ACID står for Atomicity, Consistency, Isolation og Durability. Det betyder, at den kan garantere datagyldighed på trods af fejl, fejl eller udfald.
  • Den er kendt for sin høje ydeevne på grund af funktioner som optimerede klassebiblioteker, komprimering, hukommelsesallokering og hashtabeller. Det understøtter flertrådede kernetråde for mere effektiv drift på systemer med flere CPU'er.
  • Den understøtter meget store databaser, der gemmer op til hundreder af millioner af poster og op til 64 indekser pr. tabel.
  • MySQL giver forbedrede sikkerhedsmekanismer, herunder kryptering af alle adgangskoder.
  • Det giver mulighed for datareplikering og redundans for øget pålidelighed.
  • MySQL giver understøttelse af aliaser på tabeller og kolonner og fuld understøttelse af mange forskellige tegnsæt.
  • MySQL fungerer godt sammen med PHP, som er meget brugt i webudvikling.
  • Det fungerer med mange forskellige compilere og på mange forskellige platforme og er designet til at være bærbart mellem systemer. Klientprogrammer kan skrives på mange sprog. MySQL leverer API'er til C/C++, PHP, Java, Python, Ruby og Perl.
  • MySQL er tilgængelig som et bibliotek, der kan indlejres i selvstændige applikationer.
  • MySQL er pakket med flere praktiske klientværktøjer, inklusive mysqldump og mysqladmin . Brugere kan verificere, optimere og reparere tabeller ved hjælp af mysqlcheck program.
  • MySQL open source-licensen giver udviklere mulighed for at tilpasse MySQL og ændre kildekoden, så den opfylder deres krav.

MySQL er også tilgængelig i en mere fuldt udstyret Enterprise Edition med fuld kundesupport. For information om installation af MySQL på Ubuntu eller andre Linux-platforme, se Linode-vejledningen om installation og konfiguration af MySQL på Ubuntu 20.04.

SQL vs. NoSQL

NoSQL-systemer er et alternativ til traditionelle SQL-baserede RDBMS-applikationer. Som navnet antyder, bruger de en ikke-relationel model til at håndtere data. De er typisk mindre strukturerede og mere fleksible end et RDBMS. NoSQL-systemer er ikke standardiserede og kan tage en række forskellige formater. De er dog typisk nøgleværdi-, graf- eller dokumentbaserede, ikke tabelbaserede. Nogle NoSQL-applikationer kan bruge strukturerede domænespecifikke sprog eller endda acceptere SQL-forespørgsler parallelt. Et par eksempler på NoSQL-applikationer inkluderer Redis og MongoDB. For mere information om NoSQL-systemer, se Linode-guiden for sammenligning mellem SQL- og NoSQL-databaser.

Hvad er MySQL-klienten og -serveren?

MySQL-klienten og MySQL-serveren er to forskellige komponenter, der arbejder sammen i en netværksarkitektur. Der er normalt én central server og én eller flere klienter. MySQL-databaseserverapplikationen er installeret på en vært, ofte som en del af LAMP-stakken. Denne server gemmer databasekonfigurationen og dataene og svarer på forespørgsler fra klienter. Det håndhæver også sikkerhed og ethvert adgangskontrolsystem og replikerer og arkiverer data efter behov. Den samme server kan være vært for flere databaser for forskellige klienter.

MySQL-klienten gør det muligt for brugere at oprette forbindelse til en MySQL-server, enten på det samme system eller på en anden vært. Klienten sender SQL-forespørgsler til serveren for at læse fra eller skrive til en database. MySQL-klienten administrerer, vedligeholder og sikrer også klienten. En selvstændig klient anbefales til brugere, der kun ønsker at oprette forbindelse til en fjerndatabase for at køre forespørgsler. Administratorer, der ønsker at være vært for en database på serveren, skal installere den fulde MySQL-serverpakke. Serverinstallationen inkluderer en klient til at oprette og administrere databasen.

Standard MySQL kommandolinjeklientværktøjet hedder mysql . Det kan installeres uden serverkomponenten ved at bruge kommandoen yum install mysql eller apt-get install mysql-client . For at få adgang til MySQL-klienten skal du bruge kommandoen mysql . Brugernavnet, adgangskoden og serverens IP-adresse kan angives ved hjælp af yderligere parametre.

Når brugeren logger ind, viser klienten MySQL-prompten mysql> . Brugeren kan derefter køre SQL-kommandoer. For mere information om installation og brug af MySQL, se Linode-vejledningen om, hvordan du opretter forbindelse til en MySQL- eller MariaDB-database.

Hvad bruges MySQL til?

MySQL er et alsidigt RDBMS til brug med et datasæt af enhver størrelse. Det kan overvejes, når som helst en applikation skal gemme og hente data. MySQL blev oprindeligt udviklet til små til mellemstore enkeltserverkonfigurationer. Men med de seneste forbedringer af ydeevne og skalerbarhed kan den bruges stort set hvor som helst i en applikation af enhver størrelse. Selv store virksomheder, herunder Uber, Airbnb og Shopify, bruger MySQL.

Brugere skal installere MySQL for at konfigurere WordPress. WordPress bruger MySQL til at gemme alle sine data og konfigurationsfiler og interagerer dynamisk med MySQL for at vise og oprette websider. Brugere behøver ikke nødvendigvis at forstå SQL for at bruge WordPress. Det kan dog være nyttigt, når du udfører avancerede tilpasninger. På Linux installeres WordPress ofte som en pakke sammen med MySQL og resten af ​​LAMP-stakken. For mere information om, hvordan du konfigurerer MySQL og WordPress, se Linode-vejledningen om installation af WordPress på Ubuntu 20.04.

Andre almindelige applikationer til MySQL omfatter data warehousing, transaktionsbehandling, reservationssystemer, e-handel og webdatabaser. For eksempel kan en MySQL-database vedligeholde produktlisten og inventaret for en online butik.

Konklusion

Denne vejledning besvarer det ofte stillede spørgsmål "Hvad er en MySQL-database?" MySQL er en relationsdatabase, der organiserer data baseret på relationerne mellem tabeller og felter. Det er en type Relational DataBase Management System (RDBMS), som gemmer indgange som rækker i tabeller. Hver række består af et antal kolonner, som repræsenterer datapostens forskellige attributter. Det databasespecifikke SQL-programmeringssprog bruges til at gemme og hente data fra MySQL. SQL bruger en række diskrete sætninger og er beregnet til at arbejde med RDBMS-systemer.

MySQL er kendt for sin evne til at gemme store tabeller og enorme mængder data, samt for dets hastighed og pålidelighed. Det giver API'er til mange almindelige programmeringssprog og er pakket med flere nyttige værktøjer. MySQL-serveren gemmer data og svar på anmodninger fra MySQL-klienter. Klienten er altid pakket med serveren, men den kan bruges som en selvstændig applikation til at kommunikere med eksterne databaser. MySQL bruges i mange kendte virksomheder og er afgørende for dem, der ønsker at bruge WordPress. Det bruges dog også i webdatabaser og data warehousing. For mere information om MySQL, se MySQL-dokumentationen.

Flere oplysninger

Du ønsker måske at konsultere følgende ressourcer for yderligere oplysninger om dette emne. Selvom disse leveres i håb om, at de vil være nyttige, bemærk venligst, at vi ikke kan stå inde for nøjagtigheden eller aktualiteten af ​​eksternt hostede materialer.

  • Officiel MySQL-dokumentation

  1. oracle sql:opdater hvis der findes andet indsæt

  2. Hvad er fordelene ved et datastyringssystem?

  3. Sådan ser du den faktiske Oracle SQL-sætning, der udføres

  4. PostgreSQL slette alt indhold