Bedste svar
En primær nøgle er en særlig begrænsning for en kolonne eller et sæt kolonner. En primær nøglebegrænsning sikrer, at de således udpegede kolonner ikke har NULL-værdier, og at hver værdi er unik. Fysisk implementeres en primær nøgle af databasesystemet ved hjælp af et unikt indeks, og alle kolonnerne i den primære nøgle skal være erklæret IKKE NULL. En tabel kan kun have en primær nøgle, men den kan være sammensat (består af mere end en kolonne).
En surrogatnøgle er enhver kolonne eller et sæt kolonner, der kan erklæres som den primære nøgle i stedet for som en “reel” eller naturlig nøgle . Nogle gange kan der være flere naturlige nøgler, der kunne erklæres som den primære nøgle, og disse kaldes alle kandidatnøgler . Så et surrogat er en kandidatnøgle. Et bord kunne faktisk have mere end en surrogatnøgle, selvom dette ville være usædvanligt. Den mest almindelige type surrogatnøgle er et inkrement-heltal, såsom en auto\_increment-kolonne i MySQL eller en sekvens i Oracle eller en identitetskolonne i SQL Server.
Fordele ved brug af surrogatnøgler
Som nævnt ofrer en surrogatnøgle noget af den oprindelige kontekst af dataene. Det kan dog være yderst nyttigt til analytiske formål af følgende grunde:
- Surrogatnøgler er unikke. Fordi surrogatnøgler er systemgenereret er det umuligt for systemet at oprette og gemme en duplikatværdi.
- Surrogatnøgler anvender ensartede regler på alle poster. Surrogatnøgleværdien er resultatet af et program, der skaber den systemgenererede værdi. Enhver nøgle, der oprettes som et resultat af et program, anvender ensartede regler for hver post.
- Surrogatnøgler står over for tidens test. Fordi surrogat nøgler mangler nogen sammenhæng eller forretningsbetydning, der er ikke behov for at ændre nøglen i fremtiden.
- Surrogatnøgler giver mulighed for ubegrænsede værdier. Sekventielle, tidsstempel og tilfældige nøgler har ingen praktiske grænser for unikke kombinationer.
Svar
De fleste databaser i dag er virkelig databasestyringssystemer (DBMS). Disse består af to komponenter:
- databasen korrekt , som gemmer dataene sammen med metadata, såsom relationer, begrænsninger osv …
- brugergrænsefladen, hvor udvikleren og / eller databaseadministratoren indtaster SQL-kommandoer.
Størstedelen af databaser leveres med et kommandolinjeprogram til grænseflade med databasen. For eksempel leverer MySQL en simpel SQL-shell med inputlinjeredigeringsfunktioner. Det understøtter interaktiv og ikke-interaktiv brug. Når de bruges interaktivt, vises forespørgselsresultater i et ASCII-tabelformat. Når det bruges ikke-interaktivt (f.eks. Som et filter), vises resultatet i tabulatoradskilt format. Outputformatet kan ændres ved hjælp af kommandomuligheder.
For at påberåbe MySQL-shell fra prompten fra din kommandortolker, skal du indtaste noget som følger:
shell> mysql --user=user\_name --password db\_name
Enter password: your\_password
Når du er logget ind på din database, kan du udføre kommandoer, såsom en SELECT-forespørgsel , imod det:
shell>SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 1 | A | 3.45 |
| 1 | B | 3.99 |
| 2 | A | 10.99 |
| 3 | B | 1.45 |
| 3 | C | 1.69 |
| 3 | D | 1.25 |
| 4 | D | 19.95 |
+---------+--------+-------+
Du kan også sætte dine SQL-sætninger i en fil og fortæl derefter mysql at læse dens input fra den fil. For at gøre dette opretter du en tekstfil, der indeholder de udsagn, du ønsker at udføre. Påkald derefter mysql som vist her:
shell> mysql db\_name
Nogle databaseleverandører tilbyder også GUI-klienter og hjælpeprogrammer ud over en kommando- linjeklient. I overensstemmelse med MySQL er dens GUI-klient MySQL Workbench. Tilgængelig på Windows, Linux og Mac OS X, MySQL Workbench er rettet mod databasearkitekter, udviklere og DBAer. Det giver datamodellering, SQL-udvikling og omfattende administrationsværktøjer til serverkonfiguration, brugeradministration, backup og meget mere.
Andre værktøjer
Udover værktøjer, der tilbydes af databaseleverandørerne selv, er der mange andre open source og kommercielle tilbud tilgængelige for alle de populære databasetyper og skytjenester. Med hensyn til forskelle er både gratis og kommercielle produkter velegnede til deres formål.Hvilken du går med, vil normalt være mere en funktion af, hvilken type arbejde du laver i stedet for brugervenlighed.
Efter at have arbejdet en hel del med både open source og kommercielle produkter, fandt jeg ud af, at jeg gradvis graviterede mod sidstnævnte, da arbejdseffektivitet blev vigtigere for mit arbejde som IT-konsulent. Min personlige opfattelse er, at kommercielle produkter kan gøre dig mere produktiv, da de strømline fælles opgaver for at øge effektiviteten.
Som et resultat har jeg brugt Navicat Premium databaseudvikling og admin-klient i flere år nu. Selvom Navicat opretter klienter til al populær database, er Navicat Premium det eneste værktøj, jeg har brugt, der er i stand til samtidig at oprette forbindelse til MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL og SQLite-databaser fra en enkelt applikation. Det er også fuldt kompatibelt med cloud-databaser som Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud og Google Cloud.
Her er et skærmbillede af hovedskærmen i Windows:
Alle Navicat-produkter er tilgængelige til Linux og macOS samt Windows.
Især Query Editor hjælper mig med at skrive mine forespørgsler hurtigere ved at inkludere syntaksfremhævning, genanvendelige og tilpassbare kodestykker samt automatisk forslag, som vist nedenfor:
Det har endda en forespørgselsbygger, der er til stor fordel for mindre erfarne brugere. Det giver dig mulighed for at oprette og redigere forespørgsler visuelt uden praktisk kendskab til SQL!
Håber det hjælper!
Med venlig hilsen,
Adam