Bästa svaret
En primärnyckel är en särskild begränsning för en kolumn eller uppsättning kolumner. En primär nyckelbegränsning säkerställer att de kolumner som anges så att de inte har några NULL-värden och att varje värde är unikt. Fysiskt implementeras en primärnyckel av databassystemet med ett unikt index, och alla kolumner i primärnyckeln måste ha förklarats INTE NULL. En tabell kan bara ha en primärnyckel, men den kan vara sammansatt (bestå av mer än en kolumn).
En surrogatnyckel är valfri kolumn eller uppsättning kolumner som kan förklaras som den primära nyckeln istället för en ”riktig” eller naturlig nyckel . Ibland kan det finnas flera naturliga nycklar som kan deklareras som den primära nyckeln, och dessa kallas alla kandidatnycklar . Så en surrogat är en kandidatnyckel. Ett bord kan faktiskt ha mer än en surrogatnyckel, även om detta skulle vara ovanligt. Den vanligaste typen av surrogatnyckel är ett inkrement-heltal, till exempel en auto\_increment-kolumn i MySQL, eller en sekvens i Oracle eller en identitetskolumn i SQL Server.
Fördelar med att använda surrogatnycklar
Som nämnts offrar en surrogatnyckel en del av informationens ursprungliga sammanhang. Det kan dock vara extremt användbart för analytiska ändamål av följande skäl:
- Surrogatnycklar är unika. Eftersom surrogatnycklar är systemgenererat är det omöjligt för systemet att skapa och lagra ett dubblettvärde.
- Surrogatnycklar tillämpar enhetliga regler för alla poster. Surrogatnyckelvärdet är resultatet av ett program som skapar det systemgenererade värdet. Alla nycklar som skapas som ett resultat av ett program kommer att tillämpa enhetliga regler för varje post.
- Surrogatnycklar står för tidens test. Eftersom surrogat nycklar saknar något sammanhang eller affärsbetydelse, det kommer inte att behövas någon nyckel i framtiden.
- Surrogatnycklar möjliggör obegränsade värden. Sekventiella, tidsstämplade och slumpmässiga tangenter har inga praktiska gränser för unika kombinationer.
Svar
De flesta databaser idag är verkligen databashanteringssystem (DBMS). Dessa består av två komponenter:
- databasen korrekt , som lagrar data, tillsammans med metadata, såsom relationer, begränsningar , etc …
- användargränssnittet, där utvecklaren och / eller databasadministratören anger SQL-kommandon.
Majoriteten av databaser levereras med ett kommandoradsverktyg för gränssnitt med databasen. MySQL tillhandahåller till exempel ett enkelt SQL-skal med redigeringsfunktioner för inmatningsrader. Den stöder interaktiv och icke-interaktiv användning. När de används interaktivt presenteras förfrågningsresultat i ASCII-tabellformat. När det används icke-interaktivt (till exempel som ett filter) presenteras resultatet i flikseparerat format. Utdataformatet kan ändras med hjälp av kommandoalternativ.
För att åberopa MySQL-skalet från kommandotolkens uppmaning, anger du något som följer:
shell> mysql --user=user\_name --password db\_name
Enter password: your\_password
När du är inloggad i din databas kan du utföra kommandon, till exempel en SELECT-fråga , mot 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 också lägga dina SQL-uttalanden i en fil och berätta sedan för mysql att läsa inmatningen från den filen. För att göra det skulle du skapa en textfil som innehåller de uttalanden du vill utföra. Anropa sedan mysql som visas här:
shell> mysql db\_name
Vissa databasleverantörer erbjuder också GUI-klienter och verktyg, förutom ett kommando- linjeklient. I enlighet med MySQL är dess GUI-klient MySQL Workbench. MySQL Workbench är tillgängligt på Windows, Linux och Mac OS X och riktar sig till databasarkitekter, utvecklare och DBA. Det tillhandahåller datamodellering, SQL-utveckling och omfattande administrationsverktyg för serverkonfiguration, användaradministration, säkerhetskopiering och mycket mer.
Andra verktyg
Förutom verktyg som erbjuds av databasleverantörerna själva, finns det många andra öppen källkod och kommersiella erbjudanden tillgängliga för alla populära databastyper och molntjänster. När det gäller skillnader passar både fria och kommersiella produkter väl för sitt syfte.Vilken du går med kommer vanligtvis att vara mer en funktion av vilken typ av arbete du gör snarare än användbarhet.
Efter att ha arbetat en hel del med både öppen källkod och kommersiella produkter, fann jag att jag gradvis graviterade mot senare, eftersom arbetseffektivitet blev viktigare för mitt arbete som IT-konsult. Min personliga åsikt är att kommersiella produkter kan göra dig mer produktiv eftersom de effektiviserar vanliga uppgifter för att öka effektiviteten.
Som ett resultat har jag använt Navicat Premium databasutveckling och adminklient i flera år nu. Även om Navicat gör klienter för alla populära databaser är Navicat Premium det enda verktyget som jag har använt som kan ansluta till MySQL-, MariaDB-, MongoDB-, SQL Server-, Oracle-, PostgreSQL- och SQLite-databaser samtidigt från en enda applikation. Det är också fullt kompatibelt med molndatabaser som Amazon RDS, Amazon Aurora, Amazon Redshift, Microsoft Azure, Oracle Cloud och Google Cloud.
Här är en skärmdump av huvudskärmen i Windows:
Alla Navicat-produkter är tillgängliga för Linux och macOS såväl som Windows.
I synnerhet hjälper Frågeredigeraren mig att skriva mina frågor snabbare genom att inkludera syntaxmarkering, återanvändbara och anpassningsbara kodavsnitt, samt autoförslag, bilden nedan:
Det har till och med en frågebyggare, som är till stor nytta för mindre erfarna användare. Det låter dig skapa och redigera frågor visuellt utan praktisk kunskap om SQL!
Hoppas det hjälper!
Med vänliga hälsningar,
Adam