Udostępnij za pomocą


Lekcja 1. Tworzenie obiektów bazy danych i wykonywanie względem ich zapytań

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics 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.

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.

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.

  1. W oknie Edytor zapytań wpisz , ale nie wykonaj następującego kodu:

    CREATE DATABASE TestData
    GO
    
  2. Użyj wskaźnika, aby wybrać wyrazy CREATE DATABASE, a następnie naciśnij F1. Artykuł CREATE DATABASE powinien zostać otwarty. Za pomocą tej techniki można znaleźć pełną składnię instrukcji CREATE DATABASE oraz innych używanych w tym samouczku.

  3. 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 ServerAzure SQL DatabaseAzure Synapse AnalyticsAnalytics 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

  1. Wykonaj następującą instrukcję, aby wstawić wiersz do Products tabeli utworzonej w poprzednim zadaniu.

    -- Standard syntax
    INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription)
        VALUES (1, 'Clamp', 12.48, 'Workbench clamp')
    GO
    

    Jeś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 Product tabela 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;
    GO
    

    Po obcięciu tabeli powtórz polecenie INSERT w tym kroku.

  2. Poniższa instrukcja pokazuje, jak można zmienić kolejność, w jakiej parametry są udostępniane przez przełączenie położenia ProductID elementu i ProductName na 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')
    GO
    
  3. Poniż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. NULL parametr jest określony dla kolumny Price , 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.')
    GO
    
  4. Nazwa schematu jest opcjonalna, o ile uzyskujesz dostęp do tabeli i zmieniasz tabelę w domyślnym schemacie. Ponieważ kolumna ProductDescription akceptuje wartości null i nie podano żadnej wartości, nazwę i wartość kolumny ProductDescription moż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

  1. Wpisz i wykonaj następujące instrukcje, aby odczytać dane w Products tabeli.

    -- The basic syntax for reading data from a single table
    SELECT ProductID, ProductName, Price, ProductDescription
        FROM dbo.Products
    GO
    
  2. Moż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
    GO
    
  3. Moż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
    GO
    
  4. Uż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
    GO
    
  5. Moż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 kluczowego AS .

    -- 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:

funkcje ciągów

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