Mysql SQL-Anweisungskommentare

Mysql SQL-Anweisungskommentare

Sie können MySQL-SQL-Anweisungen Kommentare hinzufügen. Hier finden Sie eine vollständige Liste der Kommentare zu MySQL-SQL-Anweisungen. Werfen wir einen Blick darauf!

1. Beschreibung: Erstellen einer Datenbank CREATE DATABASE Datenbankname
2. Beschreibung: Datenbank löschen, Datenbank dbname löschen
3. Beschreibung: SQL sichern
 Server
---
 Erstellen Sie ein Gerät zum Sichern von Daten
VERWENDEN
 Master
EXEC sp_addumpdevice'disk','testBack','c:\mssql7backup\MyNwind_1.dat'
---
 Sicherung starten BACKUPDATABASE pubsTO testZurück
4. Beschreibung: Erstellen Sie eine neue Tabelle create table tabname (col1
 Typ1 [nicht null]
 [Primärschlüssel],col2
 Typ2 [nicht null],..)
Erstellen Sie eine neue Tabelle auf Basis einer vorhandenen Tabelle:
A: Tabelle erstellen tab_newlike tab_old
 (Verwenden Sie die alte Tabelle, um eine neue Tabelle zu erstellen)
B: Tabelle tab_newas erstellen, col1,col2…aus tab_old auswählen
 nur Definition
5. Beschreibung: Löschen Sie die neue Tabelle drop table tabname
6. Beschreibung: Eine Spalte hinzufügen Tabelle ändern tabnameadd column col
 Typ
Hinweis: Sobald eine Spalte hinzugefügt wurde, kann sie nicht mehr gelöscht werden. In DB2 kann der Datentyp nach dem Hinzufügen einer Spalte nicht mehr geändert werden. Das Einzige, was geändert werden kann, ist die Verlängerung des varchar-Typs.
7. Beschreibung: Primärschlüssel hinzufügen: Tabelle Tabname ändern Primärschlüssel hinzufügen (Spalte)
Beschreibung: Löschen des Primärschlüssels: „Alter table tabname drop primary key (col)“
8. Beschreibung: Erstellen Sie einen Index: create [unique]index idxnameon tabname(col…)
Einen Index löschen: drop index idxname
Hinweis: Der Index kann nicht geändert werden. Wenn Sie ihn ändern möchten, müssen Sie ihn löschen und neu erstellen.
9. Beschreibung: Erstellen Sie eine Ansicht: create view viewnameas select-Anweisung
Eine Ansicht löschen: Ansicht „Ansichtsname“ löschen
10. Beschreibung: Mehrere einfache grundlegende SQL-Anweisungen Auswahl: select * from table1 where Bereichseinfügung: insert into table1 (field1, field2) values ​​​​(value1, value2)
Löschen: delete from table1where Bereichsaktualisierung: update table1set field1=value1where Bereichssuche: select *from table1where field1like '%value1%'---Die Syntax von „like“ ist sehr subtil, überprüfen Sie die Informationen!
Sortieren: select * from table1 order by field1,field2
 [Beschreibung]
Gesamt: Anzahl als Gesamtanzahl aus Tabelle1 auswählen
Summe: wähle Summe(Feld1) als Summenwert aus Tabelle1
Durchschnitt: Wählen Sie avg(field1) als Durchschnittswert aus Tabelle1
Max: wähle max(Feld1) als Maximalwert aus Tabelle1
Minimum: wähle min(Feld1) als Mindestwert aus Tabelle1
11. Beschreibung: Mehrere erweiterte Abfrageoperatoren A: UNION-Operator Der UNION-Operator leitet eine Ergebnistabelle ab, indem er zwei andere Ergebnistabellen (z. B. TABELLE1 und TABELLE2) kombiniert und alle doppelten Zeilen in den Tabellen eliminiert. Wenn ALL zusammen mit UNION verwendet wird (also UNION ALL), werden doppelte Zeilen nicht eliminiert. In beiden Fällen stammt jede Zeile der abgeleiteten Tabelle entweder aus TABELLE1 oder aus TABELLE2.
B: EXCEPT-Operator Der EXCEPT-Operator leitet eine Ergebnistabelle ab, indem er alle Zeilen einschließt, die in TABLE1, aber nicht in TABLE2 enthalten sind, und alle doppelten Zeilen eliminiert. Wenn ALL zusammen mit EXCEPT (EXCEPT ALL) verwendet wird, werden doppelte Zeilen nicht eliminiert.
C: INTERSECT-Operator Der INTERSECT-Operator leitet eine Ergebnistabelle ab, indem er nur die Zeilen einschließt, die sowohl in TABLE1 als auch in TABLE2 vorhanden sind, und alle doppelten Zeilen eliminiert. Wenn ALL zusammen mit INTERSECT (INTERSECT ALL) verwendet wird, werden doppelte Zeilen nicht eliminiert.
Hinweis: Die Abfrageergebniszeilen mit dem Operator müssen konsistent sein.
12. Beschreibung: Verwenden Sie den äußeren Join A, den linken (äußeren) Join:
Linker äußerer Join (Left Join): Der Ergebnissatz enthält sowohl die übereinstimmenden Zeilen der verknüpften Tabelle als auch alle Zeilen der linken verknüpften Tabelle.
SQL: wähle aa,
 ab, ac, bc, bd, bf von aLINKS VERBINDEN bON aa
 = bc
B: rechter (äußerer) Join:
Rechter äußerer Join (Right Join): Der Ergebnissatz enthält sowohl die passenden Join-Zeilen der Join-Tabelle als auch alle Zeilen der rechten Join-Tabelle.
C: Vollständiger/kreuzförmiger (äußerer) Join:
Vollständiger äußerer Join: schließt nicht nur die übereinstimmenden Zeilen der symbolischen Join-Tabelle ein, sondern auch alle Datensätze in den beiden verbundenen Tabellen.
12. Gruppieren nach:
 Sobald eine Tabelle gruppiert ist, können nach der Abfrage nur gruppenbezogene Informationen abgerufen werden.
 Gruppenbezogene Informationen: (Statistische Informationen) Anzahl, Summe, Maximum, Minimum, Durchschnitt (Gruppierungskriterien)
  Beim Gruppieren in SQL Server gilt: Sie können Text-, NText- oder Bildfelder nicht als Gruppierungsgrundlage in der Funktion „Statistik auswählen“ verwenden und sie nicht mit normalen Feldern zusammenführen.
