Ms sql server skrive spørringer. Utføre SQL-spørringer i Management Studio. Legge til et gjennomsnittsberegnet felt
Tabelluttrykk kalles underspørringer som brukes der tilstedeværelsen av en tabell er forventet. Det finnes to typer tabelluttrykk:
avledede tabeller;
generaliserte tabelluttrykk.
Disse to formene for tabelluttrykk diskuteres i de følgende underavsnittene.
Avledede tabeller
Avledet tabell er et tabelluttrykk inkludert i FROM-leddet til en spørring. Avledede tabeller kan brukes i tilfeller der bruk av kolonnealiaser ikke er mulig fordi SQL-oversetteren behandler en annen setning før aliaset er kjent. Eksemplet nedenfor viser et forsøk på å bruke et kolonnealias i en situasjon der en annen klausul blir behandlet før aliaset er kjent:
BRUK SampleDb; SELECT MONTH(EnterDate) som enter_month FROM Works_on GROUP BY enter_month;
Hvis du prøver å kjøre denne spørringen, vises følgende feilmelding:
Melding 207, nivå 16, tilstand 1, linje 5 Ugyldig kolonnenavn "enter_month". (Melding 207: Nivå 16, tilstand 1, linje 5 Ugyldig kolonnenavn enter_month)
Årsaken til feilen er at GROUP BY-leddet behandles før den tilsvarende listen med SELECT-setningen behandles, og aliaset for enter_month-kolonnen er ukjent når gruppen behandles.
Dette problemet kan løses ved å bruke en avledet tabell som inneholder den foregående spørringen (uten GROUP BY-leddet) fordi FROM-leddet kjøres før GROUP BY-leddet:
BRUK SampleDb; VELG enter_month FROM (VELG MONTH(EnterDate) som enter_month FROM Works_on) AS m GROUP BY enter_month;
Resultatet av denne spørringen vil være slik:
Vanligvis kan et tabelluttrykk plasseres hvor som helst i en SELECT-setning der et tabellnavn kan vises. (Resultatet av et tabelluttrykk er alltid en tabell eller, i spesielle tilfeller, et uttrykk.) Eksemplet nedenfor viser bruken av et tabelluttrykk i select-listen til en SELECT-setning:
Resultatet av denne spørringen:
Generiske tabelluttrykk
Vanlige tabelluttrykk (OTB) er et navngitt tabelluttrykk som støttes av Transact-SQL-språket. Vanlige tabelluttrykk brukes i følgende to typer spørringer:
ikke-rekursiv;
tilbakevendende.
Disse to typene forespørsler diskuteres i de følgende avsnittene.
OTB og ikke-rekursive spørringer
Den ikke-rekursive formen for OTB kan brukes som et alternativ til avledede tabeller og visninger. Vanligvis bestemmes OTB av MED klausuler og en ekstra spørring som refererer til navnet brukt i WITH-leddet. I Transact-SQL er betydningen av nøkkelordet WITH tvetydig. For å unngå tvetydighet bør setningen foran WITH-setningen avsluttes med semikolon.
BRUK AdventureWorks2012; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (VELG AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") OG Frakt > (VELG AVG(TotalDue) FROM Sales.SalesOrderHeader "Order2Dato YEAR5) ")/2.5;
Spørringen i dette eksemplet velger bestillinger hvis totale avgifter (TotalDue) er høyere enn gjennomsnittet av alle avgifter og hvis fraktkostnader (frakt) er større enn 40 % av gjennomsnittlig avgifter. Hovedegenskapen til denne spørringen er lengden, siden undersøkingen må skrives to ganger. En av mulige måterå redusere størrelsen på spørringskonstruksjonen vil være å lage en visning som inneholder en underspørring. Men denne løsningen er litt komplisert fordi den krever å opprette en visning og deretter slette den etter at spørringen er ferdig utført. En bedre tilnærming ville være å lage en OTB. Eksemplet nedenfor viser bruken av ikke-rekursiv OTB, som forkorter spørringsdefinisjonen ovenfor:
BRUK AdventureWorks2012; WITH price_calc(year_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT year_2005 FROMAND price_0cal) (SELECT year_2005 FROMAND price_0cal) ) /2,5;
WITH-leddets syntaks i ikke-rekursive søk er som følger:
Parameteren cte_name representerer OTB-navnet som definerer den resulterende tabellen, og column_list-parameteren representerer listen over kolonner i tabelluttrykket. (I eksemplet ovenfor kalles OTB price_calc og har én kolonne, year_2005.) Inner_query-parameteren representerer en SELECT-setning som spesifiserer resultatsettet til det tilsvarende tabelluttrykket. Det definerte tabelluttrykket kan deretter brukes i den ytre_query. (Det ytre søket i eksemplet ovenfor bruker OTB price_calc og dens år_2005-kolonne for å forenkle det dobbelt nestede søket.)
OTB og rekursive søk
Denne delen presenterer materiale med økt kompleksitet. Derfor, når du leser den for første gang, anbefales det å hoppe over den og gå tilbake til den senere. OTB-er kan brukes til å implementere rekursjoner fordi OTB-er kan inneholde referanser til seg selv. Den grunnleggende OTB-syntaksen for et rekursivt søk ser slik ut:
Parameterne cte_name og column_list har samme betydning som i OTB for ikke-rekursive spørringer. Brødteksten i en WITH-klausul består av to spørringer sammen med operatøren UNION ALLE. Den første spørringen kalles bare én gang, og den begynner å akkumulere resultatet av rekursjonen. Den første operanden til UNION ALL-operatøren refererer ikke til en OTB. Denne spørringen kalles en referansespørring eller kilde.
Den andre spørringen inneholder en referanse til OTB og representerer dens rekursive del. På grunn av dette kalles det et rekursivt medlem. I det første kallet til den rekursive delen, representerer OTB-referansen resultatet av referansespørringen. Det rekursive medlemmet bruker resultatet av det første spørringsanropet. Etter dette kaller systemet opp den rekursive delen igjen. Et anrop til et rekursivt medlem stopper når et tidligere anrop til det returnerer et tomt resultatsett.
UNION ALL-operatøren kobler det akkumulerte dette øyeblikket rader, samt ytterligere rader lagt til av det gjeldende kallet til det rekursive medlemmet. (Tilstedeværelsen av UNION ALL-operatøren betyr at dupliserte rader ikke vil bli fjernet fra resultatet.)
Til slutt definerer parameteren outer_query den ytre spørringen som OTB bruker for å hente alle anrop til sammenføyningen til begge medlemmene.
For å demonstrere den rekursive formen av OTB, bruker vi flytabellen definert og fylt ut med koden vist i eksemplet nedenfor:
BRUK SampleDb; CREATE TABLE Fly(ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DESIMAL(6,2)); INSERT INTO Airplane VALUES ("Fly", "Fuselage", 1, 10); INSERT INTO Airplane VALUES ("Fly", "Vinger", 1, 11); INSERT INTO Airplane VALUES ("Fly", "hale", 1, 12); SETTE INN I FLYVERDIER ("Fuselage", "Salon", 1, 13); SETTE INN I FLYVERDIER ("Fuselage", "Cockpit", 1, 14); INSERT INTO Airplane VALUES ("Fuselage", "Nose",1, 15); INSERT INTO Airplane VALUES ("Cabin", NULL, 1,13); INSERT INTO Airplane VALUES ("Cockpit", NULL, 1, 14); INSERT INTO Airplane VALUES ("Nese", NULL, 1, 15); INSERT INTO Airplane VALUES ("Vinger", NULL,2, 11); INSERT INTO Airplane VALUES ("hale", NULL, 1, 12);
Flytabellen har fire kolonner. Kolonnen ContainingAssembly identifiserer sammenstillingen, og ContainedAssembly-kolonnen identifiserer delene (en etter en) som utgjør den tilsvarende sammenstillingen. Figuren nedenfor viser en grafisk illustrasjon av en mulig type fly og dets komponenter:
Flytabellen består av følgende 11 rader:
Følgende eksempel bruker WITH-leddet til å definere en spørring som beregner den totale kostnaden for hvert bygg:
BRUK SampleDb; WITH list_of_parts(assembly1, quantity, cost) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM Airplane WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.quantity * DEC IMALcost AS) ) FROM list_of_parts l, Fly a WHERE l.assembly1 = a.ContainedAssembly) SELECT assembly1 "Part", quantity "Quantity", cost "Price" FROM list_of_parts;
WITH-leddet definerer en OTB-liste kalt list_of_parts, bestående av tre kolonner: assembly1, quantity og cost. Den første SELECT-setningen i eksemplet kalles bare én gang for å lagre resultatene fra det første trinnet i rekursjonsprosessen. SELECT-setningen på den siste linjen i eksemplet viser følgende resultat.
SQL eller Structured Query Language er et språk som brukes til å administrere data i et relasjonsdatabasesystem (RDBMS). Denne artikkelen vil dekke ofte brukte SQL-kommandoer, som enhver programmerer bør være kjent med. Dette materialet er ideelt for de som ønsker å friske opp kunnskapen om SQL før et jobbintervju. For å gjøre dette, se på eksemplene gitt i artikkelen og husk at du studerte databaser i par.
Merk at noen databasesystemer krever semikolon på slutten av hver setning. Semikolonet er standard peker på slutten av hver setning i SQL. Eksemplene bruker MySQL, så et semikolon kreves.
Sette opp en database for eksempler
Lag en database for å demonstrere hvordan team fungerer. For å fungere, må du laste ned to filer: DLL.sql og InsertStatements.sql. Deretter åpner du en terminal og logger på MySQL-konsollen ved å bruke følgende kommando (artikkelen antar at MySQL allerede er installert på systemet):
Mysql -u root -s
Skriv deretter inn passordet ditt.
Kjør følgende kommando. La oss kalle databasen "universitet":
LAG DATABASE universitet; BRUK universitetet; KILDE Det kan hende du må opprette begrensninger for enkelte kolonner i en tabell. Når du oppretter en tabell, kan du angi følgende begrensninger: Du kan spesifisere mer enn én primærnøkkel. I dette tilfellet vil du få en sammensatt primærnøkkel. Lag en tabell "instruktør": CREATE TABLE instruktør (ID CHAR(5), navn VARCHAR(20) NOT NULL, dept_name VARCHAR(20), lønn NUMERIC(8,2), PRIMARY KEY (ID), UTENLANDSKE KEY (dept_name) REFERANSER avdeling(dept_name)); Du kan se forskjellig informasjon (verditype, nøkkel eller ikke) om tabellkolonner med følgende kommando: BESKRIVE Når du legger til data i hver kolonne i en tabell, trenger du ikke å angi kolonnenavn. SETT INN I SELECT brukes til å hente data fra en bestemt tabell: PLUKKE UT Følgende kommando kan vise alle dataene fra tabellen: VELG * FRA Tabellkolonner kan inneholde dupliserte data. Bruk SELECT DISTINCT for å hente kun ikke-dupliserte data. VELG DISTINKT Du kan bruke nøkkelordet WHERE i SELECT for å spesifisere betingelser i en spørring: PLUKKE UT Følgende betingelser kan spesifiseres i forespørselen: Prøv følgende kommandoer. Vær oppmerksom på betingelsene spesifisert i HVOR: SELECT * FROM course WHERE dept_name=’Comp. Sci.'; VELG * FRA kurs HVOR studiepoeng>3; VELG * FRA kurs WHERE dept_name="Comp. Sci." OG studiepoeng>3; GROUP BY-operatøren brukes ofte med aggregerte funksjoner slik som COUNT, MAX, MIN, SUM og AVG for å gruppere utdataverdier. PLUKKE UT La oss vise antall emner for hvert fakultet: VELG ANTALL(kurs_id), avd_navn FRA kurs GROUP BY avd_navn; Nøkkelordet HAVING ble lagt til SQL fordi WHERE ikke kan brukes til å arbeide med aggregerte funksjoner. PLUKKE UT La oss vise en liste over fakulteter som har mer enn ett kurs: VELG ANTALL(kurs_id), avd_navn FRA kurs GRUPPE ETTER avd_navn HAR ANTALL(kurs_id)>1; ORDER BY brukes til å sortere søkeresultater i synkende eller stigende rekkefølge. ORDER BY vil sortere i stigende rekkefølge med mindre ASC eller DESC er spesifisert. PLUKKE UT La oss vise en liste over emner i stigende og synkende rekkefølge av studiepoeng: VELG * FRA kurs BESTILL ETTER studiepoeng; VELG * FRA kurs BESTILL ETTER studiepoeng DESC; BETWEEN brukes til å velge dataverdier fra et spesifikt område. Numerisk og tekstverdier, samt datoer. PLUKKE UT La oss vise en liste over instruktører hvis lønn er over 50 000, men mindre enn 100 000: VELG * FRA instruktør HVOR lønn MELLOM 50000 OG 100000; LIKE-operatoren brukes i WHERE for å spesifisere et søkemønster for en lignende verdi. Det er to gratis operatører som brukes i LIKE: La oss vise en liste over kurs hvis navn inneholder "til" og en liste over kurs hvis navn begynner med "CS-": VELG * FRA kurs HVOR tittel LIKE '%to%'; VELG * FRA kurs WHERE kurs_id LIKE "CS-___"; Ved å bruke IN kan du spesifisere flere verdier for WHERE-leddet: PLUKKE UT La oss vise en liste over studenter fra Comp majors. Sci., fysikk og elektr. Eng.: VELG * FRA student WHERE avd.navn IN ('Comp. Sci.', 'Fysikk', 'Elec. Eng.'); JOIN brukes til å koble sammen to eller flere tabeller ved å bruke vanlige attributter i dem. Bildet nedenfor viser ulike måter blir med i SQL. Legg merke til forskjellen mellom en venstre ytre skjøt og en høyre ytre skjøt: PLUKKE UT Vi vil vise en liste over alle emner og relevant informasjon om fakultetene: VELG * FRA kurs BLI MED avdeling PÅ course.dept_name=department.dept_name; Vi vil vise en liste over alle obligatoriske kurs og detaljer om dem: VELG prereq.course_id, title, dept_name, credits, prereq_id FROM prereq VENSTRE YTRE JOIN kurs PÅ prereq.course_id=course.course_id; Vi vil vise en liste over alle kurs, uavhengig av om de er obligatoriske eller ikke: SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq HØYRE YTRE JOIN-kurs PÅ prereq.course_id=course.course_id; View er en virtuell SQL-tabell opprettet som et resultat av å utføre et uttrykk. Den inneholder rader og kolonner og ligner veldig på en vanlig SQL-tabell. Vis viser alltid den nyeste informasjonen fra databasen. La oss lage en visning bestående av kurs med 3 studiepoeng: Disse funksjonene brukes for å få et samlet resultat relatert til de aktuelle dataene. Følgende er ofte brukte aggregerte funksjoner: Nestede underspørringer er SQL-spørringer som inkluderer SELECT , FROM og WHERE-klausuler nestet i en annen spørring. La oss finne kurs som ble undervist høsten 2009 og våren 2010: SELECT DISTINCT course_id FROM section WHERE semester = 'Høst' OG år= 2009 OG course_id IN (VELG kurs_id FRA seksjon WHERE semester = 'Vår' OG år= 2010); SQL - Strukturert spørrespråk. Beskrivelse
bigint (int 8) bigint (int 8) binær(n) binær(eller bilde karakter nasjonal karakter eller ntekst karakter varierende(synonym røye varierende varchar) nasjonal karakter varierende eller ntekst Dato tid dato tid desimal aka numerisk dobbel presisjon dobbel presisjon heltall (int 4) (synonym: int) heltall (int 4) nasjonal karakter(synonym: nasjonal karakter, nchar) nasjonal karakter Numerisk(synonymer: desimal, des) nasjonal karakter varierende(synonymer: nasjonal røye varierende, nvarchar) Nasjonal karakter varierende Liten datotid dato tid smallint (int 2) smallint (int 2) Småpenger sql_variant Støttes ikke lenger Ntekst Tidsstempel Ikke støttet bitteliten (int 1) bitteliten (int 1) Unikidentifikator unik identifikator varbinær(n) varbinær(eller bilde smalldatetime dato tid smallint (int 2) smallint (int 2) småpenger sql_variant Ikke støttet tidsstempel Ikke støttet bitteliten (int 1) bitteliten (int 1) unik identifikator unik identifikator varbinær(n) varbinær(eller bilde Datatypetabell i SQL Server 2000 Be om er en kommando du gir til databaseprogrammet. Spørringer er en del av DML-språket. Alle SQL-spørringer består av én enkelt kommando. Strukturen til denne kommandoen er villedende enkel fordi du må utvide den til å utføre svært komplekse evalueringer og datamanipulasjoner. PLUKKE UT"Select" er den mest brukte kommandoen den brukes til å velge data fra tabellen. SELECT id, user_name, city, birth_day FROM users_base; En slik spørring vil vise fra user_base-tabellen alle verdiene til kolonnene spesifisert atskilt med komma etter VELG kommandoer. Du kan også vise alle kolonner med ett tegn, * dvs. SELECT * FROM users_base ; - En slik spørring vil vise alle data fra tabellen. SELECT (Kolonnenavn atskilt med kommaer som må vises i spørringen) FROM (tabellnavn i databasen) Verdier kan plasseres og fjernes fra felt ved hjelp av tre DML (Data Manipulation Language) kommandoer: INSERT INTO users_base (brukernavn, by, fødselsdag) VERDIER ('Alexander', 'Rostov', '06/20/1991'); OPPDATER users_base SET user_name = 'Alexey'; UPDATE-kommandoen oppdaterer verdier i en tabell. Først kommer selve UPDATE-kommandoen, deretter tabellnavnet, etter SET-kommandoen (sett), deretter kolonnenavnet og verdien i anførselstegn (anførselstegn plasseres hvis verdien er i strengformat, hvis det er en numerisk verdi og kolonnen ikke er knyttet til datatypen vchar eller noen andre strengtyper, har anførselstegnene ingen betydning.) SLETT FRA users_base WHERE user_name = 'Vasily'; DELETE-kommandoen sletter hele raden og identifiserer raden ved å bruke WHERE-kriteriet. I dette tilfellet ville denne spørringen slette alle rader der kolonneverdien for brukernavn var Vasily. Vi snakker om WHERE-kriteriet og andre litt senere. WHERE-leddet er et ledd i SELECT-kommandoen og andre DML-kommandoer som lar deg sette predikater hvis betingelse kan være enten sann eller usann for en hvilken som helst rad i tabellen. Kommandoen henter bare de radene fra tabellen som denne setningen er sann for. BESTILL ETTER - betingelse for sortering av de valgte radene. Har 2 kriterier ASC og DESC. ASC (sortering fra A til Å eller fra 0 til 9) DESC (motsatt av ASC). Denne betingelsen kan også brukes sammen med WHERE-klausulen. DISTINCT er et argument som gir deg en måte å eliminere doble verdier fra SELECT-klausulen din. De. hvis du har dupliserte verdier i en kolonne, la oss si brukernavn, så vil DISTINCT vise deg bare én verdi, for eksempel har du 2 personer som heter Alexey i databasen din, så vil en spørring som bruker DISTINCT-funksjonen vise deg bare 1 verdi som oppstår først... OG - tar to boolske (i formen A OG B) som argumenter og vurderer dem mot sannheten om de begge er sanne. ELLER - tar to boolske (i formen A ELLER B) som argumenter og vurderer om en av dem er riktig. SELECT * FROM users_base WHERE city = 'Rostov' ELLER user_name = 'Alexander';- vil vise alle verdier fra tabellen der navnet på byen Rostov eller brukernavnet Alexander vises på linjen. NOT - tar en enkelt boolsk (i formen NOT A) som argumenter og endrer verdien fra usant til sant eller sant til usant. IN - definerer et sett med verdier der en gitt verdi kan inkluderes eller ikke. Between ligner på IN-operatøren. I motsetning til å definere med tall fra et sett, som IN gjør, definerer BETWEEN et område hvis verdier må reduseres for å gjøre predikatet sant. COUNT - Produserer radnumrene eller ikke-NULL-verdier for feltene som søket valgte. SUM - produserer den aritmetiske summen av alle valgte verdier for et gitt felt. AVG - gjennomsnitt av alle valgte verdier i dette feltet. MAX - produserer den største av alle valgte verdier for dette feltet. MIN - produserer den minste av alle valgte verdier for dette feltet. CREATE TABLE users_base (id-heltall, brukernavntekst, bytekst, fødselsdagsdato);- å utføre en slik kommando vil føre til opprettelsen av tabellen som jeg ga eksempler på... Alt er enkelt her, vi skriver CREATE TABLE-kommandoen, etterfulgt av navnet på tabellen vi ønsker å lage, deretter i parentes, atskilt med komma, navnene på kolonnene og deres datatype. Dette er standardmåten for å lage en tabell i SQL. Nå vil jeg gi et eksempel på å lage tabeller i SQL Server 2005: SET ANSI_NULLS PÅ Hvis du har spørsmål om dette emnet, vennligst skriv til meg Utvikle en applikasjon som demonstrerer grunnleggende operasjoner på data i en database som MS SQL Server, nemlig: Education.dbo-databasen brukes som grunnlag, og opprettelsesprosessen er beskrevet i detalj Figur 1 viser strukturen til Education.dbo-databasen. Som det fremgår av figuren heter databasen: Her er "sasha-pc" datamaskinidentifikatoren på nettverket, "sqlexpress" er navnet på databaseserveren, "Education.dbo" er navnet på databasen. Ris. 1. Education.dbo database Databasen inneholder to tabeller: Student og Session. Strukturen til tabellene er som følger. Studentbord. Sesjonstabell. Opprett et nytt prosjekt av typen Windows Forms Application. Et eksempel på å lage et nytt prosjekt er beskrevet i detalj For å vise data fra databasetabeller kan du bruke forskjellige måter. En av dem er opprettelsen av visninger, som genereres ved hjelp av MS Visual Studio. I vårt tilfelle vil tabelldata vises på skjemaet i en kontroll av typen DataGridView. Etter å ha opprettet visninger, er det veldig praktisk å knytte dem til DataGridView-elementer. For å opprette en visning, må du kalle opp kommandoen "Legg til ny visning" fra kontekstmenyen, som kalles opp ved å høyreklikke på "Views"-elementet i Education.dbo-databasen (figur 2). Ris. 2. Ringer kommandoen for å legge til en ny visning Som et resultat vil "Legg til tabell"-vinduet åpnes (Figur 3). I vinduet må du velge tabellene som legges til i visningen. Ris. 3. Velge tabellene som den nye visningen skal baseres på I vårt tilfelle, velg Studenttabellen og bekreft valget ditt ved å klikke på Legg til-knappen. Neste trinn er å lukke vinduet ved å velge Lukk-knappen. Etter å ha fullført trinnene, vil et vindu bli generert der du må velge feltene som skal vises i visningen (på skjemaet). Velg alle feltene (Figur 4). Når du velger felt, vises feltene i elevtabellen øverst i arbeidsområdet. Ved hjelp av musen kan du velge de ønskede feltene for presentasjon. Følgelig viser det midtre området av vinduet navnene på de valgte feltene, tabellen de eksisterer i (se fig. 4), muligheten til å sortere, filtrere, etc. Nederst i ruten vises den tilsvarende SQL-spørringsteksten som brukes til å lage visningen. Ris. 4. Velge elevtabellfelt som skal vises i visningen Etter å ha valgt et lag Et vindu åpnes der du må angi navnet på visningen. Angi navnet "Se student" (Figur 5). Ris. 5. Angi et navn for visningen Etter å ha fullført trinnene, vil presentasjonsvinduet se ut som vist i figur 6. Ris. 6. Se Studentrepresentasjon i databasen Du kan nå være vert for en DataGridView-kontroll og knytte den til en visning. Før du plasserer DataGridView-kontrollen, må du gå inn i skjemadesignmodus "Form1.cs". DataGridView-elementet er en tabell som kan vise data. Denne kontrollen er plassert i ToolBox-panelet. Først justerer vi litt størrelsen på skjemaet, og deretter plasserer vi DataGridView-kontrollen på den (figur 7). Dette vil opprette en objektforekomst kalt dataGridView1 som standard. Ris. 7. DataGridView-kontroll og datakildevalgvindu Etter å ha plassert DataGridView-kontrollen på skjemaet, kan du i øvre høyre hjørne velge å konfigurere datakilden. Følgelig vil "DataGridView Tasks"-vinduet åpnes. I dette vinduet må du velge "Velg datakilde"-lokalmenyen. I menyen som åpnes velger du kommandoen "Legg til prosjektdatakilde..." (fig. 7). Etter dette åpnes et veiviservindu, der datakilden velges sekvensielt. Figur 8 viser " Veiviser for konfigurasjon av datakilde", der typen datakilde er valgt. I vårt tilfelle installerer vi "Database". Ris. 8. Velge en datakildetype I neste vindu (Figur 9) velges datakildemodellen. Du må velge Datasett. Ris. 9. Velge en datakildemodell I vinduet vist i figur 10 må du spesifisere datatilkoblingen du vil bruke for å koble til databasen. I vårt tilfelle må vi velge databasen " sasha-pc\sqlexpress\Education.dbo«.
Ris. 10. Velge en datatilkobling Det neste vinduet (Figur 11) foreslår å lagre tilkoblingsstrengen i applikasjonens konfigurasjonsfil. Vi lar alt være som det er og går videre til neste vindu. Ris. 11. Forslag til lagring av databasetilkoblingsstrengen Connection String i applikasjonens konfigurasjonsfil Etter å ha opprettet en databasetilkobling, vises en rekke databaseobjekter (Figur 12). I vårt tilfelle må vi velge "Se student"-visningen og alle feltene fra den. De avmerkede feltene vil vises i DataGridView-typekomponenten. Ris. 12. Velge databaseobjektene som skal vises i DataGridView Etter å ha valgt Fullfør-knappen, vil de valgte objektene (View Student view) i Education.dbo-databasen vises (Figur 13). Ris. 13. DataGridView-kontroll med valgte Vis Student-felt På lignende måte kan du konfigurere visninger som inneholder alle felt fra en databasetabell. Dessuten kan felt fra forskjellige tabeller vises i én visning. Hvis du kjører applikasjonen, vil du motta data fra View Student-visningen, som tilsvarer elevtabellen i databasen (Figur 14). Som du kan se fra figur 14, vises dataene i dataGridView1-tabellen normalt, men designet kan justeres. En kontroll av typen DataGridView lar deg justere utseendet til feltene som vises. For å kalle kommandoer for redigering av felt, bare kall opp kontekstmenyen ved å høyreklikke på dataGridView1-kontrollen. Menyen har ulike nyttige kommandoer, som lar deg kontrollere utseendet og driften av DataGridView: I vårt tilfelle må du velge kommandoen "Rediger kolonner..." (Figur 15). Ris. 15. Kommando "Rediger kolonner..." fra hurtigmenyen Som et resultat vil vinduet "Rediger kolonner" åpnes, der du kan tilpasse utseendet til presentasjonsfeltene etter eget ønske (Figur 16). I vinduet i figur 16 kan du for ethvert felt konfigurere navn, justering, bredde, evne til å redigere data osv. For å gjøre endringer i databasen, må du få en tilkoblingsstreng til databasen Connection String . Det er forskjellige måter å få databasetilkoblingsstrengen på. En av dem er basert på å lese denne linjen i vinduet Egenskaper i Education.dbo-databasen (fig. 17). For å lagre strengen i programmet, en intern variabel av typen streng. Bruk utklippstavlen, kopier tilkoblingsstrengen inn i den beskrevne strengvariabelen. I teksten til filen "Form1.cs" i begynnelsen av beskrivelsen av Form1-klassen, må du beskrive variabelen: For øyeblikket er teksten til Form1-klassen som følger: For å kunne behandle dataene til gjeldende post, må du opprette et nytt skjema. Prosessen med å lage et nytt skjema i MS Visual Studio - C# er beskrevet i detalj. Å legge til et nytt skjema gjøres med kommandoen: I vinduet "Nytt element" som åpnes, må du velge elementet "Windows Form". La det nye skjemafilnavnet være standard "Form2.cs". Figur 18 viser en oversikt over det nye skjemaet. Vi plasserer følgende typer kontroller på skjemaet: Du må konfigurere følgende egenskaper for kontrollene: Vi konfigurerer også synligheten til TextBox-kontroller. For å gjøre dette, i alle kontroller textBox1, textBox2, textBox3, textBox4, egenskapsverdien Modifiers = "public". For videre arbeid må du bruke musen for å bytte til hovedskjemaet Form1. Legg til tre knapper i hovedskjemaet for Form1-applikasjonen (knapp). Tre objektvariabler opprettes automatisk med navnene knapp1, knapp2, knapp3. I hver av disse knappene gjør vi følgende innstillinger (Egenskapsvindu): Som et resultat av endringene som er gjort, vil hovedskjemaet se ut som vist i figur 19. Klikkhendelsesbehandleren på "Sett inn..."-knappen ser slik ut: Form2 kalles først. Etter å ha mottatt "OK"-resultatet (trykk på den tilsvarende knappen), i Form2 er de utfylte feltene i elementer av TextBox-typen inkludert i SQL-spørringsstrengen. SQL-spørringen for å legge til en ny rad ser slik ut: hvor verdi1 tilsvarer karakterboknummeret; verdi2 – elevens etternavn; verdi3 – gruppe der studenten studerer; verdi4 – år for oppføring. Connection String-databaseforbindelsesstrengen er beskrevet i conn_string-variabelen (se avsnitt 5). Klasseobjektet SqlConnection kobler applikasjonen til datakilder. I tillegg håndterer Connection-klassen brukerautentisering, nettverk, databaseidentifikasjon, tilkoblingsbuffring og transaksjonsbehandling. SQL-kommandoen som legger til en post i en tabell, er innkapslet i SqlCommand-klassen. Konstruktøren av SqlCommand-klassen tar to parametere: en SQL-spørringsstreng (cmd_text-variabel) og et objekt av SqlConnection-klassen. ExecuteNonQuery()-metoden er implementert i IDBCommand-grensesnittet. Metoden implementerer SQL-kommandoer som ikke returnerer data. Slike kommandoer inkluderer INSERT, DELETE, UPDATE-kommandoer, samt lagrede prosedyrer som ikke returnerer data. Metoden ExecuteNonQuery() returnerer antall poster involvert. Klikkhendelsesbehandleren på "Rediger..."-knappen ser slik ut: Denne behandleren utfører en UPDATE SQL-kommando som endrer gjeldende verdi for den aktive posten. Klikkhendelsesbehandleren på "Slett"-knappen ser slik ut: Denne behandleren utfører SQL-kommandoen DELETE for å slette en post. SQL Server Management Studio gir et komplett verktøy for å lage alle typer spørringer. Med dens hjelp kan du opprette, lagre, laste og redigere spørringer. I tillegg kan du jobbe med spørringer uten å koble til noen server. Dette verktøyet gir også muligheten til å utvikle spørringer for ulike prosjekter. Du kan arbeide med spørringer ved å bruke enten spørringsredigering eller løsningsutforsker. Denne artikkelen dekker begge disse verktøyene. I tillegg til disse to komponentene i SQL Server Management Studio, skal vi se på feilsøking av SQL-kode ved hjelp av den innebygde debuggeren. For å åpne Query Editor-panelet Spørringsredaktør, på SQL Server Management Studio-verktøylinjen, klikk på Ny spørring-knappen. Dette panelet kan utvides til å vise knapper for å lage alle mulige spørringer, ikke bare databasemotorspørringer. Som standard er det opprettet ny forespørsel Database Engine-komponent, men ved å klikke på den tilsvarende knappen på verktøylinjen kan du også lage MDX-, XMLA-spørringer. Statuslinjen nederst i Query Editor-panelet angir statusen til redaktørens tilkobling til serveren. Hvis du ikke kobler til serveren automatisk, når du starter spørringsredigering, vises en Koble til server-dialogboks, som lar deg velge serveren du vil koble til og autentiseringsmodus. Redigering av spørringer offline gir mer fleksibilitet enn når du er koblet til en server. For å redigere spørringer er det ikke nødvendig å koble til serveren, og spørringsredigeringsvinduet kan kobles fra én server (ved å bruke menykommandoen Spørring --> Tilkobling --> Koble fra) og kobles til et annet uten å åpne et annet redigeringsvindu. For å velge frakoblet redigeringsmodus, bruk Koble til server-dialogen som åpnes når du starter redigeringsprogrammet. spesifikk type forespørsler, klikker du bare på Avbryt-knappen. Du kan bruke Query Editor til å utføre følgende oppgaver: opprette og utføre Transact-SQL-setninger; lagring av opprettede Transact-SQL-språksetninger til en fil; lage og analysere utførelsesplaner for vanlige spørsmål; grafisk illustrerer utførelsesplanen for den valgte spørringen. Spørringsredigeringsprogrammet inneholder en innebygd tekstredigerer og en verktøylinje med et sett med knapper for forskjellige handlinger. Hovedvinduet for spørreredigering er delt inn horisontalt i et spørringspanel (øverst) og et resultatpanel (nederst). Transact-SQL-setninger (det vil si spørringer) som skal utføres, legges inn i den øverste ruten, og resultatene av systemets behandling av disse spørringene vises i den nederste ruten. Figuren nedenfor viser et eksempel på å legge inn en spørring i spørringsredigeringsprogrammet og resultatene av å utføre den spørringen: Den første USE request-setningen spesifiserer å bruke SampleDb-databasen som gjeldende database. Den andre setningen, SELECT, henter alle rader fra Employee-tabellen. For å kjøre denne spørringen og vise resultatene, klikk på Utfør-knappen på Query Editor-verktøylinjen eller trykk på F5. Du kan åpne flere Query Editor-vinduer, dvs. opprette flere tilkoblinger til én eller flere forekomster av databasemotoren. En ny tilkobling opprettes ved å klikke på Ny spørring-knappen på SQL Server Management Studio-verktøylinjen. Statuslinjen nederst i Query Editor-vinduet viser følgende informasjon relatert til utførelse av spørringssetninger: statusen til gjeldende operasjon (for eksempel "Forespørsel fullført vellykket"); databaseservernavn; gjeldende brukernavn og serverprosess-ID; gjeldende databasenavn; tid brukt på å utføre den siste forespørselen; antall linjer funnet. En av hovedfordelene med SQL Server Management Studio er dens brukervennlighet, som også gjelder for Query Editor. Query Editor har mange funksjoner for å gjøre koding av Transact-SQL-setninger enklere. Spesielt bruker den syntaksutheving for å forbedre lesbarheten til Transact-SQL-setninger. Alle reserverte ord vises i blått, variabler vises i svart, strenger vises i rødt, og kommentarer vises i grønt. I tillegg er spørringseditoren utstyrt med kontekstsensitiv hjelp kalt Dynamisk hjelp, der du kan få informasjon om en spesifikk instruksjon. Hvis du ikke kjenner syntaksen til en instruksjon, velger du den i redigeringsprogrammet og trykker deretter på F1-tasten. Du kan også fremheve parametrene til ulike Transact-SQL-setninger for å få hjelp om dem fra Books Online. SQL Management Studio støtter SQL Intellisense, som er en type autofullføringsverktøy. Med andre ord, denne modulen foreslår den mest sannsynlige fullføringen av delvis innlagte Transact-SQL-setningselementer. Objektutforskeren kan også hjelpe deg med å redigere spørringer. Hvis du for eksempel vil vite hvordan du oppretter en CREATE TABLE-setning for Employee-tabellen, høyreklikker du tabellen i Object Explorer og den resulterende kontekstmenyen velg Script Table As --> CREATE to --> New Query Editor Window. Query Editor-vinduet som inneholder CREATE TABLE-setningen som er opprettet på denne måten, vises i figuren nedenfor. Denne funksjonen gjelder også for andre objekter, for eksempel lagrede prosedyrer og funksjoner. Objektleseren er veldig nyttig for grafisk visning av utførelsesplanen for en bestemt spørring. Spørringsutførelsesplanen er utførelsesalternativet valgt av spørringsoptimereren blant flere mulige alternativer oppfylle en spesifikk forespørsel. Skriv inn den nødvendige spørringen i det øverste panelet i editoren, velg en sekvens med kommandoer fra menyen Spørring --> Vis estimert utførelsesplan (Spørring --> Vis estimert utførelsesplan) og utførelsesplanen for denne spørringen vil vises i nederste panel i redigeringsvinduet. Spørringsredigering i SQL Server Management Studio er basert på løsningsmetoden. Hvis du oppretter en tom spørring ved å bruke knappen Ny spørring, vil den være basert på en tom løsning. Du kan se dette ved å kjøre en sekvens med kommandoer fra menyen Vis --> Solution Explorer umiddelbart etter at du har åpnet en tom spørring. Beslutningen kan være knyttet til ingen, ett eller flere prosjekter. En tom løsning, ikke knyttet til noe prosjekt. For å knytte et prosjekt til en løsning, lukk den tomme løsningen, Solution Explorer og Query Editor, og opprette et nytt prosjekt ved å kjøre Fil --> Ny --> Prosjekt. I vinduet Nytt prosjekt som åpnes, velg alternativet SQL Server Scripts i midtruten. Et prosjekt er en måte å organisere filer på et bestemt sted. Du kan tildele et navn til prosjektet og velge en plassering på disken for plasseringen. Når du oppretter et nytt prosjekt, lanseres en ny løsning automatisk. Prosjektet kan legges til eksisterende løsning ved å bruke Solution Explorer. For hvert prosjekt som opprettes, viser Solution Explorer mappene Connections, Queries og Diverse. For å åpne et nytt Query Editor-vindu for et gitt prosjekt, høyreklikk på Queries-mappen og velg New Query fra kontekstmenyen. SQL Server, som starter med SQL Server 2008, har en innebygd kodefeilsøker. For å starte en feilsøkingsøkt, velg Debug --> Start Debugging fra hovedmenyen i SQL Server Management Studio. Vi vil se på hvordan debuggeren fungerer ved å bruke et eksempel ved å bruke en batch med kommandoer. En batch er en logisk sekvens av SQL-setninger og prosedyreutvidelser som sendes til databasemotoren for å utføre alle setningene den inneholder. Figuren under viser en pakke som teller antall ansatte som jobber med prosjekt p1. Hvis dette tallet er 4 eller mer, vises en tilsvarende melding. Ellers vises for- og etternavn på de ansatte. For å stoppe utførelsen av en pakke ved en spesifikk instruksjon, kan du angi bruddpunkter, som vist i figuren. For å gjøre dette, klikk til venstre for linjen du vil stoppe på. Når feilsøkingen starter, stopper kjøringen ved den første kodelinjen, som er merket med en gul pil. For å fortsette kjøringen og feilsøkingen, velg menykommandoen Feilsøk --> Fortsett. Batchinstruksjonene vil fortsette å utføres til det første bruddpunktet, og den gule pilen vil stoppe på det punktet. Informasjon relatert til feilsøkingsprosessen vises i to paneler nederst i Query Editor-vinduet. Informasjon om forskjellige typer Feilsøkingsinformasjon er gruppert i disse panelene på flere faner. Den venstre ruten inneholder kategorien Autos, Locals-fanen og opptil fem Watch-faner. Den høyre ruten inneholder fanene Call Stack, Threads, Breakpoints, Command Window, Immediate Window og Output. Fanen Locals viser variabelverdier, Call Stack-fanen viser call stack-verdier, og Breakpoints-fanen viser breakpointinformasjon. For å avslutte feilsøkingsprosessen, utfør en sekvens med kommandoer fra hovedmenyen Debug --> Stop Debugging eller klikk på den blå knappen på feilsøkingsverktøylinjen. SQL Server 2012 legger til flere nye funksjoner til den innebygde debuggeren i SQL Server Management Studio. Nå kan du utføre en rekke av følgende operasjoner i den: Angi en bruddpunktbetingelse. Knekkpunkttilstand er et SQL-uttrykk hvis evaluerte verdi bestemmer om kjøring av kode vil stoppe ved et gitt punkt eller ikke. For å spesifisere en bruddpunktbetingelse, høyreklikk på det røde bruddpunktikonet og velg Betingelse fra kontekstmenyen. Dialogboksen Breakpoint Condition åpnes, og lar deg angi det nødvendige boolske uttrykket. I tillegg, hvis du trenger å stoppe kjøringen hvis uttrykket er sant, bør du stille inn Is True-bryteren. Hvis kjøringen må stoppes hvis uttrykket har endret seg, må du stille inn når endret-bryteren. Spesifiser antall treff ved bruddpunktet. Trefftellingen er betingelsen for å stoppe kjøringen på et gitt punkt basert på antall ganger bruddpunktet ble truffet under kjøringen. Når det spesifiserte antallet passeringer og enhver annen betingelse spesifisert for et gitt bruddpunkt er nådd, utfører feilsøkeren den spesifiserte handlingen. Betingelsen for å avbryte utførelse basert på antall treff kan være ett av følgende: ubetinget (standard handling) (Bruk alltid); hvis antall treff er lik den angitte verdien (Bruk når antallet hans er lik en spesifisert verdi); hvis antall treff er et multiplum av en spesifisert verdi (Bruk når treffantallet er lik et multiplum av en spesifisert verdi); Bryt når hans telling er større eller lik en spesifisert verdi. For å angi antall treff under feilsøking, høyreklikk det nødvendige bruddpunktikonet i kategorien Knekkpunkter, velg Antall treff fra kontekstmenyen, og velg deretter en av betingelsene i dialogboksen Antall treffpunktbrudd som åpnes fra forrige liste. For alternativer som krever en verdi, skriv den inn i tekstboksen til høyre for nedtrekkslisten for betingelser. Klikk OK for å lagre de angitte betingelsene. Angi et bruddpunktfilter. Et bruddpunktfilter begrenser bruddpunktdriften til kun spesifiserte datamaskiner, prosesser eller tråder. For å angi et bruddpunktfilter, høyreklikk bruddpunktet du ønsker og velg Filter fra hurtigmenyen. Deretter, i dialogboksen Breakpoint Filters som åpnes, spesifiser du ressursene du vil begrense kjøringen av dette breakpointet til. Klikk OK for å lagre de angitte betingelsene. Spesifiser en handling ved et bruddpunkt. Når treff-betingelsen spesifiserer handlingen som skal utføres når batchkjøring treffer et gitt bruddpunkt. Som standard, når både trefftellerbetingelsen og stoppbetingelsen er oppfylt, avbrytes kjøringen. Alternativt kan en forhåndsspesifisert melding vises. For å spesifisere hva du skal gjøre når et bruddpunkt blir truffet, høyreklikk på det røde ikonet for bruddpunktet og velg Når treff fra hurtigmenyen. I dialogboksen When Breakpoint is Hit som åpnes velger du handlingen du vil utføre. Klikk OK for å lagre de angitte betingelsene. Bruk Quick Watch-vinduet. Du kan se verdien av et Transact-SQL-uttrykk i QuickWatch-vinduet, og deretter lagre uttrykket i Watch-vinduet. For å åpne Quick Watch-vinduet, velg Quick Watch fra Feilsøkingsmenyen. Uttrykket i dette vinduet kan enten velges fra rullegardinlisten Uttrykk eller legges inn i dette feltet. Bruk verktøytipset for hurtiginformasjon. Når du holder musepekeren over en kode-ID, hurtiginfo ( Kort informasjon) viser annonsen i et popup-vindu.Kommandoer for arbeid med databaser
1. Se tilgjengelige databaser
VIS DATABASER; 2. Opprett en ny database
LAG DATABASE; 3. Velge en database som skal brukes
BRUK 4. Importer SQL-kommandoer fra en .sql-fil
KILDE 5. Slett databasen
DROPPE DATABASE Arbeid med tabeller
6. Se tabellene som er tilgjengelige i databasen
VIS TABELLER; 7. Opprett en ny tabell
LAG BORD Integritetsbegrensninger ved bruk av CREATE TABLE
Eksempel
8. Tabellinformasjon
9. Legge til data i tabellen
SETT INN I 10. Oppdatering av tabelldata
OPPDATER 11. Fjerne alle data fra tabellen
SLETT FRA 12. Slett en tabell
DROPPE BORD Kommandoer for å lage spørringer
13. VELG
14. VELG DISTINKT
15. HVOR
Eksempel
16. GRUPPE ETTER
Eksempel
17. Å HA
Eksempel
18. BESTILL INNEN
Eksempel
19. MELLOM
Eksempel
20. LIKER
PLUKKE UT Eksempel
21. INN
Eksempel
22. BLI MED
Eksempel 1
Eksempel 2
Eksempel 3
23. Utsikt
Opprettelse
LAG UTSIKT Fjerning
DROP VISNING Eksempel
24. Aggregerte funksjoner
25. Nestede underspørringer
Eksempel
I denne anmeldelsen skal vi se på de vanligste typene SQL-spørringer.
SQL-standarden er definert ANSI(American National Standards Institute).
SQL er et språk rettet spesielt mot relasjonsdatabaser. SQL-partisjonering:
DDL(Datadefinisjonsspråk)
- det såkalte Schema Description Language i ANSI, består av kommandoer som lager objekter (tabeller, indekser, visninger og så videre) i databasen.
DML(Datamanipulasjonsspråk) er et sett med kommandoer som bestemmer hvilke verdier som er representert i tabeller til enhver tid.
DCD(Databehandlingsspråk) består av fasiliteter som bestemmer om en bruker skal tillate å utføre bestemte handlinger eller ikke. De er en del av ANSI DDL. Ikke glem disse navnene. Dette er ikke forskjellige språk, men deler av SQL-kommandoer gruppert etter funksjonene deres. Datatyper:
SQL Server - Datatyper
(synonym røye)
Fra og med SQL Server 2005 anbefales det ikke å bruke det.
HVA ER EN FORESPØRSEL?
SELECT kommando:
Type spørring med SELECT:VELG kommandostruktur:
– Dette er den enkleste typen forespørsel. Det er flere kommandoer for praktisk datainnhenting (se under "Funksjoner") DML-kommandoer:
SETT INN(Sett inn)
OPPDATER(Oppdatering, endring),
SLETT(Slett) INSERT kommando:
INSERT-kommandoen kommer med prefikset INTO (i til), så i parentes står navnene på kolonnene vi må sette inn data i, så kommer VALUES-kommandoen (verdier) og i parentes kommer verdiene etter tur (det er nødvendig for å observere rekkefølgen på verdiene med kolonnene, verdiene må være i samme rekkefølge som kolonnene du spesifiserte). UPDATE kommando:
DELETE kommando:
Kriterier, funksjoner, betingelser mv. hva hjelper oss i SQL:
Eksempel:
SELECT id, city, birth_day FROM users_base WHERE user_name = 'Alexey';- en slik spørring vil kun vise de radene som samsvarer med WHERE-betingelsen, nemlig alle rader der brukernavn-kolonnen har verdien Alexey.
Eksempel:
SELECT id, city, birth_day FROM users_base ORDER BY user_name ASC; - en slik spørring vil vise verdier sortert etter brukernavn-kolonnen fra A til Å (A-Z; 0-9)
Eksempel:
SELECT id, city, birth_day FROM users_base WHERE user_name = 'Alexey' ORDER BY id ASC;
Eksempel:
SELECT DISTINCT user_name FROM users_base;- En slik spørring vil vise oss verdiene til alle postene i kolonnen user_name, men de vil ikke bli gjentatt, dvs. hvis du hadde et uendelig antall gjentatte verdier, vil de ikke bli vist...
Eksempel:
SELECT * FROM users_base WHERE city = 'Rostov' OG user_name = 'Alexander';- vil vise alle verdiene fra tabellen der navnet på byen vises på én linje (i dette tilfellet Rostov og brukernavnet Alexander.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'Alexander';- vil vise alle verdier fra tabellen der navnet på byen Rostov vises på én linje eller brukernavnet ikke akkurat er Alexander.
SELECT * FROM users_base WHERE city IN ('Vladivostok', 'Rostov');- en slik spørring vil vise alle verdier fra tabellen som inneholder navnene på de angitte byene i bykolonnen
SELECT * FROM users_base WHERE id MELLOM 1 OG 10;- viser alle verdier fra tabellen som vil være i området fra 1 til 10 i id-kolonnen
SELECT COUNT (*) FROM users_base ;- vil vise antall rader i denne tabellen.
SELECT COUNT (DISTINCT user_name) FROM users_base ;- vil vise antall linjer med brukernavn (ikke gjentatt)
SELECT SUM (id) FROM users_base ;- vil vise summen av verdiene til alle rader i id-kolonnen.
VELG AVG (id) FRA users_base ;- vil vise gjennomsnittet av alle valgte verdier i id-kolonnenOpprette tabeller:
GÅ
SETT QUOTED_IDENTIFIER PÅ
GÅ
HVIS IKKE FINNES (VELG * FRA sys.objects WHERE object_id = OBJECT_ID(N."") OG skriv inn (N"U"))
BEGYNNE
LAG TABELL .(
IKKE NULL,
IKKE NULL,
IKKE NULL,
PRIMÆR NØKKEL KLYNGET
A.S.C.
SLUTT
GÅ
SET ANSI_NULLS PÅ
GÅ
SETT QUOTED_IDENTIFIER PÅ
GÅ
HVIS IKKE FINNES (VELG * FRA sys.objects WHERE object_id = OBJECT_ID(N."") OG skriv inn (N"U"))
BEGYNNE
LAG TABELL .(
IDENTITET(1,1) IKKE NULL,
NULL,
NULL,
PRIMÆR NØKKEL KLYNGET
A.S.C.
) MED (IGNORE_DUP_KEY = AV) PÅ
) PÅ TEXTIMAGE_ON
SLUTT
GÅ
SET ANSI_NULLS PÅ
GÅ
SETT QUOTED_IDENTIFIER PÅ
GÅ
HVIS IKKE FINNES (VELG * FRA sys.objects WHERE object_id = OBJECT_ID(N."") OG skriv inn (N"U"))
BEGYNNE
LAG TABELL .(
IDENTITET(1,1) IKKE NULL,
NULL,
NULL,
PRIMÆR NØKKEL KLYNGET
A.S.C.
) MED (IGNORE_DUP_KEY = AV) PÅ
) PÅ
SLUTT
Syntaks i SQL Server 2005 er et annet emne, jeg ville bare vise at jeg beskrev det grunnleggende om SQL-programmering, du kan nå toppen ved å kjenne det grunnleggende.Opptreden
1. Opprett nytt prosjekt i MS Visual Studio som Windows Forms Application.
2. Opprett en ny visning for å vise data fra elevtabellen.
3. Plasser DataGridView-kontrollen og konfigurer forbindelsen med databasen.
4. Stille inn utseendet til DataGridView-kontrollen.
Ris. 14. Starte programmet for utførelse
Ris. 16. Vindu for å sette opp visningen av felt i "Vis student"-visningen
5. Tilkoblingsstreng
Ris. 17. Definere en tilkoblingsstreng
6. Skapelse ny form for å demonstrere datamanipuleringskommandoer.
Ris. 18. Visning av det nyopprettede skjemaet
7. Legge til knapper for å ringe kommandoer for å manipulere data fra elevtabellen.
Ris. 19. Hovedskjema for søknaden
8. Programmere en klikkhendelse på "Sett inn..."-knappen.
9. Programmere en klikkhendelse på "Rediger..."-knappen.
10. Programmere en klikkhendelse på "Slett"-knappen.
Relaterte temaer
Spørringsredaktør
Solution Explorer
Feilsøking av SQL Server