sql >> Database >  >> RDS >> Mysql

Wat is MySQL:een overzicht

Veel programma's moeten gegevens opslaan of opslaan voor later gebruik en gegevens lezen die zijn opgenomen. Hoewel er veel manieren zijn om dit te doen, is de meest gebruikelijke aanpak het gebruik van een Relationeel DataBase Management Systeem (RDBMS).MySQL is een industriestandaard open-source RDBMS dat op grote schaal is overgenomen door softwareontwikkelingsprojecten. Deze gids geeft een overzicht van MySQL en legt de belangrijkste RDBMS-concepten uit.

Wat is een relationele database (RDBMS)?

Een database is een applicatie voor het opslaan en ophalen van gegevens. Hoewel de mechanismen verschillen, bieden de meeste databases een API waarmee gebruikers hun gegevens kunnen toevoegen, verwijderen, openen, doorzoeken en beheren. Als alternatief voor het gebruik van een database kunnen gegevens worden opgeslagen in tekstbestanden of hashtabellen. Deze techniek is echter niet zo snel of handig als het gebruik van een database en wordt zelden gebruikt in moderne systemen.

Vroege database-applicaties evolueerden naar de moderne relationele database , waarmee gebruikers enorme hoeveelheden gegevens kunnen opslaan. Een RDBMS dwingt gebruikers niet langer om gegevens in één grote tabel op te slaan. Het biedt meer gestructureerde manieren om de gegevens te partitioneren en is ontworpen voor efficiëntere toegang. RDBMS-applicaties zijn geoptimaliseerd voor snel lezen en schrijven en bulkoverdracht van informatie.

Databaseontwerpers conceptualiseren en organiseren de gegevens in termen van tabellen , kolommen , en rijen . Een rij wordt ook wel een record genoemd , of tupel. Hedendaagse relationele databases structureren de gegevens met behulp van de volgende concepten:

  • Elke database bevat een of meer tabellen.
  • Als de gebruiker een tabel maakt, specificeert hij tegelijkertijd de kolommen in de tabel.
  • Elke kolom vertegenwoordigt een specifiek attribuut, of veld, binnen de record. Een kolom is ontworpen om gegevens van een bepaald gegevenstype te bevatten, bijvoorbeeld VARCHAR , wat staat voor een string met variabele lengte.
  • Een tabel bevat een cluster van rijen.
  • Elke rij in een tabel vertegenwoordigt een uniek database-item. Elke kolom in de rij bevat een afzonderlijk veld in dat item.
  • Een databasetabel is als een twee-bij-twee matrix. Elk vierkant in de matrix bevat een stukje data.

Een RDBMS wordt als relationeel beschouwd omdat het gebruikers in staat stelt om relaties binnen en tussen de verschillende tabellen te definiëren met behulp van sleutels en indices. Een relationele database staat een gebruiker toe om een ​​primaire sleutel op te geven of te genereren voor elke rij. SQL kan garanderen dat deze sleutel uniek is binnen de tabel. De velden in deze tabellen kunnen aan elkaar gerelateerd zijn op basis van hun primaire en externe sleutels. Deze relaties helpen bij het structureren en organiseren van de database en beperken de hoeveelheid gegevensduplicatie.

Een RDBMS-applicatie biedt altijd de onderstaande mogelijkheden. Individuele toepassingen bieden mogelijk meer opties.

  • Hiermee kunnen databasetabellen, kolommen, rijen, primaire sleutels en indices worden gemaakt, gedefinieerd, gewijzigd en verwijderd.
  • Het accepteert SQL-query's en slaat de relevante gegevens op of haalt ze op, waarbij indien nodig informatie uit verschillende databasetabellen wordt gecombineerd.
  • Het garandeert de integriteit van de gegevens en de verwijzingen tussen de tabellen. Een externe sleutel verwijst bijvoorbeeld altijd naar een geldige rij in een andere tabel.
  • Het werkt automatisch indexen, tijdstempels en andere intern gegenereerde attributen bij zoals vereist.

Relationele databases gebruiken de Structured Query Language (SQL) om de database te doorzoeken en bij te werken. Een RDBMS-client gebruikt bijvoorbeeld de SQL INSERT commando om een ​​nieuwe rij toe te voegen aan een van de databasetabellen. Wanneer een gebruiker een nieuwe rij toevoegt, specificeren ze tegelijkertijd een waarde voor elke kolom. Aanvullende SQL-opdrachten worden gebruikt om rijen te wijzigen en te verwijderen, database-items te beheren en een lijst met records op te halen die aan specifieke criteria voldoen.

