SQL v14 4D Developer konference 4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Obsah části SQL • Porovnání 4D a SQL • Nové příkazy SQL • Upravené příkazy SQL • Optimalizace SQL
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
SQL v14 porovnání • Definice dat - struktury • Manipulace s daty
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Definice dat • Vytvoření tabulky o 4D
- Editor struktury o SQL - CREATE TABLE
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Definice dat • Úprava tabulky o o
4D - Editor struktury SQL - ALTER TABLE --přidá Pole_2 type int do Tabulka_1
ALTER TABLE Tabulka_1 ADD Pole_2 int;
–-upraví Pole_1 z Tabulka_1 aby bylo typu int
ALTER TABLE table_1 ALTER COLUMN field_1 int;
—vymaže Pole_1 z Tabulka_1
ALTER TABLE Tabulka_1 DROP COLUMN Pole_1;
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Definice dat • Vymazání tabulky o
4D - Editor struktury !
o
přesun do koše
SQL - DROP TABLE ! !
tabulka není přesunuta do koše, natrvalo formuláře tabulky přesunuty do koše
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Manipulace s daty • Zkrácení tabulky - mazání výběru o
4D ! !
ručně - AR,QUERY… a tlačítko vymazat příkazy TRUNCATE TABLE, DELETE RECORD/SELECTION
o SQL
!
TRUNCATE TABLE , vymaže všechny záznamy
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Manipulace s daty • Výběr záznamů o
4D !!-
o
All Records, Query … ručně z formuláře
SQL -
Select * From table_1 Where ID=1 Into (:$var_ID, :$var_f1, :$var_f2);
! nevytvoří
výběr v paměti k němu potřeba vložit výběr do proměnných/ arrays
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Manipulace s daty • Vytvoření záznamů o
4D ! !
Vstup z formuláře Create / Save Record
o SQL
!
INSERT - - vytvoří záznam v tabulce table_1
INSERT INTO table_1 (field_1, Field_2) VALUES (‘abc’,123)
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Manipulace s daty • Vymazání záznamů o
4D ! !
Ručně - označit, tlačítko Vymazat, Backspace Programem
//vymaže jeden záznam v table_1
Query([table_1];[table_1]field_1=”abc”)
Delete Record([table_1]) //vymaže výběr záznamů v table_1
Query([table_1];[table_1]ID>10)
Delete Selection([table_1])
o
SQL ! DELETE WHERE —vymaže všechny záznamy v table_1 kde field_1=’abc’
DELETE FROM table_1 WHERE field_1=‘abc’;
—vymaže všechny záznamy v table_1 kde ID>10
DELETE FROM table_1 WHERE ID>10;
!
pokud neexistuje WHERE maže vše v tabulce
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Manipulace s daty • Úprava záznamů o
4D ! !
ručně z formuláře programem - mnoho, mnoho možností //Upraví jeden záznam v table_1
Query([table_1];[table_1]ID=1) [table_1]field_1:=”def” [table_1]field_2:=456
Save Record([table_1]) //Upraví výběr záznamů v table_1 pomocí smyčky For
Query([table_1];[table_1]ID<10)
For($i;1;Records in selection([table_1]))
[table_1]field_1:=Uppercase([table_1]field_1)
Save Record([table_1])
Next Record([table_1])
End for //Upraví výběr záznamů v table_1 pomocí Apply To Selection (Použít na výběr)
Query([table_1];[table_1]ID<10)
Apply to selection([table_1];[table_1]field_1:=Uppercase([table_1]field_1)
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Manipulace s daty • Úprava záznamů o
SQL !
UPDATE WHERE
Syntaxe:
//Upraví všechny záznamy v table_1 kde field_1=’”upravovanáhodnota’
UPDATE table_name SET fieldname1=’nováhodnota’ WHERE field_1=‘upravovanáhodnota’;
Užití:
//Upraví všechny záznamy v table_1 kde field_1=’”abc’
UPDATE table_1 SET field_1=’def’ WHERE field_1 = ‘abc’
!
Pokud neexistuje WHERE upraví vše
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Vztahy • 4D o Struktura,
automaticky nebo Relate one, Relate many !
• SQL Join nezasáhne do struktury 4D
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Nové příkazy SQL • CREATE [OR REPLACE] VIEW [schema_name.]view_name [(column_list)] AS select_statement[;] !
• DROP VIEW [IF EXISTS] [schema_name.]view_name[;]
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Nové příkazy SQL -v14R3 • ALTER DATABASE {ENABLE | DISABLE} {INDEXES | CONSTRAINTS | TRIGGERS}
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Upravené příkazy SQL • ALTER TABLE
• povolení/zakázání žurnálování tabulky • povolení zakázání “Autoincrement” • povolení/zakázání “Auto UUID”
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Optimalizace v14R5 • SQL SELECT DISTINCT - 80% rychleji • SELECT GROUP BY/ORDER BY - 10x v jedné tabulce o něco méně v složitější struktuře (relace)
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14
Q&A
4D Developer conference 2015 • Prague, CZ • Celebrating 30 years
Jak přejít ke 4Dv14