Z knihy Registr Windows autor Klimov A

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 P

KAPITOLA 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 PHP

Zá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án

Funkce 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 Stephen

Funkce 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 David

23.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 knihy

13. Řetězce znaků a funkce na řetězcích ZNAKOVÉ ŘETĚZCE INICIALIZACE ZNAKOVÝCH ŘETĚZCŮ

Z autorovy knihy

FUNKCE Ř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 knihy

Podprogramy 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 knihy

Typ 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 tabulky

tě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

SUBSTRdanou 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 tabulky

po 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 .

Jak již bylo zmíněno, existuje mnohem více řetězcových funkcí, ale i některé z nich, které jsou zde zvažovány, se používají velmi zřídka. Tím tedy jejich zvažování skončí a přejde se k běžněji používaným funkcím data a času.