Jump to content

SQL - Práce s daty 1


Samnick

Recommended Posts

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_name
WHERE condition
GROUP BY column1
HAVING condition
ORDER BY column1 ASC/DESC
LIMIT 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

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...