AND
, IN
, LIKE
und BETWEEN
gehören alle zu einer Kategorie namens?BEGIN TRY SELECT 'Foo' AS Result; END TRY BEGIN CATCH SELECT 'Bar' AS Result; END CATCH
SELECT Students.vorname, Students.nachname, Departments.bürostandort FROM Students, Departments;
SELECT Students.vorname, Students.nachname, Departments.bürostandort FROM Students JOIN Departments ON Students.department = Departments.department;
SELECT Students.vorname, Students.nachname, Departments.bürostandort FROM Students JOIN Departments;
SELECT Students.vorname, Students.nachname, Departments.bürostandort FROM Students ON Students.department = Departments.department;
TRUNCATE TABLE
DELETE
MERGE
DROP
SELECT SpielTyp, MaxSpieler, count(*) AS AnzahlDerSpiele FROM Spiele GROUP BY MaxSpieler, SpielTyp ORDER BY MaxSpieler, SpielTyp;
SELECT SpielTyp, MaxSpieler, count(*) AS AnzahlDerSpiele FROM Spiele GROUP BY SpielTyp, MaxSpieler ORDER BY SpielTyp;
SELECT SpielTyp, count(Spieler) AS MaxSpieler, AnzahlDerSpiele FROM Spiele GROUP BY SpielTyp, MaxSpieler ORDER BY SpielTyp;
SELECT SpielTyp, MaxSpieler, count(*) AS AnzahlDerSpiele FROM Spiele GROUP BY SpielTyp ORDER BY MaxSpieler;
DECLARE @EinzigartigeID uniqueidentifier = NEWID();
SELECT @EinzigartigeID AS Ergebnis;
WHERE team NICHT 'Chemistry Cats';
WHERE team <> 'Chemistry Cats';
WHERE team != 'Chemistry Cats';
WHERE NICHT team = 'Chemistry Cats';
WHERE
-Klausel sollten Sie in diese Abfrage einfügen?WHERE Nachname = A*
WHERE Nachname = LIKE '%A%'
WHERE Nachname LIKE 'A%'
WHERE Nachname IN ('A*')
SELECT LIMIT(2) vorname, department, team FROM Students ORDER BY punkte ASC;
SELECT TOP(2) vorname, deprtment, team FROM Students ORDER BY punkte DESC;
SELECT TOP(2) WITH TIES vorname, department, team FROM Students ORDER BY punkte;
SELECT BOTTOM(2) vorname, department, team FROM Students ORDER BY punkte ASC;
Das Bild der Tabelle ist hier wichtig und dort kann gesehen werden, dass es nur zwei Werte mit den niedrigsten Punkten gibt. Zweitens war die vorherige Antwort falsch, weil
ORDER BY DESC
die höchsten Punkte an den Anfang der Ergebnisliste stellt undTOP(2)
die ersten beiden höchsten Punkte nimmt, und wir die niedrigsten Punkte brauchen.
SELECT FLOOR(-1234.321)
UPDATE Students SET nachname = 'Smith' WHERE email = 'dfiggins@rouxacademy.com';
UPDATE Students SET nachname = 'Figgins' WHERE email = 'dfiggins@rouxacademy.com';
UPDATE Students SET nachname = 'Figgins' WHERE nachname = 'Smith' UND vorname = 'Donette';
UPDATE Students SET nachname = 'Smith' WHERE nachname = 'Figgins' UND vorname = 'Donette';
[ ] TRUNCATE FROM Products *;
DELETE FROM Products;
DELETE * FROM Products;
TRUNCATE TABLE Products;
SELECT 1 / 2 AS Ergebnis;
float
int
tinyint
bigint
SELECT 'abc\ def' AS Ergebnis;
SELECT TOP(1) vorname, nachname FROM Students ORDER BY NEWID();
SELECT TOP(1) RAND(vorname, nachname) FROM Student;
SELECT TOP(1) vorname, nachname FROM Student;
SELECT TOP(1) vorname, nachname FROM RAND(Student);
DECLARE @MeineVariable int;
SET @MeineVariable = 1;
GO
SELECT @MeineVariable;
ALTER USER Sharon WITH DEFAULT_SCHEMA = Sales;
ALTER USER Sharon SET SCHEMA Sales;
CREATE SCHEMA Sales SET OWNER Sharon;
CREATE SCHEMA Sales AUTHORIZATION Sharon;
CROSS JOIN
zwischen einer Tabelle mit 4 Zeilen und einer mit 5 Zeilen ergibt _ Zeilen.WHERE
-Klausel sollten Sie in diese Abfrage einfügen?SELECT ProduktID, Produktname, Seriennummer FROM Produkte______ ;
WHERE Seriennummer LIKE '%10_3'
WHERE Seriennummer LIKE ('%10'+'_'+'3')
WHERE Seriennummer LIKE '%10"_"3'
WHERE Seriennummer LIKE '%10[_]3'
Der Unterstrich passt zu einem einzelnen Zeichen, daher müssen Sie das Literal
_
in eckige Klammern einschließen, da sonst eine Seriennummer, die mit '1013', '10A3' usw. endet, zurückgegeben werden kann.
FROM
-Klausel einer Abfrage angegeben ist, welcher Verbindungstyp wird angenommen?INNER
RIGHT
LEFT
FULL
RIGHT JOIN
sicher?Create table students(id int identity(1000,1), firstname varchar(20),
lastname varchar(30));
insert into students(firstname,lastname)values('mark','twain');
select * from students;
%OPTION% studentid vorname nachname 1 1001 mark twain
%OPTION% studentid vorname nachname 1 1 mark twain
%OPTION% studentid vorname nachname 1 1000 mark twain
%OPTION% studentid vorname nachname 1 null mark twain
CREATE TABLE Students ( StudentName varchar(50), Grade int );
SELECT StudentName FROM Students WHERE Grade = MAX(Grade);
SELECT TOP(1) StudentName FROM Students ORDER BY Grade;
SELECT TOP(1) WITH TIES StudentName FROM Students ORDER BY Grade DESC;
SELECT StudentName, MAX(Grade) FROM Students ORDER BY Grade DESC;
TOP(1)
mit ties nimmt die höchste Note und alle anderen Schüler mit derselben Note (weil sie nach der Note sortiert sind) und entspricht der höchsten Note.
select bookid, boooktitle, bookauthor,quantityonhand from inventory.books;
zu finden
select * from dbo.books
hier istdbo
ein Schema und das Inventar ist ebenfalls ein Schema. Wenn wir eine Datenbank angeben möchten, sollten wirdb_name.schema_name.table_name
verwenden.
INNER JOIN
zwischen Tabelle1 und Tabelle2?TRUNCATE TABLE Students;
TRUNCATE * FROM Students;
DROP TABLE Students;
REMOVE * FROM Students;
CREATE TABLE
-Anweisung. Welche Option stellt sicher, dass die Spalte BookISBN keine Duplikatwerte enthält, wenn sie an die leere Stelle gesetzt wird?CREATE TABLE Books ( BookID int PRIMARY KEY, BookISBN char(13) NOT NULL _____, BookTitle nvarchar(100) NOT NULL );
NO DUPLICATES
UNIQUE CONSTRAINT AK_Books_BookISBN
DUPLICATE CONSTRAINT (AK_Books_BookISBN)
CONSTRAINT AK_Books_BookISBN UNIQUE
CREATE TABLE Students ( StudentName varchar(50), Grade int );
SELECT StudentName
FROM Students
WHERE Grade = (SELECT MIN(Grade) FROM Student);
SELECT TOP(1) Grade FROM Students ORDER BY Grade;
SELECT MIN(Grade) FROM Students
SELECT MIN(Grade) FROM Students ORDER BY Grade;
Erklärung: Die Spalte Students.Grade
ist ungültig in der ORDER BY
-Klausel, weil sie sich nicht in einer Aggregatfunktion oder der GROUP BY
-Klausel befindet.
SELECT MIN(Grade) FROM Students GROUP BY Grade;
Erklärung: Die Gruppierung gibt eine Liste aller Noten gruppiert nach Note zurück. Die Aufgabenstellung möchte nur eine zurückgegebene Zeile.
UPDATE Students SET last_name='Smith', email = 'dsmith@rouxacademy.com' WHERE id='56295';
UPDATE Students SET last_name='Smith' AND email = 'dsmith@rouxacademy.com' WHERE id='56295';
UPDATE Students SET last_name='Smith' AND email = 'dsmith@rouxacademy.com' WHERE id=56295;
UPDATE Students SET last_name='Smith', email = 'dsmith@rouxacademy.com' WHERE id=56295;
DECLARE @Counter int;
SET @Counter = 1;
WHILE @Counter > 0
BEGIN
SET @Counter = @Counter +1;
END;
UPDATES Students SET team = 'Philosophy Parrots' WHERE team = 'Philosophy Pandas';
UPDATES Students SET team = 'Philosophy Parrots' WHERE team = 'Philosophy Pandas;
UPDATES Students SET team = "Philosophy Parrots" WHERE team = "Philosophy Pandas";
UPDATES Students SET team = Philosophy Parrots WHERE team = Philosophy Pandas;
SELECT 123+'123' AS Result;
SELECT
-Anweisungen zu kombinieren und Duplikate zu entfernen, welches Schlüsselwort können Sie verwenden?CREATE TABLE MyTable (MyValue int);
INSERT INTO MyTable VALUES (1);
WHILE (SELECT MyValue FROM MyTable) < 5
BEGIN
UPDATE My Table SET MyValue = MyValue + 1;
END;
SELECT MyValue AS Result FROM MyTable;
SELECT OrderID, SUM(LineTotal) AS SubTotal
FROM Sales
WHERE SUM(LineTotal) > 1000
GROUP BY OrderID
ORDER BY OrderID;
WHERE
-Klausel kann nicht mit einer Aggregatfunktion verwendet werden. WHERE
-Klausel sollte den Alias SubTotal
verwenden. CREATE TABLE Books ( BookID int PRIMARY KEY, BookTitle nvarchar(100) NOT NULL, PublisherID int NOT NULL ); CREATE TABLE Publishers ( PublisherID int PRIMARY KEY, PublisherName nvarchar(50) );
ALTER TABLE Books ADD CONSTRAINT FK Books_PublisherID FOREIGN KEY (PublisherID) REFERENCES Publishers (PublisherID) ON UPDATE SET NULL
ALTER TABLE Books ADD CONSTRAINT FK Books_PublisherID FOREIGN KEY (PublisherID) REFERENCES Publishers (PublisherID) ON DELETE CASCADE
ALTER TABLE Books ADD CONSTRAINT FK_Books_PublisherID FOREIGN KEY (PublisherID) REFERENCES Publishers (PublisherID)
ALTER TABLE Publishers ADD CONSTRAINT FK_Publishers_PublisherID FOREIGN KEY (PublisherID) REFERENCES Books (PublisherID) CASCADE DELETE
ALTER SCHEMA Products TRANSFER Warehouse.Inventory;
ALTER TABLE Warehouse.Inventory TRANSFER Products.Inventory;
ALTER TABLE Warehouse.Inventory ADD SCHEMA Products;
ALTER SCHEMA Warehouse ADD TABLE Inventory;
CREATE TABLE People ( PersonID int NOT NULL, PersonName nvarchar(50), _______ );
INDEX ON PersonID (PRIMARY KEY PK_People)
ADD NONCLUSTERED PRIMARY KEY CONSTRAINT PK_People ON PersonID
CONSTRAINT PK_People PRIMARY KEY NONCLUSTERED (PersonID)
PRIMARY KEY CONSTRAINT (PersonID) NONCLUSTERED INDEX
SELECT TOP(1) first_name, last_name FROM Students ORDER BY NEWID();
SELECT TOP(1) RAND(first_name, last_name) FROM Student;
SELECT TOP(1) first_name, last_name FROM Student;
SELECT TOP(1) first_name, last_name FROM RAND(Student);
Z:\Backups
des Servers erstellen. Welche Abfrage sollten Sie verwenden?BACKUP MyDatabase TO LOCATION = 'Z:\Backups\MyDatabase.bak';
CREATE BACKUP (DATABASE = 'MyDatabase' TO DISK = 'Z:\Backups\MyDatabase. bak');
BACKUP DATABASE MyDatabase ON 'Z:\Backups\MyDatabase.bak';
BACKUP DATABASE MyDatabase TO DISK = 'z:\Backups\MyDatabase.bak';
BEGIN TRAN myTransaction BEGIN LOG;
BEGIN TRAN myTransaction WITH LOG;
BEGIN TRAN myTransaction WITH MARK;
BEGIN TRAN WITH MARK myTransaction;
Alle Anweisungen müssen mit einem Semikolon enden.
Alle Anweisungen müssen auf einer Datentabelle arbeiten.
Alle Anweisungen müssen immer in Großbuchstaben geschrieben werden.
Alle Anweisungen müssen mehr als eine Variable enthalten.
UPDATE Students SET last_name='Smith', email = 'dsmith@rouxacademy.com' WHERE id='56295';
UPDATE Students SET last_name='Smith', email = 'dsmith@rouxacademy.com' WHERE id=56295;
UPDATE Students SET last_name='Smith' AND email = 'dsmith@rouxacademy.com' WHERE id=56295;
UPDATE Students SET last_name='Smith' AND email = 'dsmith@rouxacademy.com' WHERE id='56295';
SELECT 123+'abc' AS Result;
Konvertierung fehlgeschlagen, wenn der varchar-Wert 'abc' in den Datentyp int konvertiert wurde.
INSERT INTO Account (acct,bal) VALUES ('12345', 100);
UPDATE Account SET bal=bal+100;
BEGIN;
UPDATE Account SET bal=bal+100.
ROLLBACK;
SELECT bal FROM Account WHERE acct='12345';
);
Es wird ein Fehler angezeigt, da ROLLBACK die aktualisierte Zeile löscht
SELECT first_name, email FROM Students WHERE department = Humanities;
SELECT first_name, email FROM Students WHERE department = "Humanities";
SELECT first_name, email FROM Students WHERE department = 'Humanities';
SELECT 'first_name', 'email' FROM 'Students' WHERE 'department' = "Humanities";
DROP TABLE Products.Inventory;
USE Products; DROP TABLE Inventory;
USE Products; DELETE Inventory;
USE Products.Inventory; DROP TABLE Inventory;
Diese Anweisung wechselt zunächst zur Datenbank Products mit dem
USE
-Befehl und löscht dann die Tabelle Inventory mit demDROP TABLE
-Befehl.
] HAVING
SELECT 123+'123' AS Result;
CREATE TABLE MyNumbers (
MyDecimalColumn decimal(5,2) NOT NULL
);
INSERT INTO MyNumbers VALUES (123), (45);
SELECT * FROM MyNumbers;
Select Department, COUNT(*) FROM Students GROUP BY Department;
SELECT COUNT(*) FROM Students;
SELECT Student BY Department;
SELECT COUNT(*) FROM Students ORDER BY Department;
DROP TABLE Products.Inventory;
USE Products; DROP TABLE Inventory;
USE Products; DELETE Inventory;
USE Products.Inventory; DROP TABLE Inventory;