13. Arbeiten Sie mit der Datenbank:
 Trennen Sie die Datenbank:
 sp_detach_db; Datenbank anhängen: sp_attach_db gefolgt vom vollständigen Pfadnamen. 14. So ändern Sie den Namen der Datenbank:
sp_renamedb 'alter_Name', 'neuer_Name'
2. Verbesserung 1. Beschreibung: Tabelle kopieren (nur die Struktur kopieren, Name der Quelltabelle: a
 Neuer Tabellenname: b) (Zugriff vorhanden)
Methode 1: select * into b from a where 1<>1 (nur für SQL Server)
Methode 2: Top 0 auswählen
 * in bvon a
2. Beschreibung: Tabelle kopieren (Daten kopieren, Name der Quelltabelle: a
 Name der Zieltabelle: b) (Zugriff vorhanden)
einfügen in b(a,
 b, c) wähle d, e, f aus b;
3. Beschreibung: Kopieren von Tabellen zwischen Datenbanken (unter Verwendung absoluter Pfade für bestimmte Daten)
 (Zugang vorhanden)
einfügen in b(a,
 b, c) select d,e,ffrom bin 'bestimmte Datenbank', wobei Bedingungsbeispiel: ..from bin '"&Server.MapPath(".")&"\data.mdb"
 &"' Wo..
4. Beschreibung: Unterabfrage (Tabellenname 1: a
 Tabellenname 2: b)
wähle a,b,caus awobei aIN (wähle daus b
 ) oder: wähle a,b,caus awobei aIN (1,2,3)
5. Beschreibung: Zeigt den Artikel, den Absender und die Zeit der letzten Antwort an. Wählen Sie a.title,a.username,b.adddateaus Tabelle a,(select max(adddate)
 Datum aus Tabelle hinzufügen, wobei Tabelle.Titel = a.Titel)
 B
6. Beschreibung: Outer Join-Abfrage (Tabellenname 1: a
 Tabellenname 2: b)
wähle aa,
 ab, ac, bc, bd, bf von aLINKS VERBINDEN bON aa
 = bc
7. Beschreibung: Online-Ansichtsabfrage (Tabellenname 1: a
 )
wähle *aus (WÄHLE a,b,cAUS a)
 Wo ist es
 > 1;
8. Hinweis: Verwendung von „zwischen“: „zwischen“ schließt Grenzwerte ein, wenn der Abfragedatenbereich begrenzt wird, und „nicht zwischen“ schließt „select *from table1where time between time1and time2“ nicht ein.
wähle a, b, c aus Tabelle 1, wobei a nicht zwischen Wert1 und Wert2 liegt
9. Beschreibung: Wie man in select * from table1 verwendet, wobei ein
 [nicht]in ('Wert 1', 'Wert 2', 'Wert 4', 'Wert 6')
10. Beschreibung: Zwei verknüpfte Tabellen. Löschen Sie die Informationen in der Primärtabelle, die in der Sekundärtabelle nicht vorhanden sind. Löschen Sie sie aus Tabelle1, wo sie nicht vorhanden sind.
 (Wählen Sie * aus Tabelle2, wobei Tabelle1.Feld1=Tabelle2.Feld1
 )
11. Hinweis: Gemeinsames Abfrageproblem bei vier Tabellen:
Wählen Sie *von aleft inner join bon aa=b.bright inner join con aa=c.cinner join don aa=d.dwobei .....
12. Beschreibung: Erinnerung fünf Minuten im Voraus planen SQL: select * from schedule where datediff('minute',f start time,getdate())>5
13. Beschreibung: ein SQL
 Anweisung zum Lösen der Datenbank-Paging-Auswahl der Top 10
 b.* von (Top 20 auswählen
 Primärschlüsselfeld, Sortierfeld nach Tabellenname, Sortierung nach Sortierfeld (absteigend)
 a, Tabellenname b, wobei b. Primärschlüsselfeld = a. Primärschlüsselfeld, sortiert nach a. Sortierfeldspezifische Implementierung:
Informationen zur Datenbankauslagerung:
 deklarieren Sie @startint,@end int
 @sql 
 nvarchar(600)
 setze @sql='select top'+str(@end-@start+1)+'+von Twhere ridnot in(select top'+str(@str-1)+'Ridvon Twhere Rid>-1)'
 Führen Sie den Befehl sp_executesql aus.
 @sql
Hinweis: Auf eine Variable kann nicht direkt „top“ folgen, daher wird in tatsächlichen Anwendungen nur diese Art der Sonderverarbeitung ausgeführt. Rid ist eine Identifikationsspalte. Dies ist sehr hilfreich, wenn nach top bestimmte Felder folgen. Dadurch können Inkonsistenzen in der tatsächlichen Tabelle nach den Abfrageergebnissen vermieden werden, wenn das oberste Feld ein logischer Index ist (die Daten im logischen Index können mit den Daten der Tabelle inkonsistent sein, und wenn sie sich während der Abfrage im Index befinden, wird der Index zuerst abgefragt).
14. Beschreibung: Top 10 für die ersten 10 Datensätze auswählen
 * Formulartabelle1, wobei Bereich 15, Beschreibung: Wählen Sie alle Informationen des Datensatzes mit dem größten a in jeder Datengruppe mit demselben b-Wert aus (eine ähnliche Verwendung kann für monatliche Foren-Rankings, die monatliche Analyse der meistverkauften Produkte, Rankings nach Fachnoten usw. verwendet werden).
wähle a, b, c aus Tabellenname
 ta, wobei a = (max(a) aus Tabellenname auswählen
 tb, wobei tb.b=ta.b)
16. Beschreibung: Alle Zeilen in Tabelle A, aber nicht in Tabelle B und Tabelle C einschließen und alle doppelten Zeilen eliminieren, um eine Ergebnistabelle abzuleiten (select afrom tableA
 ) außer (wählen Sie a aus Tabelle B aus) außer (wählen Sie a aus Tabelle C aus)
17. Beschreibung: Extrahieren Sie nach dem Zufallsprinzip 10 Datenpunkte und wählen Sie die Top 10 aus.
 * von tablenameorder nach newid()
18. Beschreibung: Datensätze nach dem Zufallsprinzip auswählen select newid()
19. Beschreibung: Löschen Sie doppelte Datensätze 1), löschen Sie aus Tabellenname, in dem die ID nicht enthalten ist (wählen Sie max(id) aus Tabellennamegruppe nach Spalte1, Spalte2, ... aus).
2), wählen Sie distinct * into temp aus Tabellenname
 aus Tabellenname löschen
 in Tabellenname einfügenselect *from temp
