Implementering Database i Sybase - Del 5 divisjon 4 Innledning Dette er en del 5 av min serie, Implementering Database i Sybase. Denne serien er en del av den fjerde divisjon i min større serie, Database. Jeg antar at du har lest alle de forskjellige delene av store serier (eller tilsvarende opplæring fra andre steder) opp til dette punktet. I denne delen av serien ser vi på viktige punkter i Sybase SQL Anywhere 12 CREATE TABLE erklæringen. Vi skal også lage bordene eksempelet.
Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser. CREATE TABLE SQL Statement Syntax Jeg vil først gi deg den komplette syntaks. Når du leser det du vil sannsynligvis ikke forstå det. Jeg vil forklare de viktige punktene nedenfor. Syntaksen begynner med: [. Eier] CREATE [GLOBAL TEMPORARY] TABLE [IF IKKE eksisterer] tabellnavn ({column-definition | table-begrensningen | PCTFREE}, ...
) [{IN | ON} dbspace-name] [KRYPTERT] [ON COMMIT {DELETE | Bevare} PINNER | IKKE transaksjon] [AT location-string] [AKSJE AV ALLE] I syntaks, noe som er i en hakeparentes er valgfritt. I syntaks, | midler og /eller, det vil si du kan skrive hva som er på sin venstre og eller hva er dens høyre. Parentes i syntaksen må skrives. Syntaksen for kolonnen-definisjonen er: kolonnenavn datatype [KOMPRIMERT] [INLINE {inline-lengde | Bruk standard}] [PREFIX {prefix-lengde | Bruk standard}] [[NO] INDEX] [[NOT] NULL] [default default-verdi | IDENTITY] [column-begrensning ...
] Syntaksen for default-verdi i kolonnen-definisjonen er: spesial-verdi | string | global variabel | [-] Nummer | (Konstant uttrykk) | innebygd-funksjon (konstant-uttrykk) | AUTOINCREMENT | Gjeldende database | NÅVÆRENDE EKSTERN BRUKER | CURRENT UTC TIMESTAMP | GLOBAL AUTOINCREMENT [(partisjon-størrelse)] | NULL | TIMESTAMP | UTC TIMESTAMP | SISTE BRUKER Syntaksen for den spesielle-verdien i default-verdi er: CURRENT {DATE | TIME | TIMESTAMP | BRUKER | Ansvarlig utgiver | DATABASE | EKSTERN BRUKER | UTC TIMESTAMP} | BRUKER Syntaksen for kolonne-begrensning i kolonne-definisjonen er: [begrensningen navn] {UNIK [gruppert] | PRIMARY KEY [gruppert] [ASC | DESC] | REFERANSER tabellnavn [(kolonnenavn)] [MATCH [UNIK] {SIMPLE | FULL}] [action-list] [gruppert] | CHECK (tilstand)} | Elektroni (uttrykk) Tabellen-begrensning i hoved syntaks er: [begrensningen navn] {UNIK [gruppert] (kolonnenavn [ASC | DESC], .
..) | PRIMARY KEY [gruppert] (kolonnenavn [ASC | DESC], ...) | CHECK (tilstand) | fremmed-key-begrensningen} Syntaksen til utenlandske-key-begrensning i tabellen-begrensningen er: [ikke NULL] FOREIGN KEY [rollenavn] [(kolonnenavn [ASC | DESC], ...)] REFERANSER tabellnavn [(kolonnenavn, ...)] [MATCH [UNIK] {SIMPLE | FULL}] [action-list] [sjekk på COMMIT] [gruppert] [FOR OLAP arbeidsmengde] Syntaksen til action-listen over de utenlandske-key-begrensningen er: [ON UPDATE handling] [ON DELETE handling] Syntaksen handlingen i action-listen er: CASCADE | SET NULL | Sett standard | BEGRENSER Syntaksen plasseringen-string i hovedsyntaksen: remote-server-navn [db-name] [eier] .
object-navn |.. remote-server-navn, [db-navn], [eier]; objektnavn Syntaksen PCTFREE i hoved syntaks er: PCTFREE prosent-free-plass Syntaksen prosent-free-plass i PCTFREE er: Integer Vi har nettopp sett komplett syntaks. Du har sannsynligvis ikke har forstått det. Jeg vil forklare bare de viktigste punktene. Størst annet dokument for de andre punktene. Referanseintegritet Den referanseintegritet håndheves av komplett Foreign Key linje i SQL-setningen når du oppretter tabellen.
Kolonnen den utenlandske nøkkelen er å registrere i den andre tabellen må være enten en primærnøkkel eller en unik kolonne. Kontrollbegrensningen kontrollbegrensningen som syntaks er: CHECK (tilstand) brukes til å begrense verdier i en kolonne i et bestemt sett. For eksempel kan du bruke den til å insistere på at ingen pris innspill i prisen kolonnen skal være mindre enn null. Kontrollbegrensningen er kodet inne i SQL-setningen. I neste del av serien skal vi lære å skrive tilstanden i syntaksen, "CHECK (tilstand)".
Kontrollbegrensningen kan implementeres i kolonnen-definisjon eller i tabellen-begrensningen delen av hele SQL syntax. Kommentar Du kan skrive en kommentar i din SQL-setning. En kommentar er brukt til å hjelpe deg å huske hva du har kodet. Det begynner med to påfølgende streker, dvs. - inntil du trykker på Enter-tasten.
Her er et eksempel jeg fikk fra manualen: CREATE TABLE Orders (order_num INTEGER NOT NULL PRIMARY KEY, date_ordered dato, navn CHAR (80)); CREATE TABLE Order_item (order_num INTEGER NOT NULL, item_num SMALLINT NOT NULL, PRIMARY KEY (order_num, item_num) - Når en ordre blir slettet, slette alle sine -. Eks FOREIGN KEY (order_num) REFERANSER Orders (order_num) ON DELETE CASCADE); Det er to SQL-setninger her. Den andre SQL-setningen har to kommentere linjer, der en setning starter i en kommentarlinje og ender i den andre kommentarlinje.
Indekser retningslinjene for å lage indekser i en tabell er: - Definer en unik indeks på en primærnøkkel. - Index alle fremmednøkler. - Lyst til å insistere på unike verdier for en kolonne, indeksen som kolonnen. - Index ofte søkte kolonner. - Indeks kolonner som ofte avgjør sorteringsrekkefølgen. - Jo lengre tabellen, er sannsynligheten for at det skal ha indekser.
Fra måten Sybase SQL Anywhere 12 er utformet, er de to første punktene ovenfor tatt vare på deg som følger: Når du deklarerer kolonner som primærnøkler i CREATE TABLE SQL-setning, indeksene blir automatisk opprettet for primærnøkkelkolonnene, og unikhet av primærnøkkelen er gjort. Når du håndheves referanseintegritet, er indekser håndheves for fremmednøkler. Primærnøkler og fremmednøkler er ofte søkte kolonner. Så mange av kolonner for punkt 4 ovenfor er tatt vare på.
Men hvis du tror en kolonne i en tabell som ikke er en primærnøkkel eller en fremmednøkkel vil bli hyppig søkte, da indeksen kolonnen. De tre siste punktene er ikke tatt vare på av Sybase SQL Anywhere 12, mens de tre første punktene er tatt vare på. Med Sybase SQL Anywhere 12, hvis du vil ha en kolonne for å være unik, må du bruke den unike begrensning av kolonnen-definisjonen. Du kan deretter indeksen kolonnen hvis du tror det vil bli hyppig søkte. Jeg har forklart resten av de viktigste punktene i den foregående del av serien. Lage tabeller i Eksempel Vi fortsetter med engros eksempel.
Utføre følgende instruksjoner: - Åpne ledetekstvinduet. - Skriv inn følgende og trykk på Enter for å gå til roten katalogen: cd c: \\ - Skriv inn følgende kommando, og trykk på Enter. Hvis det står i databasen (fil) allerede eksisterer, la ting som det. Hvis banen "c: \\ engros" ikke finnes, oppretter du den først. dbinit c: \\\\ engros \\\\ wholesale.db - Start serveren og databasen med følgende kommando og trykker ENTER etter å skrive. dbeng12 -n wholesalesrv c: \\\\ engros \\\\ wholesale.
db - Start vinduet verktøy, Interaktiv SQL og koble til databasen ved å skrive inn følgende kommando og trykke Enter. dbisql -c "server = wholesalesrv; DBF = c: \\\\ sholesale \\\\ wholesale.db; UID = DBA; PWD = sql" - Det er 8 tabeller med etableringen SQL uttalelser er i forrige del av serien. Skriv hvert av de fullstendige uttalelser i SQL-setninger ruten i Interaktiv SQL vinduet. Etter å ha skrevet klikk SQL >>