Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Analytics Platform System (PDW)
Baza danych SQL w usłudze Microsoft Fabric
Note
Ścieżka szkoleniowa Wprowadzenie do wykonywania zapytań za pomocą języka Transact-SQL zawiera bardziej szczegółową zawartość wraz z praktycznymi przykładami.
W tej lekcji pokazano, jak utworzyć bazę danych, utworzyć tabelę w bazie danych, a następnie uzyskać dostęp do danych i zmienić je w tabeli. Ponieważ ta lekcja stanowi wprowadzenie do korzystania z języka Transact-SQL, nie używa ani nie opisuje wielu opcji dostępnych dla tych instrukcji.
Instrukcje Transact-SQL można napisać i przesłać do silnika bazy danych w następujący sposób:
Za pomocą programu SQL Server Management Studio. W tym samouczku założono, że używasz programu Management Studio, ale możesz również użyć programu Management Studio Express, który jest dostępny jako bezpłatny plik do pobrania z Centrum pobierania Microsoft.
Za pomocą narzędzia sqlcmd .
Łącząc się z aplikacją, którą sam utworzysz.
Kod jest wykonywany w aparacie bazy danych w ten sam sposób i z tymi samymi uprawnieniami, niezależnie od trybu przesłania zapytań kodu.
Aby uruchomić polecenia Transact-SQL w Management Studio, otwórz Management Studio i połącz się z aparatem bazy danych SQL Server.
Prerequisites
Do ukończenia tego samouczka potrzebujesz programu SQL Server Management Studio i dostępu do instancji serwera SQL.
- Zainstaluj program SQL Server Management Studio.
Jeśli nie masz wystąpienia programu SQL Server, utwórz je. Aby go utworzyć, wybierz platformę z poniższych linków. Jeśli wybierzesz opcję Uwierzytelnianie SQL, użyj poświadczeń logowania programu SQL Server.
- Windows: pobierz program SQL Server 2022 Developer Edition.
- Linux: Szybki start: uruchamianie obrazów kontenerów systemu Linux programu SQL Server przy użyciu platformy Docker.
Tworzenie bazy danych
Podobnie jak wiele instrukcji Transact-SQL instrukcja CREATE DATABASE ma wymagany parametr: nazwę bazy danych.
CREATE DATABASE Ma również wiele opcjonalnych parametrów, takich jak lokalizacja dysku, w której chcesz umieścić pliki bazy danych. Podczas wykonywania CREATE DATABASE bez parametrów opcjonalnych program SQL Server używa wartości domyślnych dla wielu z tych parametrów.
W oknie Edytor zapytań wpisz , ale nie wykonaj następującego kodu:
CREATE DATABASE TestData GOUżyj wskaźnika, aby wybrać wyrazy
CREATE DATABASE, a następnie naciśnij F1. ArtykułCREATE DATABASEpowinien zostać otwarty. Za pomocą tej techniki można znaleźć pełną składnię instrukcjiCREATE DATABASEoraz innych używanych w tym samouczku.W Edytorze zapytań naciśnij F5 , aby wykonać instrukcję i utworzyć bazę danych o nazwie
TestData.
Podczas tworzenia bazy danych program SQL Server tworzy kopię model bazy danych i zmienia nazwę kopii na nazwę bazy danych. Ta operacja powinna potrwać tylko kilka sekund, chyba że określisz duży rozmiar początkowy bazy danych jako opcjonalny parametr.
Note
Słowo kluczowe GO oddziela instrukcje, gdy więcej niż jedna instrukcja jest przesyłana w jednej partii.
GO jest opcjonalny, gdy partia zawiera tylko jedną instrukcję.
Tworzenie tabeli
Dotyczy:programu SQL Server
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
Aby utworzyć tabelę, musisz podać nazwę tabeli oraz nazwy i typy danych każdej kolumny w tabeli. Dobrym rozwiązaniem jest również wskazanie, czy wartości null są dozwolone w każdej kolumnie. Aby utworzyć tabelę, musisz mieć CREATE TABLE uprawnienie i ALTER SCHEMA uprawnienie do schematu, który będzie zawierać tabelę. Stała rola bazy danych db_ddladmin ma te uprawnienia.
Większość tabel ma klucz podstawowy składający się z co najmniej jednej kolumny tabeli. Klucz podstawowy jest zawsze unikatowy. Aparat bazy danych wymusza ograniczenie, że nie można powtórzyć żadnej wartości klucza podstawowego w tabeli.
Aby zapoznać się z listą typów danych i linkami opisów każdego z nich, zobacz Typy danych.
Note
Aparat bazy danych może być zainstalowany jako rozróżniający wielkość liter lub nierozróżniający wielkości liter. Jeśli aparat bazy danych jest zainstalowany jako rozróżniający wielkość liter, nazwy obiektów muszą zawsze mieć tę samą wielkość liter. Na przykład tabela o nazwie OrderData jest inną tabelą od tabeli o nazwie ORDERDATA. Jeśli silnik bazy danych jest zainstalowany jako niewrażliwy na rozróżnianie wielkości liter, te dwie nazwy tabel są traktowane jako ta sama tabela, a ta nazwa może być użyta tylko raz.
Przełączanie połączenia edytora zapytań z bazą danych TestData
W oknie Edytor zapytań wpisz i wykonaj następujący kod, aby zmienić połączenie z bazą TestData danych.
USE TestData
GO
Tworzenie tabeli
W oknie Edytor zapytań wpisz i wykonaj następujący kod, aby utworzyć tabelę o nazwie Products. Kolumny w tabeli mają nazwy ProductID, ProductName, Pricei ProductDescription. Kolumna ProductID jest kluczem podstawowym tabeli.
int, varchar(25), moneyi varchar(max) są wszystkimi typami danych. Tylko kolumny Price i ProductionDescription mogą nie zawierać danych, gdy wiersz jest wstawiany lub zmieniany. Ta instrukcja zawiera opcjonalny element (dbo.) nazywany schematem. Schemat jest obiektem bazy danych, który jest właścicielem tabeli. Jeśli jesteś administratorem, dbo jest schematem domyślnym.
dbo oznacza właściciela bazy danych.
CREATE TABLE dbo.Products
(ProductID int PRIMARY KEY NOT NULL,
ProductName varchar(25) NOT NULL,
Price money NULL,
ProductDescription varchar(max) NULL)
GO
Wstawianie i aktualizowanie danych w tabeli
Po utworzeniu Products tabeli możesz wstawić dane do tabeli przy użyciu instrukcji INSERT . Po wstawieniu danych zmienisz zawartość wiersza przy użyciu instrukcji UPDATE . Należy użyć WHERE klauzuli instrukcji UPDATE , aby ograniczyć aktualizację do jednego wiersza. Cztery instrukcje wprowadzają następujące dane.
| ProductID | ProductName | Price | ProductDescription |
|---|---|---|---|
| 1 | Clamp | 12.48 | Zacisk aplikacji Workbench |
| 50 | Screwdriver | 3.17 | Płaska głowa |
| 75 | Pasek opon | Narzędzie do zmieniania opon. | |
| 3000 | Nawias 3 mm | 0.52 |
Podstawowa składnia to: INSERT, nazwa tabeli, lista kolumn, , a następnie lista wartości do VALUESwstawienia. Dwa łączniki przed wierszem wskazują, że wiersz jest komentarzem, a tekst jest ignorowany przez kompilator. W tym przypadku komentarz opisuje dopuszczalną odmianę składni.
Wstawianie danych do tabeli
Wykonaj następującą instrukcję, aby wstawić wiersz do
Productstabeli utworzonej w poprzednim zadaniu.-- Standard syntax INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GOJeśli wstawianie zakończy się pomyślnie, przejdź do następnego kroku.
Jeśli wstawianie nie powiedzie się, może to być spowodowane tym, że
Producttabela zawiera już wiersz z tym identyfikatorem produktu. Aby kontynuować, usuń wszystkie wiersze w tabeli i powtórz poprzedni krok. FUNKCJA TRUNCATE TABLE usuwa wszystkie wiersze w tabeli.Uruchom następujące polecenie, aby usunąć wszystkie wiersze w tabeli:
TRUNCATE TABLE TestData.dbo.Products; GOPo obcięciu tabeli powtórz polecenie
INSERTw tym kroku.Poniższa instrukcja pokazuje, jak można zmienić kolejność, w jakiej parametry są udostępniane przez przełączenie położenia
ProductIDelementu iProductNamena liście pól (w nawiasach) i na liście wartości.-- Changing the order of the columns INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription) VALUES ('Screwdriver', 50, 3.17, 'Flat head') GOPoniższa instrukcja pokazuje, że nazwy kolumn są opcjonalne, o ile wartości są wymienione w prawidłowej kolejności. Ta składnia jest powszechna, ale nie jest zalecana, ponieważ może być trudniej innym osobom zrozumieć kod.
NULLparametr jest określony dla kolumnyPrice, ponieważ cena tego produktu nie jest jeszcze znana.-- Skipping the column list, but keeping the values in order INSERT dbo.Products VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.') GONazwa schematu jest opcjonalna, o ile uzyskujesz dostęp do tabeli i zmieniasz tabelę w domyślnym schemacie. Ponieważ kolumna
ProductDescriptionakceptuje wartości null i nie podano żadnej wartości, nazwę i wartość kolumnyProductDescriptionmożna całkowicie pominąć w instrukcji.-- Dropping the optional dbo and dropping the ProductDescription column INSERT Products (ProductID, ProductName, Price) VALUES (3000, '3 mm Bracket', 0.52) GO
Aktualizowanie tabeli produktów
Wpisz i wykonaj następującą UPDATE instrukcję, aby zmienić ProductName dla drugiego produktu, z Screwdriver na Flat Head Screwdriver.
UPDATE dbo.Products
SET ProductName = 'Flat Head Screwdriver'
WHERE ProductID = 50
GO
Odczytywanie danych z tabeli
Użyj instrukcji SELECT , aby odczytać dane w tabeli. Instrukcja SELECT jest jedną z najważniejszych instrukcji Transact-SQL i istnieje wiele odmian składni. Na potrzeby tego samouczka będziesz pracować z pięcioma wersjami podstawowymi.
Odczytaj dane w tabeli
Wpisz i wykonaj następujące instrukcje, aby odczytać dane w
Productstabeli.-- The basic syntax for reading data from a single table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products GOMożesz użyć gwiazdki (
*), aby wybrać wszystkie kolumny w tabeli. Gwiazdka dotyczy zapytań ad hoc. W kodzie trwałym podaj listę kolumn, aby instrukcja zwracała przewidywane kolumny, nawet jeśli nowa kolumna zostanie dodana do tabeli później.-- Returns all columns in the table -- Does not use the optional schema, dbo SELECT * FROM Products GOMożesz pominąć kolumny, których nie chcesz zwracać. Kolumny są zwracane w kolejności, w której są wyświetlane.
-- Returns only two of the columns from the table SELECT ProductName, Price FROM dbo.Products GOUżyj klauzuli
WHERE, aby ograniczyć wiersze zwracane do użytkownika.-- Returns only two of the records in the table SELECT ProductID, ProductName, Price, ProductDescription FROM dbo.Products WHERE ProductID < 60 GOMożesz pracować z wartościami w kolumnach, gdy są zwracane. Poniższy przykład wykonuje operację matematyczną w kolumnie
Price. Kolumny, które zostały zmienione w ten sposób, nie mają nazwy, chyba że zostanie podana przy użyciu słowa kluczowegoAS.-- Returns ProductName and the Price including a 7% tax -- Provides the name CustomerPays for the calculated column SELECT ProductName, Price * 1.07 AS CustomerPays FROM dbo.Products GO
Przydatne funkcje w instrukcji SELECT
Aby uzyskać informacje o niektórych funkcjach, których można użyć do pracy z danymi w SELECT instrukcjach, zobacz następujące artykuły:
Tworzenie widoków i procedur składowanych
Widok jest instrukcją składowaną SELECT , a procedura składowana jest co najmniej jedną instrukcją Transact-SQL wykonywaną jako partia.
Widoki są odpytywane, takie jak tabele i nie akceptują parametrów. Procedury składowane są bardziej złożone niż widoki. Procedury składowane mogą zawierać zarówno parametry wejściowe, jak i wyjściowe, i mogą zawierać instrukcje służące do kontrolowania przepływu kodu, takiego jak IF instrukcje i WHILE . Dobrym rozwiązaniem programistycznym jest użycie procedur składowanych dla wszystkich powtarzających się akcji w bazie danych.
W tym przykładzie użyjesz widoku CREATE , aby utworzyć widok, który wybiera tylko dwie kolumny w Products tabeli. Następnie należy CREATE PROCEDURE utworzyć procedurę składowaną, która akceptuje parametr price i zwraca tylko te produkty, które kosztują mniej niż określona wartość parametru.
Utwórz widok
Wykonaj następującą instrukcję, aby utworzyć widok, który wykonuje instrukcję select, i zwraca nazwy i ceny naszych produktów użytkownikowi.
CREATE VIEW vw_Names
AS
SELECT ProductName, Price FROM Products;
GO
Testowanie widoku
Widoki są traktowane podobnie jak tabele. Użyj instrukcji SELECT , aby uzyskać dostęp do widoku.
SELECT * FROM vw_Names;
GO
Utwórz procedurę składowaną
Poniższa instrukcja tworzy nazwę pr_Namesprocedury składowanej , akceptuje parametr wejściowy o nazwie @VarPrice typu moneydanych . Procedura składowana wyświetla instrukcję Products less than połączoną z parametrem wejściowym money, który jest zmieniany z varchar(10) typu danych na typ danych znakowych. Następnie procedura wykonuje instrukcję SELECT w widoku, przekazując parametr wejściowy w ramach klauzuli WHERE . Spowoduje to zwrócenie wszystkich produktów, które kosztują mniej niż wartość parametru wejściowego.
CREATE PROCEDURE pr_Names @VarPrice money
AS
BEGIN
-- The print statement returns text to the user
PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));
-- A second statement starts here
SELECT ProductName, Price FROM vw_Names
WHERE Price < @VarPrice;
END
GO
Przetestuj procedurę składowaną
Aby przetestować procedurę składowaną, wpisz i wykonaj następujące zapytanie. Procedura powinna zwrócić nazwy dwóch produktów wprowadzonych do tabeli Products w lekcji 1 z ceną mniejszą niż 10.00.
EXECUTE pr_Names 10.00;
GO