auswerten:
 Dieser Vorgang erfordert die Verschiebung einer großen Datenmenge und ist nicht für Datenvorgänge mit großer Kapazität geeignet. 3) Wenn Sie beispielsweise Daten in eine externe Tabelle importieren, wird aus irgendeinem Grund beim ersten Mal nur ein Teil davon importiert, aber es ist schwierig, den genauen Speicherort zu bestimmen, sodass die gesamten Daten erst beim nächsten Mal importiert werden können, wodurch viele doppelte Felder entstehen. Wie lösche ich doppelte Felder? alter table tablename
--Fügen Sie eine Auto-Increment-Spalte hinzu, add column_bint identity(1,1)
 löschen aus Tabellenname, wobei Spalte_b nicht in(
Wählen Sie max(Spalte_b) aus der Tabellennamengruppe nach Spalte1, Spalte2, …)
alter table tablenamedrop column column_b
20. Beschreibung: Listet alle Tabellennamen in der Datenbank auf. select name from sysobjectswhere type='U' //
 U steht für Benutzer 21. Beschreibung: Listet alle Spaltennamen in der Tabelle auf. Wähle den Namen aus syscolumnswhere id=object_id('TableName')
22. Beschreibung: Listet die Felder „Typ“, „Anbieter“ und „Stück“ auf, sortiert nach dem Feld „Typ“. Case kann problemlos Mehrfachauswahlen implementieren, ähnlich wie Case in Select.
Wählen Sie Typ, Summe (Fall Verkäufer, wenn 'A', dann pcselse 0end), Summe (Fall Verkäufer, wenn 'C', dann pcselse 0end), Summe (Fall Verkäufer, wenn 'B', dann pcselse 0end) AUS Tabellenname nach Typ gruppieren
Ergebnisse anzeigen:
Typ
 Verkäufer-Stück
Computer A 1
Computer A 1
Scheibe B 2
Scheibe A 2
Mobiltelefon B 3
Mobile C 3
23. Beschreibung: Tabelle table1 initialisieren
TRUNCATE TABLE Tabelle1
24. Beschreibung: Wählen Sie Datensätze von 10 bis 15 aus, wählen Sie die Top 5 aus
 * von (Top 15 auswählen
 * aus der Tabellenbestellung von idasc)
 table_alias sortiert nach iddesc
Tipp 1: Verwenden Sie 1=1 und 1=2. „wobei 1=1“ wird häufig in SQL-Anweisungskombinationen verwendet.
 Dies bedeutet, dass alles ausgewählt wird, „wobei 1=2“ ist, und die Auswahl aufgehoben wird.
wie:
Wenn
 @strWobei != ''
