Jump to content

Search the Community

Showing results for tags 'mariadb'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • FiveM
    • Pomoc
    • Resources
    • Návody
    • Ostatní
  • Hlavní informace
    • Oznámení
    • Soutěže

Categories

  • Scripty
  • Mapy
  • Ostatní
  • Abandoned

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 4 results

  1. Pro hlubší či složitější práci s daty si bohužel nevystačíme pouze s SQL dotazem SELECT, některé data potřebují být při zobrazení různě spojována, nahrazována a nebo přidávány virtuální sloupce. Jedná se pouze o zobrazení, takže níže uvedené dotazy nemění žádné data, ale pouze vytváří zobrazovaný pohled na data. V tomto příkladu budeme používat SQL klíčové slova JOIN, UNION, CASE a dále si ukážeme Subquery. Vytvoříme si nové data: První tabulka: CREATE TABLE Zakaznici ( id INT PRIMARY KEY, jmeno VARCHAR(50) NOT NULL, prijmeni VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, adresa VARCHAR(200) NOT NULL, mesto VARCHAR(50) NOT NULL, stat VARCHAR(50) NOT NULL, psc VARCHAR(10) NOT NULL ); INSERT INTO Zakaznici (id, jmeno, prijmeni, email, adresa, mesto, stat, psc) VALUES (1, 'Jan', 'Novák', 'jan.novak@email.com', 'Hlavní 1', 'Praha', 'Česká republika', '100 00'), (2, 'Petr', 'Svoboda', 'petr.svoboda@email.com', 'Náměstí 2', 'Brno', 'Česká republika', '602 00'), (3, 'Kateřina', 'Veselá', 'katerina.vesela@email.com', 'Hrad 3', 'Olomouc', 'Česká republika', '779 00'), (4, 'Miroslav', 'Kučera', 'miroslav.kucera@email.com', 'Dlouhá 4', 'Liberec', 'Česká republika', '460 01'), (5, 'Lucie', 'Novotná', 'lucie.novotna@email.com', 'Hradčany 5', 'Praha', 'Česká republika', '110 00'); Druhá tabulka: CREATE TABLE Objednavky ( id INT PRIMARY KEY, zakaznik_id INT NOT NULL, produkt VARCHAR(100) NOT NULL, mnozstvi INT NOT NULL, cena DECIMAL(10, 2) NOT NULL, datum DATE NOT NULL, FOREIGN KEY (zakaznik_id) REFERENCES Zakaznici(id) ); INSERT INTO Objednavky (id, zakaznik_id, produkt, mnozstvi, cena, datum) VALUES (1, 1, 'Kávovar', 1, 2499.00, '2022-01-15'), (2, 1, 'Mixér', 2, 1799.00, '2022-01-18'), (3, 2, 'Myčka', 1, 8999.00, '2022-01-22'), (4, 3, 'Trouba', 1, 5999.00, '2022-01-25'), (5, 4, 'Klimatizace', 1, 12999.00, '2022-02-01'), (6, 5, 'Prádelní stroj', 1, 8499.00, '2022-02-05'), (7, 2, 'Lednice', 1, 7999.00, '2022-02-07'), (8, 4, 'Tablet', 2, 5699.00, '2022-02-11'); JOIN Spojení dvou tabulek pomocí sloupce, který mají obě nebo více tabulek společný. Ukázka: SELECT Objednavky.id, Zakaznici.jmeno, Zakaznici.prijmeni, Objednavky.produkt, Objednavky.mnozstvi, Objednavky.cena FROM Objednavky JOIN Zakaznici ON Objednavky.zakaznik_id = Zakaznici.id; Výstup dat: Výsledkem je tabulka obsahující sloupce id, jmeno, prijmeni, produkt, mnozstvi a cena spojená z tabulek Objednavky a Zakaznici. UNION spojení výsledků dvou a více dotazů do jednoho výstupu. Ukázka: SELECT produkt, mnozstvi, cena, zakaznik_id FROM Objednavky WHERE zakaznik_id = 1 UNION SELECT produkt, mnozstvi, cena, zakaznik_id FROM Objednavky WHERE zakaznik_id = 3; V tomto případě dotaz kombinuje výsledky dvou dotazů pomocí UNION. První SELECT vrací všechny řádky z tabulky Objednavky, kde má zákazník id 1. Druhý SELECT vrací všechny řádky z tabulky Objednavky, kde má zákazník id 3. UNION pak spojí výsledky obou dotazů do jedné tabulky a odstraní duplicity. Výsledkem dotazu bude tabulka obsahující řádky pro produkty, které si objednali zákazníci s id 1 nebo id 3. CASE použití podmínky pro generování nového sloupce za určitých podmínek dle specifikovaných podmínek. Ukázka: SELECT produkt, mnozstvi, cena, CASE WHEN cena < 5000 THEN 'levný' WHEN cena >= 5000 AND cena < 10000 THEN 'střední' ELSE 'drahý' END AS cena_kategorie FROM Objednavky; Výsledkem bude tabulka obsahující sloupce produkt, mnozstvi, cena a cena_kategorie. Poslední sloupec je vytvořen pomocí podmínky CASE, která rozděluje produkty do tří kategorií podle jejich cen. SubQUERY V některých případech pro zobrazení dat potřebujeme první část dat nějak vyfiltrovat, na toto jsou vhodné subquery, jak je jasné z názvu, tak to znamená že je jeden příkaz vnořený do druhého. Takže pro použití výsledku jednoho dotazu jako vstup do druhého. Ukázka: SELECT jmeno, prijmeni FROM Zakaznici WHERE id IN ( SELECT zakaznik_id FROM Objednavky WHERE produkt = 'Klimatizace' ); Výsledkem bude tabulka obsahující sloupce jmeno a prijmeni pro zákazníky, kteří si objednali klimatizaci. Vnitřní SELECT vrací seznam ID zákazníků, kteří si objednali klimatizaci, a vnější SELECT používá tento seznam jako podmínku pro výběr zákazníků z tabulky Zakaznici.
  2. 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
  3. V článku SQL - Základní informace jsme si řekli základní informace o SQL a ukázali si možnost založení uživatele. V tomto článku se probereme více možnostmi pro práci s uživatelem. Příkaz CREATE v jazyce SQL slouží k vytváření nových objektů v databázi, jako jsou tabulky, pohledy, indexy, procedury, funkce, uživatelé atd. Možnosti příkazu CREATE jsou specifické pro každý typ objektu, který se vytváří. Níže uvádím některé z možností příkazu CREATE pro nejčastěji používané typy objektů v databázi: CREATE TABLE: vytvoří novou tabulku v databázi CREATE VIEW: vytvoří nový pohled na tabulku nebo pohledy v databázi CREATE INDEX: vytvoří nový index na tabulku nebo pohled v databázi CREATE PROCEDURE: vytvoří novou uloženou proceduru v databázi CREATE FUNCTION: vytvoří novou uloženou funkci v databázi CREATE TRIGGER: vytvoří nový trigger (spouštěč) pro sledování událostí v databázi CREATE USER: vytvoří nového uživatele databáze CREATE DATABASE: vytvoří novou databázi Každý z těchto příkazů má mnoho dalších možností a specifických syntaxí, které se používají pro vytváření konkrétních objektů v databázi. Pro vytvoření uživatele tedy budeme potřebovat CREATE USER CREATE USER user_name IDENTIFIED BY 'password'; Tento příkaz vytváří nového uživatele a přiděluje mu heslo pro přihlášení. user_name je jméno uživatele a password je heslo. Příkaz CREATE USER vytváří uživatele bez jakýchkoli oprávnění. Klíčové slovo IDENTIFIED BY slouží k přidělení hesla Když budeme chtít takto vytvořeného uživatele přiřadit k nějaké databázi a nastavit mu oprávnění, budeme potřebovat příkaz GRANT Příkaz GRANT slouží k udělení přístupových práv uživatelům v databázi. Mezi hlavní možnosti patří: GRANT SELECT - umožňuje uživateli číst data v tabulkách GRANT INSERT - umožňuje uživateli vkládat data do tabulek GRANT UPDATE - umožňuje uživateli aktualizovat data v tabulkách GRANT DELETE - umožňuje uživateli odstraňovat data z tabulek GRANT CREATE - umožňuje uživateli vytvářet nové databáze, tabulky nebo indexy GRANT DROP - umožňuje uživateli odstraňovat databáze, tabulky nebo indexy GRANT ALTER - umožňuje uživateli měnit strukturu tabulek GRANT ALL PRIVILEGES - umožňuje uživateli přístup ke všem funkcím databáze GRANT EXECUTE - umožňuje uživateli spouštět uložené procedury nebo funkce Při použití příkazu GRANT může být uvedeno i specifikum, jako je určení konkrétní tabulky nebo databáze, ke které se přístupová práva vztahují, a také specifikace konkrétního uživatele, kterým se práva přidělují Například GRANT SELECT, INSERT, UPDATE ON database_name.* TO user_name@'localhost' IDENTIFIED BY 'password'; Pozor, localhost v příkazu přiděluje oprávnění uživateli pro připojení pouze z lokálního serveru, ale pokud chcete umožnit připojení i z jiných míst, můžete změnit localhost za '%'. Použití localhost je vhodné když chcete mít jistotu v zabezpečení jako další faktor před manipulaci s daty cizí osobou. Nejčastěji se používá přímo pro aplikace která je spuštěna na stejném serveru jako je databáze. Tímto způsobem si můžete u uživatele nastavit oprávnění. Nyní ale potřebujeme změnu oprávnění. Přidělení nového oprávnění použijeme opět příkaz GRANT. V opačném případě je potreba příkaz REVOKE Mezi základní možnosti patří: REVOKE ALL: Odebere všechna oprávnění uživateli pro daný objekt. REVOKE [název oprávnění]: Odebere konkrétní oprávnění uživateli pro daný objekt. REVOKE [název oprávnění] ON [název objektu] FROM [název uživatele]: Odebere konkrétní oprávnění uživateli pro daný objekt. Například: REVOKE SELECT ON database_name.table_name FROM 'user_name'@'%'; A jako poslední práci s uživatelem změníme uživatele heslo. Pro změnu hesla existuje v SQL příkaz ALTER. Příkaz ALTER v SQL slouží k úpravě již existujících objektů v databázi, jako jsou tabulky, pohledy, funkce, procedury, uživatelé atd. Možnosti příkazu ALTER se liší v závislosti na objektu, který chcete upravit. Zde je několik příkladů: ALTER TABLE: slouží ke změně struktury tabulky, např. přidání/odebrání sloupců, změna datového typu sloupců nebo změna primárního klíče. ALTER VIEW: slouží k úpravě definice pohledu. ALTER FUNCTION nebo ALTER PROCEDURE: slouží ke změně těla funkce nebo procedury. ALTER USER: slouží ke změně vlastností uživatele, jako je například změna hesla nebo limitu připojení. Každý typ objektu má své vlastní specifické možnosti úpravy pomocí příkazu ALTER. Pro změnu hesla použijeme ALTER USER Například: ALTER USER 'user_name'@'%' IDENTIFIED BY 'user_new_password';
  4. Teorie: SQL (Structured Query Language) je standardní programovací jazyk pro ukládání, manipulaci a vyhledávání dat v relačních databázích. SQL znamená strukturovaný dotazovací jazyk. SQL byl vyvinut v 70. letech společností IBM Relační databáze Existuje mnoho typů databázových serverů,nejčastěji používané: MySQL/MariaDB: Jedná se o open-source relační databázový server. Je to velmi populární volba pro webové aplikace, protože je snadno použitelný a podporuje mnoho programovacích jazyků. Microsoft SQL Server: Tento relační databázový server je vyvinutý společností Microsoft a je často používán v podnikových prostředích. Podporuje mnoho funkcí pro zpracování dat, jako jsou OLAP a data mining. Oracle Database: Je to jeden z nejvýkonnějších relačních databázových serverů a je často používán v podnikových prostředích. Podporuje mnoho funkcí, jako jsou replikace dat, zálohování a obnovení a mnoho dalších. PostgreSQL: Open-source relační databázový server s vysokou úrovní funkčnosti a rozšířenosti. Je často používán pro webové aplikace, ale také pro podnikové aplikace a GIS. MongoDB: NoSQL databázový server, který ukládá data ve formátu JSON a podporuje škálovatelnost a vysokou dostupnost. Je často používán pro aplikace, které pracují s nestrukturovanými daty, jako jsou aplikace sociálních médií nebo mobilní aplikace. Pomocí SQL můžeme provádět určité operace na existující databázi a také můžeme použít tento jazyk k vytvoření databáze. SQL používá určité příkazy, jako jsou Create, Drop, Insert atd., k provedení požadovaných úkolů. Tyto příkazy SQL jsou hlavně rozděleny do pěti kategorií jako: DDL – Data Definition Language - definuje strukturu databáze DQL – Data Query Language - slouží k získávání dat z databáze DML – Data Manipulation Language - se používá ke změně dat v databázi DCL – Data Control Language - řídí přístup k datům v databázi TCL – Transaction Control Language - řídí transakce v databázi Příklad: Pro chod FiveM vám stačí pouze toto: DDL - CREATE, ALTER DML - INSERT, UPDATE DQL - SELECT Příklad na vytvoření takového uživatele: CREATE USER 'fivem_server_user'@'%' IDENTIFIED BY 'password'; GRANT CREATE, ALTER ON fivem_server_database.* TO 'fivem_server_user'@'%'; GRANT SELECT, INSERT, UPDATE ON fivem_server_database.* TO 'fivem_server_user'@'%'; REVOKE ALTER USER ON *.* FROM 'fivem_server_user'@'%'; Příkazy jsou ukázkové pro vytvoření uživatele "fivem_server_user" a jeho hesla "password" a musí již existovat databáze "fivem_server_database" Příklad pro vytvoření databáze: CREATE DATABASE fivem_server_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; Pozor! Databáze musí být vytvořena předtím než mají být nastaveny oprávnění pro uživatele. Takto vytvořený uživatel a databáze vám zajistí základní zabezpečení v práci s daty, uživatel nemůže vytvářet jiné uživatele a databáze a změnit si heslo.
×
×
  • Create New...