Denk bijvoorbeeld aan een database voor een school. Deze database heeft verschillende tabellen, voor docenten, studenten, cursussen, klaslokalen, enzovoort. De definitie van de Students tabel kan kolommen bevatten voor de voor- en achternaam van de student, ID, cijfer, familie en meer. Elke rij in deze tabel symboliseert een individuele student en dient om alle relevante informatie over die student weer te geven en te verzamelen. Als de naam van de leerling "Jan" is, is de first_name kolom in deze rij bevat John . De student-ID kan dienen als de index en primaire sleutel en kan worden gebruikt om naar de student te verwijzen in andere tabellen.

Bijvoorbeeld een vereenvoudigde Students tabel kan worden gedefinieerd met behulp van de onderstaande structuur. De bovenste rij vertegenwoordigt de namen van de kolommen in de tabel. De onderstaande tabel bevat momenteel twee rijen met gegevens, één voor elke leerling.

first_name achternaam grade family_id student_id
John Doe 4 1116 5005
Jane Leerling 5 1224 5350

Wat zijn enkele algemene RDBMS-termen?

De volgende termen worden vaak gebruikt met betrekking tot databases:

  • Kolom: Een set waarden van hetzelfde gegevenstype, die één kenmerk in een tabel vertegenwoordigt. Kolommen worden gedefinieerd wanneer een tabel wordt gemaakt.
  • Samengestelde sleutel: Een sleutel die uit meerdere kolommen bestaat. Een samengestelde sleutel wordt gebruikt wanneer een enkele kolom een ​​rij niet op betrouwbare wijze kan identificeren.
  • Database: Een georganiseerde groep gegevens die elektronisch wordt opgeslagen. Een database is meestal georganiseerd in kleinere informatieclusters.
  • Buitenlandse sleutel: Een index die wordt gebruikt om een ​​tabelvermelding te crosslinken naar een rij in een andere tabel.
  • Index: Een methode om sneller toegang te krijgen tot database-items. Een index kan worden gemaakt met elke combinatie van attributen, maar de implementatie is toepassingsspecifiek. Een database-index is vergelijkbaar met een index in een boek.
  • Primaire sleutel: Een kolom die als index dient om een ​​rij in een tabel op unieke wijze te identificeren. Een primaire sleutel kan automatisch worden gegenereerd of worden gedefinieerd in de tabeldefinitie. Een primaire sleutel kan worden gebruikt om een ​​specifieke rij in een tabel te lokaliseren.
  • Referentiële integriteit: Een interne database-eigenschap om ervoor te zorgen dat een externe sleutel altijd verwijst naar een geldige rij in een andere tabel.
  • Relationeel databasebeheersysteem (RDBMS): Een type databasesysteem gebaseerd op relaties tussen tabellen en items.
  • Rij: Een gestructureerd item in een tabel die bestaat uit een set gerelateerde gegevens. Elke rij in een tabel heeft dezelfde structuur, wat overeenkomt met de kolomspecificaties in de tabeldefinitie. Een rij wordt ook wel een record of een tuple genoemd.
  • Gestructureerde Query-taal (SQL): Een vereenvoudigde domeinspecifieke programmeertaal die wordt gebruikt om gegevens in een RDBMS te beheren.
  • Tabel: Een verzameling databaserecords, bestaande uit een reeks rijen en kolommen. Een tabel kan worden gezien als een tweedimensionale matrix van informatie.

SQL versus MySQL

De termen SQL en MySQL worden vaak door elkaar gehaald of door elkaar gebruikt, maar ze zijn niet hetzelfde. SQL is de standaard programmeertaal voor het opvragen van RDBMS-applicaties. Het wordt gebruikt om databasequery's te schrijven en kan worden gebruikt met elk databasesysteem dat dit ondersteunt. MySQL is een specifiek exemplaar van een RDBMS dat gebruikmaakt van SQL. Databasegebruikers sturen SQL-opdrachten naar een RDBMS zoals MySQL om gegevens te lezen en te schrijven en om de database te beheren. Er is geen applicatie met de naam SQL, dus het heeft geen zin om een ​​"SQL vs MySQL" vergelijking te maken. De term SQL-database wordt vaak informeel gebruikt als een verkorte term voor een relationele database.

De SQL-taal

