Samnick Posted February 21, 2023 Share Posted February 21, 2023 V článku SQL - Práce s uživatelem jsme si řekli základní informace o práci s uživatelem a ukázali si možnost založení uživatele a změnu jeho práv. V tomto článku si ukážeme základní operace s daty. Vytvoříme si v naší testovací databázi dvě tabulky. Na vytvoření použijeme příkaz CREATE s možností TABLE CREATE TABLE Customers ( CustomerID INT NOT NULL PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), Address VARCHAR(100), City VARCHAR(50), Country VARCHAR(50) ); A druhá tabulka CREATE TABLE Orders ( OrderID INT NOT NULL PRIMARY KEY, CustomerID INT NOT NULL, OrderDate DATE, TotalAmount DECIMAL(10, 2), FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ); Takto si vytvoříme dvě tabulky s názvem customers a orders. První tabulka obsahuje sloupce: CustomerID,FirstName,LastName,Address,City,Country Hint: CustomerID INT NOT NULL PRIMARY KEY definuje sloupec CustomerID v tabulce Customers. Popisuje následující informace o sloupci: INT určuje datový typ sloupce jako celočíselný. NOT NULL určuje, že sloupec nemůže obsahovat hodnoty NULL - nesmí být prázdný. PRIMARY KEY určuje, že tento sloupec je primárním klíčem této tabulky. Primární klíč slouží k jednoznačné identifikaci každého záznamu v tabulce. Každá tabulka musí mít právě jeden primární klíč a musí být definován pomocí jednoho nebo více sloupců. Takto vytvořené tabulky jsou ale prázdné, potřebujeme tedy nějaké data do tabulek vložit. K vložení dat použijeme příkaz INSERT INSERT INTO Customers (CustomerID, FirstName, LastName, Address, City, Country) VALUES (1, 'Pepa', 'Novak', '123 Main St', 'Anytown', 'USA'), (2, 'Jane', 'Smith', '456 Oak Ave', 'Othertown', 'USA'), (3, 'Bob', 'Johnson', '789 Elm St', 'Somewhere', 'CR'); Druhá tabulka INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount) VALUES (1, 1, '2022-02-15', 100.00), (2, 1, '2022-02-17', 50.00), (3, 2, '2022-02-18', 200.00), (4, 3, '2022-02-20', 75.00); Tyto dva insert příkazy vkládají více řádků, příklad pouze pro jeden řádek: INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); Možnost je vkládání dat i z jiné tabulky do jiné tabulky, tomu se říká poddotaz nebo vnořený dotaz: INSERT INTO table_name (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM another_table WHERE condition; Práce s daty - SELECT Struktura příkazu SELECT, některé jsou volitelné a mohou být vynechány/nepoužity SELECT column1, column2, column3, ...FROM table_nameWHERE conditionGROUP BY column1HAVING conditionORDER BY column1 ASC/DESCLIMIT number; Význam: SELECT specifikuje seznam sloupců, které chceme získat z tabulky. FROM specifikuje jméno tabulky, ze které chceme data získat. WHERE specifikuje podmínky pro výběr řádků. GROUP BY specifikuje sloupce, podle kterých se řádky seskupují. HAVING specifikuje podmínky pro výběr skupin. ORDER BY specifikuje sloupec nebo sloupce, podle kterých se výsledky řadí a směr řazení. LIMIT specifikuje maximální počet řádků, které chceme získat. Vyber všechny sloupce z tabulky SELECT * FROM Customers; Vyber pouze zvolené sloupce z tabulky SELECT CustomerID, FirstName, Country, ... FROM Customers; Vyber zákazníků, kteří mají bydliště v USA SELECT * FROM Customers WHERE Country = 'USA'; Seřaď zákazníky podle abecedy jejich křestního jména (Nedojde ke změně dat, pouze zobrazovaného výstupu) SELECT * FROM Customers ORDER BY FirstName ASC; V další části si ukážeme změnu dat v tabulce, UPDATE, DELETE, ALTER 3 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.