beginnen
@strSQL festlegen
 = 'auswählen
 count(*) als Gesamtsumme von [' +
 @tblName + ']
 wobei ' +
 @strWo
Ende
anders
beginnen
@strSQL festlegen
 = 'auswählen
 count(*) als Gesamtsumme von [' +
 @tblName + ']'
Ende
Wir können es einfach als Fehler schreiben! Verzeichniseintrag nicht gefunden.
@strSQL festlegen
 = 'auswählen
 count(*) als Gesamtsumme von [' +
 @tblName + ']
 wobei 1=1 stabil'+
 @strWhere 2. Verkleinern Sie die Datenbank - Erstellen Sie den Index DBCC neu
 NEUINDEX
DBCC
 INDEXDEFRAG
--Daten verkleinern und DBCC protokollieren
 SHRINKDB
DBCC
 SHRINKFILE
3. Datenbank dbcc komprimieren
 shrinkdatabase(Datenbankname)
4. Übertragen Sie die Datenbank auf den neuen Benutzer mit den vorhandenen Benutzerberechtigungen exec sp_change_users_login'update_one','newname','oldname'
gehen
5. Überprüfen Sie den Backup-Satz RESTORE
 VERIFYONLY von Festplatte='E:\dvbbs.bak'
6. Reparieren Sie die Datenbank ALTER DATABASE [dvbbs] SET SINGLE_USER
GEHEN
DBCC
 CHECKDB('dvbbs',repair_allow_data_loss)MIT TABLOCK
GEHEN
ALTER DATABASE [dvbbs]SET MULTI_USER
GEHEN
7. Protokoll löschen SET NOCOUNTON
DECLARE @LogischerDateiname
 Systemname,
 @MaxMinutesINT,
 @NewSizeINT
VERWENDEN
 Tabellenname --
 Der Name der zu bedienenden Datenbank SELECT @LogicalFileName
 = 'Tabellenname_log',--
 Protokolldateiname @MaxMinutes
 = 10, --
 Begrenzung der zum Umbrechen des Protokolls zulässigen Zeit.
 @NeueGröße
 = 1 --
 Die Größe der Protokolldatei, die Sie festlegen möchten (M)
Aufstellen
 /initialisieren
DECLARE @OriginalSizeint
Wählen Sie @Originalgröße
 = Größe
 VON sysfiles
 WO Name =
 @LogischerDateiname
WÄHLEN Sie 'Original
 Größe von ' +
 db_name() + '
 LOG ist ' +
 KONVERTIEREN(VARCHAR(30),@Originalgröße)
 + '
 8K Seiten oder ' +
 KONVERTIEREN(VARCHAR(30),(@Originalgröße*8/1024))
 + 'MB'
 VON sysfiles
 WO Name =
 @LogischerDateiname
Tabelle erstellen DummyTrans
 (DummyColumnchar (8000) nicht null)
Erklären Sie @Counter INT,
 @Startzeit
 DATUM, UHRZEIT,
 @TruncLog VARCHAR(255)
Wählen Sie @StartTime
 = GETDATE(),
 @TruncLog
 = 'SICHERUNG
 LOG ' +
 db_name() + '
 MIT TRUNCATE_ONLY'
DBCC
 SHRINKFILE (@LogischerDateiname, @NeueGröße)
EXEC (@TruncLog)
--
 Wickeln Sie den Stamm bei Bedarf ein.
WÄHREND
 @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) --
 die Zeit ist nicht abgelaufen
 UND @OriginalSize
 = (SELECT Größe FROM sysfilesWHERE Name =
 @LogischerDateiname) 
 UND (@OriginalGröße
 * 8 /1024) > @NeueGröße 
 BEGINNEN --
 Äußere Schleife.
Wählen Sie @Counter
 = 0
 WÄHREND 
 ((@Counter < @OriginalSize / 16) UND (@Counter
 < 50000))
 BEGINNEN --
 aktualisieren
 INSERT DummyTransVALUES ('Füllen
 Log')DELETE DummyTrans
 Wählen Sie @Counter
 = @Zähler + 1
 ENDE
 EXEC (@TruncLog)
 ENDE
Wählen Sie 'Finale
 Größe von ' +
 db_name() + '
 LOG ist ' +
 KONVERTIEREN(VARCHAR(30),Größe)
 + '
 8K Seiten oder ' +
 KONVERTIEREN(VARCHAR(30),(Größe*8/1024))
 + 'MB'
 VON sysfiles
 WO Name =
 @LogischerDateiname
DROP TABLE DummyTrans
Stellen Sie NoCountOff ein.
8. Beschreibung: Ändern einer Tabelle exec sp_changeobjectowner'tablename','dbo'
9. Änderungen an allen Tabellen speichern CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwneras NVARCHAR(128),
@NewOwneras NVARCHAR(128)
ALS
DECLARE @Name als NVARCHAR(128)
DECLARE @Owner als NVARCHAR(128)
DECLARE @OwnerName als NVARCHAR(128)
DECLARE curObjectCURSOR FÜR
wähle 'Name' =Name,
  'Eigentümer' =
 Benutzername(UID)
von SysObjects
wobei Benutzername(UID)=@OldOwner
nach Namen sortieren
ÖFFNEN Sie aktuelles Objekt
Holen Sie sich das nächste von aktuellem Objekt in @Name,
 @Eigentümer
WHILE(@@FETCH_STATUS=0)
BEGINNEN  
Wenn
 @Besitzer=@AlterBesitzer
beginnen
  @OwnerName festlegen
 = @AlterBesitzer + '.' +
 rtrim(@Name)
  exec sp_changeobjectowner
 @BesitzerName, @NeuerBesitzer
Ende
--
 Wählen Sie @Name, @NeuerBesitzer, @AlterBesitzer
Holen Sie sich das nächste von aktuellem Objekt in @Name,
 @Eigentümer
ENDE
aktuelles Objekt schließen
Zuordnung von aktuellem Objekt aufheben
GEHEN
10. SQL
 Direkte Schleife und Schreiben von Daten in SERVER deklarieren @iint
setze @i=1
während
 @ich<30
beginnen
  in Test einfügen
 (Benutzer-ID) Werte(@i)
  setze @i=@i+1
Ende
Beispiele:
Die folgende Tabelle erfordert, dass alle Noten, die zum Bestehen der Prüfung führten, jedes Mal um 0,1 erhöht werden müssen, damit sie bestehen:
 Nennen Sie die Punktzahl
 Zhangshan
 80
 Lishi   
 59
 Wangwu   
 50
 Songquan
 69
während((min(Punktzahl) aus tb_table auswählen)<60)
beginnen
tb_tableset-Score aktualisieren
 =Punktzahl*1,01
wobei die Punktzahl <60 ist
Wenn 
 (Wählen Sie min(Punktzahl) aus tb_table)>60
 brechen
 anders
  weitermachen
Ende
Datenentwicklung - Klassisch 1. Sortieren nach der Anzahl der Striche des Nachnamens:
Wählen Sie *Aus TabellennameSortieren nach KundennameCollate Chinese_PRC_Stroke_ci_as
 //Von weniger zu mehr 2. Datenbankverschlüsselung:
select encrypt('ursprüngliches Passwort')
wähle pwdencrypt('ursprüngliches Passwort')
select pwdcompare('Ursprüngliches Passwort','Verschlüsseltes Passwort')
 = 1 – das Gleiche, sonst unterschiedlich encrypt('ursprüngliches Passwort')
wähle pwdencrypt('ursprüngliches Passwort')
select pwdcompare('Ursprüngliches Passwort','Verschlüsseltes Passwort')
 = 1 – gleich, sonst nicht gleich 3. Rufen Sie die Felder in der Tabelle ab:
deklarieren Sie @listvarchar(1000),
@sql
 nvarchar(1000)
Wählen Sie @list=@list+','+b.name aus Sysobjects
 a,syscolumns b wobei a.id=b.idund a.name='Tabelle A'
setzen Sie @sql='select
 '+rechts(@Liste,Länge(@Liste)-1)+'
 aus Tabelle A'
Exec (@sql)
4. Überprüfen Sie die Festplattenpartition:
EXEC-Master..xp_fixeddrives
5. Vergleichen Sie, ob A und B gleich sind:
Wenn
 (Wählen Sie Prüfsumme_agg(binäre_Prüfsumme(*)) aus A)
   =
  (Wählen Sie checksum_agg(binary_checksum(*))aus B)
drucke "gleich"
anders
print'Ungleich'
6. Beenden Sie alle Profiler-Prozesse:
Erklären Sie hcforeachCURSOR GLOBAL für SELECT 'kill
 '+RTRIM(spid)FROM master.dbo.sysprocesses
WHERE ProgrammnameIN('SQL
 Profiler',N'SQL
 Profiler')
EXEC sp_msforeach_worker '?'
7. Datensatzsuche:
Wählen Sie die Top N vom Anfang bis zu N Datensätzen aus
 * Aus der Tabelle-------------------------------
N bis M Datensätze (mit primärer Index-ID)
Wählen Sie Top MN
 * Aus Tabelle Wo IDin (Wählen Sie Top M
 ID aus Tabelle)Sortieren nach ID Desc
----------------------------------
N bis zum Ende des Datensatzes Top N auswählen
 * Aus Tabelle Order by IDDesc
Fall 1: Eine Tabelle hat mehr als 10.000 Datensätze. Das erste Feld der Tabelle, RecID, ist ein Autoinkrementfeld. Schreiben Sie eine SQL-Anweisung, um die Datensätze 31 bis 40 in der Tabelle zu finden.
 Top 10 auswählen
 recid von Awhere recidnot in(top 30 auswählen
 aus A)
Analyse: Wenn es so geschrieben wird, treten einige Probleme auf, wenn recid einen logischen Index in der Tabelle hat.
 Top 10 auswählen
 recid von Awhere... ist aus dem Index zu suchen, und die folgenden wählen Sie die Top 30
 recid von A wird in der Datentabelle gesucht. Da die Reihenfolge im Index möglicherweise nicht mit der in der Datentabelle übereinstimmt, sind die gefundenen Daten möglicherweise nicht die ursprünglich gesuchten Daten.
Lösung 1,
 Verwenden Sie die Sortierung nach den Top 30
 recid von Aorder von ricid
 Wenn das Feld nicht selbsterhöhend ist, tritt Problem 2 auf.
 Fügen Sie dieser Unterabfrage die Bedingung hinzu: select top 30
 recid von A, wo recid>-1
Beispiel 2: Abfrage des letzten Datensatzes in einer Tabelle, aber ohne Kenntnis des Datenumfangs in der Tabelle oder der Tabellenstruktur.
setze @s
 = 'auswählen
 top 1 * von T, wo pid nicht in (select top ' +
 str(@Anzahl-1)
 + '
 pid von T)'
drucken
 @s exec sp_executesql 
 @S
9: Holen Sie sich alle Benutzertabellen in der aktuellen Datenbank. Wählen Sie „Name“ aus „sysobjectswhere“ aus, wobei „xtype='u'“ und „status>=0“ ist.
10: Alle Felder einer Tabelle abrufen. Wählen Sie den Namen aus den Syscolumns aus, wobei id = object_id('Tabellenname') ist.
Wählen Sie den Namen aus den Systemspalten, wo IDN ist (wählen Sie die ID aus den Systemobjekten, wo der Typ ist
 = 'u' und Name = 'Tabellenname')
Die beiden Methoden haben den gleichen Effekt 11: View Views, Stored Procedures und Funktionen, die sich auf eine Tabelle beziehen select a.*from sysobjects
 a, Systemkommentare b wobei a.id
 = b.id und b.textlike '%Tabellenname%'
12: Alle gespeicherten Prozeduren in der aktuellen Datenbank anzeigen. Wählen Sie den Namen als Namen der gespeicherten Prozedur aus Sysobjects aus, wobei xtype = "P" ist.
13: Alle vom Benutzer erstellten Datenbanken abfragen select *from master..sysdatabases
 D, wobei Sid nicht drin ist (wählen Sie Sid vom Master..syslogins, wobei Name='sa')
Oder wählen Sie dbid,name AS DB_NAME aus master..sysdatabases, wo sid
 <> 0x01
14: Abfrage der Felder und Datentypen einer Tabelle select column_name,data_typefrom information_schema.columns
wobei Tabellenname
 = 'Tabellenname'
15: Datenoperationen zwischen verschiedenen Serverdatenbanken - Verknüpfte Server erstellen exec sp_addlinkedserver 'ITSV
 ','
 ','SQLOLEDB
 '',''Name oder IP-Adresse des Remote-Servers'
exec sp_addlinkedsrvlogin 'ITSV
 ','FALSCH
 ',null,'Benutzername','Passwort'
--Abfragebeispiel select *from ITSV.database name.dbo.table name --Importbeispiel select *into tablefrom ITSV.database name.dbo.table name --Löschen Sie den verknüpften Server, wenn er nicht mehr verwendet wird exec sp_dropserver 'ITSV
 ','Droplogins
 '
--Verbindung zu Remote-/LAN-Daten herstellen (Openrowset/OpenQuery/OpenDataSource)
--1. Öffnen Sie das Rowset
--Abfragebeispiel select *from openrowset('SQLOLEDB
 ','SQL-Servername';'Benutzername';'Passwort',Datenbankname.dbo.Tabellenname)
--Generieren Sie eine lokale Tabelle select *into table from openrowset('SQLOLEDB
 ','SQL-Servername';'Benutzername';'Passwort',Datenbankname.dbo.Tabellenname)
-- Importieren Sie die lokale Tabelle in die Remote-Tabelle insert openrowset('SQLOLEDB
 ','SQL-Servername';'Benutzername';'Passwort',Datenbankname.dbo.Tabellenname)
Wählen Sie * aus der lokalen Tabelle - aktualisieren Sie die lokale Tabelle, aktualisieren Sie b
setze b.SpalteA=a.SpalteA
 von openrowset('SQLOLEDB
 ','SQL-Servername';'Benutzername';'Passwort',Datenbankname.dbo.Tabellenname) als innerer Join der lokalen Tabelle b
auf a.Spalte1=b.Spalte1
--Für die Verwendung von OpenQuery muss eine Verbindung hergestellt werden. --Erstellen Sie zunächst eine Verbindung, um einen verknüpften Server zu erstellen. exec sp_addlinkedserver 'ITSV
 ','
 ','SQLOLEDB
 '',''Name oder IP-Adresse des Remote-Servers'
--Abfrageauswahl *
VON openquery(ITSV, 'SELECT
 * VON Datenbank.dbo.Tabellenname')
-- Importieren Sie die lokale Tabelle in die Remote-Tabelle insert openquery(ITSV, 'SELECT
 * VON Datenbank.dbo.Tabellenname')
Wählen Sie * aus der lokalen Tabelle - aktualisieren Sie die lokale Tabelle, aktualisieren Sie b
setze b.Spalte B = a.Spalte B
VON openquery(ITSV, 'SELECT
 * FROM database.dbo.table name') als
Innerer Join der lokalen Tabelle b auf a. Spalte A = b. Spalte A
--3. OpenDataSource/OpenRowset
WÄHLEN *
VON opendatasource('SQLOLEDB
 ', 'Daten
 Quelle=IP/Servername;Benutzer-ID=Anmeldename;Passwort=Passwort' ).test.dbo.roy_ta
--Importieren Sie die lokale Tabelle in die Remote-Tabelle insert opendatasource('SQLOLEDB
 ', 'Daten
 Quelle=IP/Servername;Benutzer-ID=Anmeldename;Passwort=Passwort‘).Datenbank.dbo.Tabellenname select *aus lokaler Tabelle SQL
 Server-Basisfunktion SQL
 Server-Basisfunktionen 1. String-Funktionslänge und -analyse 1, datalength (Char_expr)
 Gibt die Anzahl der Zeichen in der Zeichenfolge zurück, schließt jedoch das nachstehende Leerzeichen nicht ein. 2, Teilzeichenfolge (Ausdruck, Anfang, Länge)
 Nehmen Sie eine Teilzeichenfolge. Der Index der Zeichenfolge beginnt bei „1“, Start ist die Startposition und Länge ist die Länge der Zeichenfolge. In praktischen Anwendungen wird len(expression) verwendet, um die Länge 3 zu erhalten, right(char_expr, int_expr)
 Gibt das int_expr-Zeichen auf der rechten Seite der Zeichenfolge zurück und verwendet left, um das Gegenteil zu tun 4, isnull (
 check_expression, replacement_value) Wenn check_expression leer ist, wird der Wert von replacement_value zurückgegeben. Wenn es nicht leer ist, wird check_expression zurückgegeben. Zeichenoperationsklasse 5, Sp_addtype
 Benutzerdefinierte Datentypen, zum Beispiel: EXEC sp_addtype
 Geburtstag, Datum/Uhrzeit, „NULL“
6, setze nocount
 {an|aus}
Bewirkt, dass die zurückgegebenen Ergebnisse keine Informationen über die Anzahl der von einer Transact-SQL-Anweisung betroffenen Zeilen enthalten. Wenn die gespeicherte Prozedur Anweisungen enthält, die nicht viele tatsächliche Daten zurückgeben, kann diese Einstellung die Leistung durch eine deutliche Reduzierung des Netzwerkverkehrs erheblich verbessern. Anzahl der Einträge
 Die Einstellungen werden zur Ausführungs- bzw. Laufzeit und nicht zum Analysezeitpunkt festgelegt.
SETZE KEINE ANZAHL
 Wenn aktiviert, wird keine Anzahl (die die Anzahl der von der Transact-SQL-Anweisung betroffenen Zeilen angibt) zurückgegeben.
SETZE KEINE ANZAHL
 Wenn OFF, wird die Anzahl zurückgegeben. Allgemeiner Sinn bei SQL-Abfragen: Die maximale Anzahl von Tabellen oder Ansichten, denen von gefolgt werden kann, ist: 256
Wenn Order by in der SQL-Anweisung erscheint, sortieren Sie bei der Abfrage zuerst und rufen Sie dann ab. In SQL beträgt die maximale Kapazität eines Felds 8000 und für nvarchar(4000), da nvarchar ein Unicode-Code ist.
Implementierungsschritte 1 der synchronen Replikationstechnologie von SQL Server 2000:
 Vorbereitung 1. Erstellen Sie einen Windows-Benutzer mit demselben Namen und Kennwort sowohl für den Veröffentlichungsserver als auch für den Abonnementserver als gültiger Zugriffsbenutzer für die Veröffentlichung von Snapshot-Ordnern - Verwaltung - Computerverwaltung - Benutzer und Gruppen - Klicken Sie mit der rechten Maustaste auf den Benutzer - Neuer Benutzer - Erstellen Sie einen Benutzer (SynUser), der der Administratorgruppe angehört, um sich bei Windows anzumelden
2. Erstellen Sie auf dem Veröffentlichungsserver ein neues freigegebenes Verzeichnis als Speicherverzeichnis für die veröffentlichten Snapshot-Dateien und gehen Sie wie folgt vor:
Mein Computer - D:\
 Erstellen Sie ein neues Verzeichnis mit dem Namen: PUB
--Rechtsklick auf das neu erstellte Verzeichnis --Eigenschaften --Freigabe --„Diesen Ordner freigeben“ auswählen
--Legen Sie über die Schaltfläche "Berechtigungen" bestimmte Benutzerberechtigungen fest, um sicherzustellen, dass der im ersten Schritt erstellte Benutzer (SynUser)
 Verfügen Sie über alle Berechtigungen für den Ordner – Bestätigen Sie 3. Legen Sie den Startbenutzer des SQL Agent-Dienstes (SQLSERVERAGENT) fest (sowohl der Publish/Subscribe-Server sollte dies tun).
Start - Programme - Verwaltung - Dienste - Rechtsklick auf SQLSERVERAGENT
--Eigenschaften--Anmelden--Wählen Sie „Dieses Konto“
--Geben Sie den im ersten Schritt erstellten Windows-Anmeldebenutzernamen ein oder wählen Sie ihn aus (SynUser).
--Geben Sie das Passwort des Benutzers unter „Passwort“ ein. 4. Legen Sie SQL fest
 Serverauthentifizierungsmodus, um das Berechtigungsproblem beim Verbinden zu lösen (sowohl Publish- als auch Subscribe-Server haben diese Einstellung)
Enterprise Manager - Rechtsklick auf SQL-Instanz - Eigenschaften - Sicherheit - Authentifizierung - "SQL" auswählen
 Server und Windows
--Bestätigen Sie 5. Registrieren Sie Enterprise Manager auf dem Publisher- und dem Subscriber-Server. --Klicken Sie mit der rechten Maustaste auf SQL
 Servergruppe - SQL erstellen
 Serverregistrierung...
--Weiter--Geben Sie in den verfügbaren Servern den Namen des Remote-Servers ein, den Sie registrieren möchten--Hinzufügen--Weiter--Verbinden mit, wählen Sie die zweite "SQL
 Server-Authentifizierung"
--Weiter--Benutzernamen und Passwort eingeben (SynUser)
--Weiter--SQL auswählen
 Servergruppe, Sie können auch eine neue Gruppe erstellen – Weiter – Fertig 6. Für diejenigen, die nur die IP, aber keinen Computernamen verwenden können, registrieren Sie einen Serveralias dafür (dieser Schritt wird bei der Implementierung nicht verwendet).
 (Auf der Verbindungsseite konfiguriert; wenn beispielsweise auf dem Abonnentenserver konfiguriert, ist der Servername die IP-Adresse des Herausgeberservers)
Start - Programme - Microsoft
 SQL Server – Client-Netzwerkdienstprogramm – Alias ​​– Hinzufügen – Netzwerkbibliothek „tcp/ip“ auswählen – Serveralias den SQL-Servernamen eingeben – Verbindungsparameter – Geben Sie die SQL-Server-IP-Adresse im Servernamen ein – Wenn Sie den SQL-Port geändert haben, deaktivieren Sie „Port dynamisch bestimmen“ und geben Sie die entsprechende Portnummer ein. 2.
 Formale Konfiguration 1. Konfigurieren Sie den Veröffentlichungsserver. Öffnen Sie Enterprise Manager und führen Sie die folgenden Schritte auf den Veröffentlichungsservern (B, C, D) aus:
(1)
 Wählen Sie [Veröffentlichung, Abonnements und Verteilung konfigurieren] aus dem Untermenü [Replikation] im Pulldown-Menü [Tools]. Der Assistent zum Konfigurieren von Veröffentlichung und Verteilung wird angezeigt (2).
 [Weiter] Wählen Sie den Verteilungsserver. Sie können wählen, ob Sie den Veröffentlichungsserver selbst als Verteilungsserver verwenden möchten oder einen anderen SQL-Server (selbst auswählen).
(3)
 [Weiter] Legen Sie den Snapshot-Ordner so fest, dass er den Standardwert \\Servername\Pub verwendet.
(4)
 [Weiter] Benutzerdefinierte Konfiguration Sie können wählen: Ja, ich möchte die Eigenschaften der Verteilungsdatenbank festlegen Den Veröffentlichungsserver aktivieren oder Veröffentlichungseinstellungen festlegen Nein, ich möchte die folgenden Standardeinstellungen verwenden (empfohlen)
(5)
 [Weiter] Setzen Sie den Namen und den Speicherort der Verteilungsdatenbank auf die Standardwerte (6)
 [Weiter] Aktivieren Sie den Veröffentlichungsserver und wählen Sie den zu veröffentlichenden Server aus (7)
 [Weiter] Wählen Sie die zu veröffentlichende Datenbank und den Veröffentlichungstyp aus (8)
 [Weiter] Wählen Sie „Subscription Server registrieren“ (9)
 [Weiter] Schließen Sie die Konfiguration ab. 2. Erstellen Sie eine Publikation auf den Servern B, C und D. (1) Wählen Sie den Befehl [Publikationen erstellen und verwalten] aus dem Untermenü [Replikation] des Menüs [Tools]. (2) Wählen Sie die Datenbank aus, in der Sie eine Publikation erstellen möchten, und klicken Sie dann auf [Publikation erstellen].
(3) Klicken Sie im Eingabedialogfeld des [Assistent zum Erstellen einer Veröffentlichung] auf [Weiter]. Ein Dialogfeld wird angezeigt. Der Inhalt des Dialogfelds umfasst drei Kopierarten. Wir wählen nun die erste Version aus, die die Standard-Snapshot-Version ist (für die anderen beiden können Sie in der Hilfe nachschauen).
(4) Klicken Sie auf [Weiter]. Das System fordert Sie dann auf, den Typ des Datenbankservers anzugeben, der die Veröffentlichung abonnieren kann.
SQLSERVER ermöglicht die Datenreplikation zwischen verschiedenen Datenbanken wie beispielsweise ACLE oder ACCESS.
Aber hier wählen wir "SQL
 SERVER 2000" Datenbankserver (5) Klicken Sie auf [Weiter] und es öffnet sich ein Dialogfeld zur Definition des Artikels, d. h. zur Auswahl der zu veröffentlichenden Tabelle. Hinweis:
 Wenn Sie die transaktionale Veröffentlichung ausgewählt haben, können Sie in diesem Schritt nur Tabellen mit Primärschlüsseln auswählen. (6) Wählen Sie den Veröffentlichungsnamen und die Beschreibung aus. (7) Passen Sie den Assistenten für Veröffentlichungseigenschaften an, um die folgenden Optionen bereitzustellen:
Ja, ich werde die Datenfilterung anpassen, anonyme Abonnements und andere benutzerdefinierte Eigenschaften aktivieren. Nein, ich werde eine Veröffentlichung gemäß der angegebenen Methode erstellen (benutzerdefinierte Methode wird empfohlen).
(8)[Nächster Schritt]
 Wählen Sie die Methode zum Filtern der Veröffentlichung (9) [Weiter]
 Sie können wählen, ob Sie anonyme Abonnements zulassen möchten. 1) Wenn Sie signierte Abonnements wählen, müssen Sie beim Herausgeber eine Abonnentenmethode hinzufügen:
 [Tools]->[Replikation]->[Eigenschaften von Veröffentlichung, Abonnementserver und Verteilung konfigurieren]->[Abonnementserver] Fügen Sie hinzu, da sonst beim Anfordern eines Abonnements auf dem Abonnementserver eine Eingabeaufforderung angezeigt wird: Änderungsveröffentlichung erlaubt keine anonymen Abonnements. Wenn weiterhin anonyme Abonnements erforderlich sind, verwenden Sie die folgende Lösung [Enterprise Manager]->[Replikation]->[Veröffentlichungsinhalt]->[Eigenschaften]->[Abonnementoptionen]
 Wählen Sie Anonyme Abonnementanfragen zulassen 2) Wenn anonymes Abonnement ausgewählt ist, wird die obige Eingabeaufforderung bei der Konfiguration des Abonnementservers nicht angezeigt (10) [Weiter]
 Zeitplan für den Snapshot-Agent festlegen (11) [Weiter]
 Nach Abschluss der Konfiguration wird die Datenbank zum Erstellen der Veröffentlichung zu einer gemeinsamen Datenbank mit den Daten srv1. Bibliotheksname..Autor mit den Feldern: ID, Name, Telefon,
srv2. Bibliotheksname..Autor hat Felder: ID, Name, Telefon, Adresse
Erfordern:
Wenn srv1.library name..author einen Datensatz hinzufügt, wird das Telefonfeld von srv1.library name..author aktualisiert und das entsprechende Telefonfeld von srv1.library name..author wird aktualisiert. --*/
--Allgemeine Verarbeitungsschritte--1. Erstellen Sie einen Verbindungsserver auf srv1, damit Sie srv2 in srv1 betreiben und eine Synchronisierung durchführen können: exec sp_addlinkedserver'srv2','','SQLOLEDB','srv2's SQL-Instanzname oder IP'
exec sp_addlinkedsrvlogin'srv2','false',null,'Benutzername','Passwort'
gehen
--2. Starten Sie auf beiden Computern srv1 und srv2 msdtc (Distributed Transaction Processing Service) und richten Sie es so ein, dass es automatisch startet. Arbeitsplatz - Systemsteuerung - Verwaltung - Dienste - Rechtsklick auf Distributed Transaction Coordinator - Eigenschaften - Start - und den Starttyp auf Automatischer Start einstellen
--Erstellen Sie dann einen Job, um das oben beschriebene Synchronisierungsspeicherverfahren regelmäßig aufzurufen. Enterprise Manager --Management --SQL
 Server-Agent - Rechtsklick auf den Job - neuen Job erstellen - Jobnamen im Punkt "Allgemein" eingeben - Punkt "Schritt" - erstellen - Schrittnamen im Punkt "Schrittname" eingeben - bei "Typ" "Transact-SQL" auswählen
 Skript (TSQL)"
--Wählen Sie unter „Datenbank“ die Datenbank aus, in der der Befehl ausgeführt werden soll. --Geben Sie unter „Befehl“ die auszuführende Anweisung ein:
 exec p_process
--Bestätigen--Element „Zeitplan“--Neuer Zeitplan--Geben Sie den Zeitplannamen unter „Name“ ein--Wählen Sie Ihren Zeitplan für die Auftragsausführung unter „Zeitplantyp“ aus--Wenn Sie „Wiederkehrend“ auswählen
-- Klicken Sie auf „Ändern“, um Ihren Zeitplan festzulegen, und dann auf SQL
 Starten Sie den Agent-Dienst und stellen Sie ihn so ein, dass er automatisch startet, da Ihr Job sonst nicht ausgeführt wird. Einstellmethode:
Arbeitsplatz – Systemsteuerung – Verwaltung – Dienste – Rechtsklick auf SQLSERVERAGENT – Eigenschaften – Starttyp – „Automatischer Start“ auswählen – OK.
--3. Methode 2 zur Implementierung der Synchronisierung: geplante Synchronisierung -- Erstellen Sie die folgende Synchronisierungsspeicherprozedur create proc in srv1
 p_Prozess
als
--Aktualisieren Sie die geänderten Daten update bset name=i.name,telphone=i.telphone
von srv2.Bibliotheksname.dbo.Autor
 b,Autor i
wobei b.id=i.idund
(b.name <>
 i.Name oder b.Telefon
 <> i.Telefon)
--Fügen Sie die neu hinzugefügten Daten ein. insert srv2.library name.dbo.author(id,name,telphone)
Wählen Sie ID, Name und Telefonnummer des Autors aus
 ich
wo nicht existiert(
Wählen Sie * aus srv2.Bibliotheksname.dbo.author, wobei id=i.id)
--Gelöschte Daten löschen (falls erforderlich)
lösche b
von srv2.Bibliotheksname.dbo.Autor
 B
wobei „nicht“ existiert (
Wählen Sie * vom Autor, wobei ID = b.id)
gehen

Zusammenfassen

Oben finden Sie die vollständige Liste der vom Herausgeber eingeführten Kommentare zu MySQL-SQL-Anweisungen. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • MySql erstellt eine Tabelle mit Erklärungen und kommentiert die Tabelle und die Felder
  • MariaDB (MySQL-Zweig) my.cnf-Konfigurationsdatei, chinesische kommentierte Version
  • Einführung in MySQL-Anweisungskommentare

<<:  Vollständiger Code zur Implementierung der Vue-Backtop-Komponente

>>:  Detaillierte Erläuterung der Redis-Persistenz, Master-Slave-Synchronisierung und Sentinel unter Linux

Artikel empfehlen

Grafisches Tutorial zur Installation von MySQL 5.6.35 unter Windows 10 64-Bit

1. Laden Sie MySQL Community Server 5.6.35 herunt...

Wie löst Vue das domänenübergreifende Problem des Axios-Request-Frontends?

Inhaltsverzeichnis Vorwort 1. Warum treten domäne...

Detaillierte Erklärung der Linux-Less-Befehlsbeispiele

weniger Dateiname Datei anzeigen kleiner Dateinam...

So bereinigen Sie Ihre Docker-Daten vollständig

Inhaltsverzeichnis Regelmäßig beschneiden Spiegel...

JavaScript implementiert das Topfschlagen-Spiel von Gray Wolf

1. Projektdokumente 2. Verwenden Sie HTML und CSS...

Gründe und Lösungen für das Versagen des React-Ereignisdrosselungseffekts

Inhaltsverzeichnis Das Problem hierbei ist: Lösun...

Detaillierte Erklärung langsamer MySQL-Abfragen

Informationen zu MySQL-Vorgängen abfragen Status ...

Mehrere Lösungen für die Ausrichtung von CSS-Datensatztextsymbolen

Während der Entwicklung kommt es sehr häufig vor,...

So zeichnen Sie spezielle Grafiken in CSS

1. Dreieck Rahmeneinstellungen Code: Breite: 300p...

Optimierung von JavaScript und CSS zur Verbesserung der Website-Leistung

<br /> Im ersten und zweiten Teil haben wir ...

Einführung in verschiedene Möglichkeiten zur Einführung von CSS in HTML

Inhaltsverzeichnis 1. CSS-Stile direkt in HTML-Ta...

Wichtige Hinweise zu PHP-HTMLhtml-Wissenspunkten (unbedingt lesen)

1. Verwenden Sie Frameset, Frame und Iframe, um m...