De SQL-taal wordt gespecificeerd als een reeks instructies. Het wordt niet beschouwd als een imperatieve programmeertaal voor algemene doeleinden zoals Python, omdat het een volledige reeks gegevensstructuren en besturingsinstructies mist. Het is in plaats daarvan een domeinspecifieke taal die voor een enkel doel is bedoeld. SQL is ontworpen voor het opvragen, definiëren en manipuleren van gegevens. Het is ook ontworpen om gegevenstoegangscontrole te bieden. Een voordeel van SQL is dat het toegang heeft tot meerdere records met slechts één opdracht. Het specificeert niet hoe de database toegang moet krijgen tot een item.

De SQL-taal bestaat uit aangewezen trefwoorden, uitdrukkingen, query's, instructies, operators en optionele clausules. Object-ID's worden gebruikt om te verwijzen naar database-entiteiten, inclusief tabellen en kolommen. SQL ondersteunt een groot aantal vooraf gedefinieerde gegevenstypen, zoals CHAR , voor het teken, en INTEGER . Enkele van de belangrijkste SQL-operators zijn = , <> , > , < , IN , LIKE , TRUE , FALSE , en NOT . Recente releases van SQL ondersteunen nu een eenvoudige CASE uitspraak. De MySQL-documentatie bevat meer informatie over de SQL-taalstructuur, gegevenstypen en instructies.

Enkele van de meest gebruikte SQL-instructies en -clausules zijn de volgende:

  • VERANDER: Wijzigt de structuur van een database-object.
  • MAAK: Creëert een database-object, zoals een tabel of database.
  • VERWIJDEREN: Verwijdert een of meer bestaande rijen uit de database.
  • DROP: Verwijdert een object permanent uit de database.
  • VAN: Geeft aan welke tabel voor de zoekopdracht moet worden gebruikt.
  • SUBSIDIE: Autoriseert een databasegebruiker om een ​​bepaalde actie uit te voeren.
  • GROEPEREN OP: Een clausule om de uitvoer van een SELECT . te organiseren verklaring.
  • INSERT: Voegt rijen toe aan de database.
  • DOE MEE: Een clausule die specificeert hoe gegevens uit meerdere tabellen moeten worden gecombineerd en samengesteld.
  • MERGE: Combineert gegevens uit meerdere tabellen.
  • BESTEL OP: Een clausule voor het sorteren van de uitvoer van een query.
  • SELECTEER: Haalt gegevens op uit een of meer tabellen. Deze opdracht verandert de database niet en verandert geen gegevens.
  • UPDATE: Wijzigt een of meer bestaande rijen.
  • WAAR: Een clausule om de rijen te identificeren waarop een query moet werken. Het wordt meestal gebruikt met een vergelijkingsoperator.

Het jokerteken * operator wordt vaak gebruikt in combinatie met de SELECT opdracht. Deze opdracht geeft SQL de opdracht om alle kolommen in de uitvoer weer te geven.

Hieronder vindt u een aantal voorbeelden van SQL-query's. De volgende SQL-opdracht toont de name van elke klas in de Class database voor elke rij waar de waarde van het subject kolom is math .

SELECT name
    FROM Class
    WHERE subject='math';

De volgende SQL-instructie maakt de Class tafel. De CREATE statement definieert elke kolom in de tabel, samen met het gegevenstype, in sequentiële volgorde. De VARCHAR gegevenstype wordt gebruikt om een ​​tekenreeks met variabele lengte vast te houden. De SMALLINT gegevenstype wordt gebruikt voor kleine gehele getallen uit het ondertekende bereik van -32768 naar 32767 .

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

Wat is de MySQL-database?

MySQL is een RDBMS dat SQL implementeert. Het was oorspronkelijk ontworpen voor gebruik met kleine tot middelgrote databases, maar kan nu zelfs zeer grote hoeveelheden opgeslagen gegevens aan. MySQL is geschreven in C/C++ en voldoet grotendeels aan de SQL-standaard. Het voegt echter veel extensies toe en benadrukt snelheid en betrouwbaarheid boven perfecte naleving. Een meer gedetailleerde discussie over MySQL- en SQL-compliance is te vinden in de MySQL-documentatie over Compliance Standards.

De basisversie van MySQL wordt gedistribueerd door Oracle Corporation en is gratis beschikbaar onder een open-sourcelicentie. De huidige release van MySQL is 8.0. MySQL kan op elke Linux-distributie en op de meeste andere platforms worden gebruikt. Het is een belangrijk onderdeel van de open-sourceLAMP-stack , samen met Linux, Apache en de programmeertaal PHP. De LAMP-stack is de hoeksteen van de ontwikkeling van open-source webapplicaties op Linux. MySQL kan worden gebruikt als onderdeel van een client/server-systeem of als onderdeel van een embedded systeem.

