Rychlé dokončení Windows fungují(Windows NT/2000/XP) Windows NT verze 3.1 a 3.5 umožňovaly zavřít všechny procesy do 20 sekund. V systému Windows NT 3.51 a vyšším je možné určit dobu, po kterou má systém trvat, než se vypne. Chcete-li to provést, musíte opravit klíč
Z knihy Práce s databázemi pomocí Visual Basic® .NET autor McManus Geoffrey PKAPITOLA 3 Představení SQL Server 2000 V minulosti mnoho programátorů začalo vytvářet databázové aplikace pomocí vizuální jazyk Základní a databáze Microsoft Access s jádrem Jet. Jakmile se databáze rozrostla na několik tisíc záznamů nebo k jejím službám přistupovalo několik
Z knihy Windows Script Host pro Windows 2000/XP autor Popov Andrej VladimirovičPožadavky na instalaci SQL Server 2000 Chcete-li nainstalovat SQL Server 2000, potřebujete počítač s procesorem Pentium (nebo kompatibilním) s frekvencí alespoň 166 MHz, místem na pevném disku od 95 do 270 MB (270 MB pro typickou instalaci a 44 MB pro Desktop Engine), disková jednotka
Z knihy Co není napsáno v knihách Delphi autor Grigoriev A. B.Instalace SQL Server 2000 Po výběru počítače s požadovanou konfigurací můžete přistoupit k instalaci. Celý proces nastavení SQL Server 2000 je velmi jednoduchý, až na následující: vydrží poměrně dlouho; během procesu instalace se zpočátku hodně ptá
Z autorovy příručky PHPZáklady SQL Server 2000 Po instalaci a spuštění SQL Serveru musíte provést následující kroky, než budete moci načíst nebo uložit data: vytvoření jedné nebo více databází; vytvářet tabulky v databázi; vytvářet pohledy a ukládat
Z knihy XSLT autor Holzner ŠtěpánFunkce pro práci s poli A2.17 ukazuje funkce, pomocí kterých můžete vytvářet nová pole a získat informace o existujících.Tabulka A2.17. Funkce pole Funkce Popis Array(arglist) Vrací hodnotu Variant, která je
Z knihy o Linuxu: Kompletní průvodce autor Kolisničenko Denis Nikolajevič3.3. Jemnosti práce s řetězci V této části se podíváme na některé jemnosti práce s řetězci, které nám umožňují lépe pochopit, jaký kód kompilátor generuje pro některé zdánlivě elementární akce. Ne všechny zde uvedené příklady fungují jinak než
Z knihy The Art of Shell Scripting Programming od Coopera Mendela Z knihy Jazyk C – průvodce pro začátečníky autor Prata StephenFunkce XPath pro práci s řetězci V XSLT jsou k dispozici následující funkce XPath pro práci s řetězci: concat(řetězec řetězec1, řetězec řetězec2,...). Vrátí zřetězení (sjednocení) všech řetězců, které mu byly předány; obsahuje(řetězec řetězec1, řetězec řetězec2). Vrátí hodnotu true, pokud první řádek obsahuje (obsahuje) druhý
Z knihy Linux a UNIX: programování shellu. Příručka pro vývojáře. autor Tainsley David23.2.2. Paměťové funkce Paměťové funkce Glib vykonávají stejné funkce jako jejich odpovídající funkce C. Zde jsou jejich prototypy: gpointer g_malloc(velikost gulong);gpointer g_realloc(gpointer mem, velikost gulong);void g_free(gpointer
Z knihy Popis jazyka PascalABC.NET autor Tým RuBoard Z autorovy knihy13. Řetězce znaků a funkce na řetězcích ZNAKOVÉ ŘETĚZCE INICIALIZACE ZNAKOVÝCH ŘETĚZCŮ
Z autorovy knihyFUNKCE ŘETĚZCŮ Většina knihoven C poskytuje funkce, které pracují s řetězci. Podívejme se na čtyři nejužitečnější a nejběžnější: strlen(), strcat(), strcmp() a strcpy(). Již jsme použili funkci strlen(), která zjistí délku řetězce.
Z autorovy knihy Z autorovy knihyPodprogramy pro práci se znaky a řetězci function Chr(a: byte): char; Převede kód na funkci znaků zakódovanou ve Windows ChrUnicode(a: word): char; Převede kód na znakovou funkci Unicode OrdUnicode(a: char): slovo; Převede znak na funkci kódu Unicode UpperCase(ch: char): char;
Z autorovy knihyTyp barevných funkcí barvy Barva je synonymem pro System.Drawing.Color. funkce RGB(r,g,b: byte): Barva; Vrátí barvu, která obsahuje červenou (r), zelenou (g) a modrou (b) složku (r,g a b – v rozsahu od 0 do 255) funkce ARGB(a,r,g,b: byte): Barva ; Vrátí barvu, která obsahuje
Pokračujeme ve studiu jazyka SQL dotazy a dnes si budeme povídat tětiva SQL funkce . Podíváme se na základní a běžně používané funkce řetězce, jako jsou: SNÍŽIT, LTRIM, VYMĚNIT a další, vše zvážíme samozřejmě na příkladech.
VYBERTE jméno || příjmení JAKO FIO Z tabulky
Nebo oddělit mezerou enter
VYBERTE jméno || " " || příjmení JAKO FIO Z tabulkytěch. dva svislé pruhy spojují dva sloupce do jednoho a abych je oddělil mezerou, vložil jsem mezi ně mezeru ( lze použít jakýkoli znak, například pomlčku nebo dvojtečku) v apostrofech a v kombinaci se dvěma svislé pruhy (Transact-SQL používá + místo dvou svislých pruhů).
funkce INITCAP
Následuje velmi užitečná funkce, INITCAP- která vrací hodnotu v řetězci, kterým každé slovo začíná velké písmeno, ale pokračuje v malém. To je nutné, pokud nedodržujete pravidla pro vyplňování jednoho nebo druhého sloupce a pro zobrazení celé věci pěkný výhled můžete tuto funkci použít, například ve vaší tabulce jsou ve sloupci jména záznamy v následujícím tvaru: IVAN Ivanov nebo Peter Petrov, tuto funkci používáte.
VYBERTE INITCAP (jméno) JAKO FIO Z tabulky
A dostanete to takhle.
Funkce UPPER
Podobná funkce, pouze vrací všechna velká písmena, je HORNÍ.
SELECT UPPER (name) AS FIO FROM table
- jméno – název sloupce;
- 20 - počet znaků ( délka pole);
- „-“ je znak, který má být doplněn na požadovaný počet znaků.
funkce RPAD
Pojďme se podívat na inverzní funkci. RPAD- akce a syntaxe je stejná jako u LPAD, pouze znaky vpravo jsou doplněny ( v LPAD vlevo).
SELECT RPAD (jméno, 20, "-") JAKO název FROM tabulky
Ivan —————- |
Sergey----- |
Funkce LTRIM
Dále přichází v některých případech také užitečná funkce, LTRIM- tato funkce odstraní znaky zcela vlevo, které určíte. Například máte v databázi sloupec „město“, ve kterém je město označeno jako „Moskva“ a existují také města, která jsou označena jednoduše jako „Moskva“. Ale musíte zobrazit zprávu pouze ve tvaru "Moskva" bez "města", ale jak to udělat, pokud existují takové a takové? Jen specifikujete druh vzoru "g." a pokud znaky zcela vlevo začínají na „r“, pak tyto znaky jednoduše nebudou zobrazeny.
VYBERTE LTRIM (město) JAKO gorod Z tabulky
Tato funkce se podívá na znaky vlevo, pokud nejsou znaky podle vzoru na začátku řádku, tak vrátí původní hodnotu buňky a pokud jsou, smaže je.
Funkce RTRIM
Také se hned podíváme na inverzní funkci. RTRIM– stejně jako LTRIM se hledají pouze znaky vpravo.
Poznámka! V Transact-SQL funkce RTRIM a LTRIM odstraňují mezery zprava a zleva.
Funkce REPLACE
Nyní zvažte takovou zajímavou funkci jako NAHRADIT- vrací řetězec, ve kterém jsou všechny shody znaků nahrazeny vašimi znaky, které určíte. K čemu se dá použít, například máte v databázi sloupce, ve kterých jsou nějaké oddělovací znaky, řekněme "/". Například Ivan / Ivanov, a chcete zobrazit Ivan-Ivanov, pak napište
VYBERTE REPLACE (název, "/", "-") Z tabulky
a budete mít náhradu postavy.
Tato funkce nahradí pouze úplnou shodu znaků, pokud například zadáte „-“, tj. tři pomlčky, bude hledat pouze tři pomlčky a nenahradí každou jednotlivou pomlčku, na rozdíl od následující funkce.
funkce TRANSLATE
PŘELOŽIT je řetězcová funkce, která nahradí všechny znaky v řetězci znaky, které určíte. Podle názvu funkce můžete odhadnout, že se jedná o full line feed. Rozdíl mezi touto funkcí a REPLACE je v tom, že nahradí každý vámi zadaný znak, tzn. máte tři znaky, řekněme abc a pomocí TRANSLATE jej můžete nahradit abc, takže máte a=a, b=b, c=c a tímto principem budou nahrazeny všechny shody znaků. A pokud jste nahradili NAHRADIT, pak jste hledali pouze úplnou shodu znaků abc umístěných v řadě.
Funkce SUBSTR
SUBSTR – danou funkci, vrátí pouze rozsah znaků, který určíte. Jinými slovy, řekněme řetězec 10 znaků, ale nepotřebujete všech deset, ale řekněme, že potřebujete pouze 3-8 ( třetí až osmý). Pomocí této funkce to můžete snadno provést. Například máte v databázi nějaký identifikátor pevné délky (jako: AA-BB-55-66-CC) a každá kombinace znaků něco znamená. A v jednu krásnou chvíli vám bylo řečeno, abyste zobrazili pouze 2 a 3 kombinace znaků, k tomu napište dotaz v následujícím tvaru.
SELECT SUBSTR (ident, "4", "8") FROM tabulky
těch. vypíšeme všechny znaky od 4 do 8 a po tomto dotazu dostanete toto:
Funkce LENGTH - délka řetězce
Následující funkce se také může hodit, to je DÉLKA- který jednoduše počítá počet znaků v řetězci. Například musíte zjistit, kolik znaků v každé buňce sloupce "jméno" je povoleno, tabulka je následující.
SELECT LENGTH (jméno) FROM tabulkypo této žádosti dostanete toto.
4 |
6 |
7 |
Zde jsme s vámi a prozkoumali jsme hlavní funkce řetězce SQL. V následujících článcích budeme pokračovat ve studiu SQL.
Ostatním. Má následující syntaxi:
CONV(číslo;N;M)
Argument číslo je v číselné soustavě se základem N. Funkce jej převede na číselnou soustavu se základem M a vrátí hodnotu jako řetězec.
Příklad 1
Následující dotaz překládá číslo 2 z desítková soustava počet na binární:
SELECT CONV(2;10;2);
Výsledek: 10
Chcete-li převést číslo 2E z hexadecimálního na desítkové, je vyžadován dotaz:
SELECT CONV("2E",16;10);
Výsledek: 46
Funkce CHAR() překládá ASCII kód na řetězce. Má následující syntaxi:
CHAR(n1;n2;n3..)
Příklad 2
SELECT CHAR(83;81;76);
Výsledek: SQL
Následující funkce vrátí délku řetězce:
- DÉLKA(řetězec);
- OCTET_LENGTH(řetězec);
- CHAR_LENGTH(řetězec);
- CHARACTER_LENGTH(řetězec).
Příklad 3
SELECT LENGTH("MySQL");
Výsledek: 5
Občas se to stane užitečná funkce BIT_LENGTH(řetězec), která vrací délku řetězce v bitech.
Příklad 4
SELECT BIT_LENGTH("MySQL");
Výsledek: 40
Funkce podřetězců
Podřetězec je obvykle součástí řetězce. Často chcete znát pozici prvního výskytu podřetězce v řetězci. Existují tři funkce, které řeší tento problém v MySQL:
- LOCATE(podřetězec, řetězec [,pozice]);
- POSITION(podřetězec, řetězec);
- INSTR(řetězec, podřetězec).
Pokud podřetězec není obsažen v řetězci, vrátí všechny tři funkce 0. Funkce INSTR() se od ostatních dvou liší v pořadí svých argumentů. Funkce LOCATE() může obsahovat třetí argument pozice, který umožňuje hledat podřetězec v řetězci nikoli od začátku, ale od zadané pozice.
Příklad 5
SELECT LOCATE("Topaz", "Topaz");
Výsledek: 31
SELECT POSITION("Topaz", "Topaz");
Výsledek: 31
SELECT INSTR("Topaz",'Topaz');
Výsledek: 31
SELECT LOCATE("Topaz", "Továrna Topaz a LLC Topaz", 9);
Výsledek: 20
SELECT LOCATE("Diamant", "Topaz");
Výsledek: 0
Funkce VLEVO(řádek; N) a RIGHT(řetězec; N) vrátí N znaků nejvíce vlevo a nejvíce vpravo v řetězci.
Příklad 6
SELECT LEFT("MySQL DBMS", 4);
Výsledek: DBMS
SELECT RIGHT("MySQL DBMS", 5);
Výsledek: MySQL
Někdy potřebujete získat podřetězec, který začíná na nějaké danou pozici. K tomu slouží následující funkce:
- PODŘETĚZEC(řetězec, pozice, N);
- MID(řetězec, pozice, N).
Obě funkce vracejí N znaků daného řetězce počínaje danou pozicí.
Příklad 7
SELECT SUBSTRING("MySQL DBMS je jedním z nejpopulárnějších DBMS", 6,5);
Výsledek: MySQL
Při práci s emailová adresa a adresy stránek je velmi užitečná funkce SUBSTR_INDEX(). Funkce má tři argumenty:
SUBSTR_INDEX(řetězec, oddělovač, N).
Argument N může být kladný nebo záporný. Pokud je záporné, pak funkce najde N-tý výskyt oddělovače, počítá se zprava. Poté vrátí podřetězec umístěný napravo od nalezeného oddělovače. Pokud je N kladné, pak funkce najde N-tý výskyt oddělovače nalevo a vrátí podřetězec nalevo od nalezeného oddělovače.
Příklad 8
SELECT SUBSTRING_INDEX("www.mysql.ru",".",2);
Výsledek: www.mysql
SELECT SUBSTRING_INDEX("www.mysql.ru",".",-2);
Výsledek: mysql.com
Funkce REPLACE(řetězec, dílčí řetězec1, dílčí řetězec2) umožňuje nahradit všechny výskyty podřetězec1 v řetězci podřetězcem2.
Zde je úplný seznam funkcí pro manipulaci s řetězci převzatých z BOL:
ASCII | NCHAR | SOUNDEX |
CHAR | PATINDEX | PROSTOR |
CHARINDEX | NAHRADIT | STR |
ROZDÍL | QUOTENAME | VĚCI |
VLEVO, ODJET | REPLIKÁT | SUBSTRING |
LEN | ZVRÁTIT | UNICODE |
DOLNÍ | ŽE JO | HORNÍ |
LTRIM | RTRIM |
Začněme dvěma navzájem inverzní funkce - ASCII a CHAR.
Funkce ASCII vrací kód ASCII znaku zcela vlevo v řetězcovém výrazu, který je argumentem funkce.
Takto můžete například určit, kolik různých písmen začínají názvy lodí v tabulce Lodě:
Je třeba poznamenat, že podobný výsledek lze získat jednodušeji pomocí jedné další funkce - VLEVO, ODJET, který má následující syntaxi:
VLEVO, ODJET (<řetězcový výraz>, <celočíselný výraz>)
a odřízne počet znaků daný druhým argumentem zleva od řetězce daného prvním argumentem. Tak,
SELECT DISTINCT LEFT(jméno, 1) Z lodí OBJEDNAT DO 1 |
A takto můžete například získat tabulku kódů pro všechny abecední znaky:
SELECT CHAR(ASCII("a")+ číslo-1) písmeno, ASCII("a")+ číslo -1 OD (VYBRAT 5*5*(a-1)+5*(b-1) + c AS num FROM (VYBRAT 1 a UNION ALL VYBRAT 2 UNION ALL VYBRAT 3 UNION ALL VYBRAT 4 UNION ALL VYBRAT 5) x KŘÍŽOVÉ PŘIPOJENÍ (VYBRAT 1 b UNION ALL VYBRAT 2 UNION ALL VYBRAT 3 UNION ALL VYBRAT 4 UNION ALL VYBRAT 5) y KŘÍŽOVÉ PŘIPOJENÍ z ) X WHERE ASCII("a")+ číslo -1 MEZI ASCII("a") A ASCII("z") |
Pro ty, kteří ještě nevědí o generování číselné sekvence, odkazuji na odpovídající článek.
Jak víte, kódy malých a velkých písmen se liší. Proto, aby se dostal plný set bez přepisování dotazu stačí přidat podobný do výše uvedeného kódu:
Domnívám se, že v případě potřeby nebude těžké tento dopis do tabulky přidat.
Zvažte nyní problém nalezení požadovaného podřetězce v řetězcovém výrazu. K tomu lze použít dvě funkce - CHARINDEX a PATINDEX. Oba vrátí počáteční pozici (pozice prvního znaku podřetězce) podřetězce v řetězci. Funkce CHARINDEX má syntaxi:
CHARINDEX ( vyhledávací_výraz, řetězec_výraz[, počáteční_pozice])
Zde je volitelný celočíselný parametr počáteční_pozice určuje pozici v řetězcovém výrazu, ze které se má hledat vyhledávací_výraz. Pokud je tento parametr vynechán, vyhledávání se provádí od začátku řetězec_výraz. Například žádost
Je třeba poznamenat, že pokud je hledaný podřetězec nebo řetězcový výraz NULL, pak výsledek funkce bude také NULL.
Následující příklad určuje polohu prvního a druhého výskytu znaku "a" ve jménu lodi "Kalifornie"
SELECT CHARINDEX("a",jméno) first_a, CHARINDEX("a", jméno, CHARINDEX("a", jméno)+1) druhý_a FROM Ships WHERE name="Kalifornie" |
Všimněte si, že při definování druhého znaku ve funkci se používá počáteční pozice, což je pozice znaku za prvním písmenem "a" - CHARINDEX("a", jméno)+1. Správnost výsledku - 2 a 10 - je snadné zkontrolovat :-).
Funkce PATINDEX má syntaxi:
PATINDEX("% vzorek%" , řetězec_výraz)
Hlavní rozdíl mezi touto funkcí a CHARINDEX je v tom, že hledaný řetězec může obsahovat zástupné znaky - % a _. V tomto případě jsou koncové znaky "%" povinné. Například použití této funkce v prvním příkladu by vypadalo takto
Výsledek tohoto dotazu vypadá takto:
Skutečnost, že ve výsledku dostaneme prázdnou sadu výsledků, znamená, že v databázi žádné takové lodě nejsou. Vezměme kombinaci hodnot - třídu a název lodi.
Spojení dvou řetězcových hodnot do jedné se nazývá zřetězení a v SQL Server pro tuto operaci se používá znaménko "+" (ve standardu "||"). Tak,
A pokud bude řetězcový výraz obsahovat pouze jedno písmeno? Dotaz to vyvolá. To lze snadno ověřit psaním
Funkce řetězce SQL
Tato skupina funkcí umožňuje manipulovat s textem. Řetězcových funkcí je mnoho, my zvážíme ty nejběžnější.- CONCAT(str1,str2...) Vrací řetězec vytvořený zřetězením argumentů (argumenty jsou uvedeny v závorkách - str1,str2...). Například naše tabulka Dodavatelé obsahuje sloupec Město a sloupec Adresa. Řekněme, že chceme, aby Adresa a Město byly ve výsledné tabulce ve stejném sloupci, tzn. chceme spojit data ze dvou sloupců do jednoho. K tomu použijeme řetězcovou funkci CONCAT() a jako argumenty uvedeme názvy kombinovaných sloupců – město a adresu:
SELECT CONCAT(město, adresa) FROM prodejců;
Všimněte si, že ke sloučení došlo bez rozdělení, což není příliš čitelné. Upravme náš dotaz tak, aby mezi spojovanými sloupci byla mezera:
SELECT CONCAT(město, " ", adresa) FROM dodavatelů;
Jak vidíte, mezera je také považována za argument a je specifikována oddělená čárkami. Pokud by mělo být kombinováno více sloupců, bylo by iracionální pokaždé specifikovat mezery. V tomto případě lze použít funkci string CONCAT_WS(oddělovač, str1,str2...), který umístí oddělovač mezi řetězce, které mají být zřetězeny (oddělovač je uveden jako první argument). Náš požadavek by pak vypadal takto:
SELECT CONCAT_WS(" ", město, adresa) FROM dodavatelů;
Výsledek se externě nezměnil, ale pokud bychom spojili 3 nebo 4 sloupce, pak by se kód výrazně zkrátil.
- INSERT(str; pozice; délka; nový_str) Vrátí řetězec str, ve kterém byl podřetězec začínající na pozici pos a mající délku znaků len nahrazen podřetězcem nový_str. Předpokládejme, že se rozhodneme ve sloupci Adresa (adresa) nezobrazovat první 3 znaky (zkratky ulice atd.), pak je nahradíme mezerami:
SELECT INSERT(adresa, 1, 3, " ") FROM dodavatelů;
To znamená, že tři znaky, počínaje prvním, jsou nahrazeny třemi mezerami.
- LPAD(str, len, dop_str) Vrací řetězec str vlevo doplněný dop_str na délku len. Řekněme, že chceme, aby města dodavatelů byla zobrazena vpravo s tečkami, které vyplňují prázdné místo:
SELECT LPAD(město, 15, ".") FROM dodavatelů;
- RPAD(str, len, dop_str) Vrací řetězec str zprava doplněný dop_str na délku len. Předpokládejme, že chceme, aby dodavatelská města byla zobrazena vlevo a prázdné místo bylo vyplněno tečkami:
SELECT RPAD(město, 15, ".") FROM dodavatelů;
Všimněte si, že hodnota len omezuje počet znaků, které se mají vytisknout, tzn. pokud je název města delší než 15 znaků, bude zkrácen.
- LTRIM(str) Vrací řetězec str s odstraněnými počátečními mezerami. Tato funkce řetězce je užitečná pro správné zobrazení informací v případech, kdy jsou při zadávání dat povoleny náhodné mezery:
SELECT LTRIM(město) FROM prodejců;
- RTRIM(str) Vrátí řetězec str s odstraněnými koncovými mezerami:
SELECT RTRIM(město) FROM prodejců;
V našem případě prostory navíc nebyl, proto výsledek navenek neuvidíme.
- TRIM(str) Vrátí řetězec str bez všech úvodních a koncových mezer:
SELECT TRIM(město) FROM prodejců;
- LOWER(str) Vrací řetězec str se všemi znaky převedenými na malá písmena. S ruskými písmeny to nefunguje správně, takže je lepší to nepoužívat. Aplikujme například tuto funkci na sloupec města:
SELECT city, LOWER(city) FROM dodavatelů;
Podívejte se, co dopadlo abrakadabra. Ale s latinou je vše v pořádku:
SELECT LOWER("MĚSTO");
- UPPER(str) Vrací řetězec str se všemi znaky převedenými na velká písmena. Také je lepší nepoužívat ruská písmena. Ale s latinou je vše v pořádku:
SELECT UPPER(e-mail) OD zákazníků;
- LENGTH(str) Vrací délku řetězce str. Pojďme například zjistit, kolik znaků je v adresách našich dodavatelů:
SELECT adresa, LENGTH(adresa) FROM dodavatelů;
- LEFT(str, len) Vrátí len levých znaků str. Nechte například v dodavatelských městech zobrazovat pouze první tři znaky:
SELECT jméno, LEFT(město, 3) FROM dodavatelů;
- RIGHT(str, len) Vrátí len pravých znaků str. Například v dodavatelských městech nechejte zobrazit pouze poslední tři znaky: SELECT LOAD_FILE("C:/proverka");
Upozorňujeme, že musíte zadat absolutní cestu k souboru .