Zoals alle RDBMS-applicaties is MySQL een relationele database. Beheerders en gebruikers definiëren relaties binnen en tussen de tabellen in de database. Verschillende kolommen kunnen worden gemarkeerd als verplicht of optioneel en kunnen dienen als primaire sleutel of als verwijzing naar een andere tabel. MySQL is stabiel, betrouwbaar en gebruiksvriendelijk. Hier zijn enkele specifieke voordelen van MySQL:

  • MySQL is een volwassen, populair en goed ingeburgerd product. Het heeft meer community-ondersteuning dan andere open-source databases, en beter referentiemateriaal en documentatie.
  • MySQL kan worden geconfigureerd om ACID-compatibel te zijn bij gebruik met het InnoDB-opslagsysteem. De afkorting ACID staat voor Atomiciteit, Consistentie, Isolatie en Duurzaamheid. Dit betekent dat het de geldigheid van de gegevens kan garanderen, ondanks fouten, storingen of uitval.
  • Het staat bekend om zijn hoge prestaties, dankzij functies zoals geoptimaliseerde klassenbibliotheken, compressie, geheugentoewijzing en hashtabellen. Het ondersteunt multi-threaded kernelthreads voor een efficiëntere werking op systemen met meerdere CPU's.
  • Het ondersteunt zeer grote databases, die tot honderden miljoenen records en tot 64 indexen per tabel kunnen opslaan.
  • MySQL biedt verbeterde beveiligingsmechanismen, inclusief encryptie van alle wachtwoorden.
  • Het zorgt voor gegevensreplicatie en redundantie voor verbeterde betrouwbaarheid.
  • MySQL biedt ondersteuning voor aliassen in tabellen en kolommen, en volledige ondersteuning voor veel verschillende tekensets.
  • MySQL werkt goed met PHP, dat veel wordt gebruikt bij webontwikkeling.
  • Het werkt met veel verschillende compilers en op veel verschillende platforms, en is ontworpen om overdraagbaar te zijn tussen systemen. Clientprogramma's kunnen in vele talen worden geschreven. MySQL biedt API's voor C/C++, PHP, Java, Python, Ruby en Perl.
  • MySQL is beschikbaar als een bibliotheek die kan worden ingesloten in zelfstandige toepassingen.
  • MySQL wordt geleverd met verschillende handige clienthulpprogramma's, waaronder mysqldump en mysqladmin . Gebruikers kunnen tabellen verifiëren, optimaliseren en repareren met behulp van de mysqlcheck programma.
  • Met de MySQL open source-licentie kunnen ontwikkelaars MySQL aanpassen en de broncode aanpassen aan hun vereisten.

MySQL is ook beschikbaar in een meer volledig uitgeruste Enterprise Edition, met volledige klantenondersteuning. Raadpleeg de Linode-gids over MySQL installeren en configureren op Ubuntu 20.04 voor informatie over het installeren van MySQL op Ubuntu of andere Linux-platforms.

SQL versus NoSQL

NoSQL-systemen zijn een alternatief voor traditionele SQL-gebaseerde RDBMS-applicaties. Zoals de naam al aangeeft, gebruiken ze een niet-relationeel model om gegevens te verwerken. Ze zijn doorgaans minder gestructureerd en flexibeler dan een RDBMS. NoSQL-systemen zijn niet gestandaardiseerd en kunnen verschillende formaten aannemen. Ze zijn echter meestal gebaseerd op sleutelwaarden, grafieken of documenten, en niet op tabellen. Sommige NoSQL-applicaties kunnen gestructureerde domeinspecifieke talen gebruiken of zelfs parallelle SQL-query's accepteren. Enkele voorbeelden van NoSQL-toepassingen zijn Redis en MongoDB. Raadpleeg de Linode-gids voor een vergelijking tussen SQL- en NoSQL-databases voor meer informatie over NoSQL-systemen.

Wat zijn de MySQL-client en -server?

De MySQL-client en MySQL-server zijn twee verschillende componenten die samenwerken in een netwerkarchitectuur. Er is meestal één centrale server en één of meer clients. De MySQL-databaseservertoepassing wordt op een host geïnstalleerd, vaak als onderdeel van de LAMP-stack. Deze server slaat de databaseconfiguratie en gegevens op en reageert op vragen van clients. Het handhaaft ook de beveiliging en elk toegangscontrolesysteem en repliceert en archiveert gegevens indien nodig. Dezelfde server kan meerdere databases hosten voor verschillende clients.

Met de MySQL-client kunnen gebruikers verbinding maken met een MySQL-server, op hetzelfde systeem of op een andere host. De client stuurt SQL-query's naar de server om te lezen van of te schrijven naar een database. De MySQL-client beheert, onderhoudt en beveiligt de client ook. Een zelfstandige client wordt aanbevolen voor gebruikers die alleen verbinding willen maken met een externe database om query's uit te voeren. Beheerders die een database op de server willen hosten, moeten het volledige MySQL-serverpakket installeren. De serverinstallatie bevat een client om de database aan te maken en te beheren.

Het standaard MySQL-opdrachtregelprogramma voor de client heet mysql . Het kan worden geïnstalleerd zonder de servercomponent met behulp van het commando yum install mysql of apt-get install mysql-client . Om toegang te krijgen tot de MySQL-client, gebruikt u het commando mysql <database_name> . De gebruikersnaam, het wachtwoord en het IP-adres van de server kunnen worden gespecificeerd met behulp van aanvullende parameters.

Wanneer de gebruiker met succes inlogt, toont de client de MySQL-prompt mysql> . De gebruiker kan vervolgens SQL-opdrachten uitvoeren. Raadpleeg voor meer informatie over het installeren en gebruiken van MySQL de Linode-gids over Verbinding maken met een MySQL- of MariaDB-database.

Waar wordt MySQL voor gebruikt?

MySQL is een veelzijdig RDBMS voor gebruik met een dataset van elke omvang. Het kan worden overwogen wanneer een toepassing gegevens moet opslaan en ophalen. MySQL is oorspronkelijk ontwikkeld voor kleine tot middelgrote configuraties met één server. Maar met recente prestatie- en schaalbaarheidsverbeteringen kan het vrijwel overal worden gebruikt in een toepassing van elke omvang. Zelfs grote bedrijven zoals Uber, Airbnb en Shopify gebruiken MySQL.

Gebruikers moeten MySQL installeren om WordPress te configureren. WordPress gebruikt MySQL om al zijn gegevens- en configuratiebestanden op te slaan en werkt dynamisch samen met MySQL om webpagina's weer te geven en te maken. Gebruikers hoeven niet per se SQL te begrijpen om WordPress te gebruiken. Het kan echter van pas komen bij het uitvoeren van geavanceerde aanpassingen. Op Linux wordt WordPress vaak als pakket geïnstalleerd samen met MySQL en de rest van de LAMP-stack. Zie de Linode-handleiding over WordPress installeren op Ubuntu 20.04 voor meer informatie over het configureren van MySQL en WordPress.

Andere veelgebruikte toepassingen voor MySQL zijn onder meer datawarehousing, transactieverwerking, reserveringssystemen, e-commerce en webdatabases. Een MySQL-database kan bijvoorbeeld de productlijst en inventaris voor een online winkel bijhouden.

Conclusie

Deze handleiding geeft antwoord op de veelgestelde vraag:"Wat is een MySQL-database?" MySQL is een relationele database die gegevens organiseert op basis van de relaties tussen tabellen en velden. Het is een type Relational DataBase Management System (RDBMS), dat items opslaat als rijen in tabellen. Elke rij bestaat uit een aantal kolommen, die de verschillende attributen van het datarecord representeren. De database-specifieke SQL-programmeertaal wordt gebruikt om gegevens op te slaan en op te halen uit MySQL. SQL gebruikt een reeks discrete instructies en is bedoeld om te werken met RDBMS-systemen.

MySQL staat bekend om zijn vermogen om grote tabellen en enorme hoeveelheden gegevens op te slaan, evenals om zijn snelheid en betrouwbaarheid. Het biedt API's voor veel veelvoorkomende programmeertalen en wordt geleverd met verschillende handige hulpprogramma's. De MySQL-server slaat gegevens en reacties op verzoeken van MySQL-clients op. De client wordt altijd bij de server geleverd, maar kan worden gebruikt als een stand-alone toepassing om met externe databases te communiceren. MySQL wordt gebruikt in veel bekende bedrijven en is essentieel voor degenen die WordPress willen gebruiken. Het wordt echter ook gebruikt in webdatabases en datawarehousing. Zie de MySQL-documentatie voor meer informatie over MySQL.

Meer informatie

U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan ​​voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.

  • Officiële MySQL-documentatie

  1. Maak een datum van dag, maand en jaar met T-SQL

  2. 4 gegevenstypen die worden afgeschaft in SQL Server

  3. ProxySQL:alle bronnen van verschillende Nines

  4. Toegang tot MySQL-poorten beperken?