Компьютерлер, Файл түрлері
SQL айқын: сипаттамасы, мысалдар, қасиеттері
Сіз кестелерден деректерді алу үшін SQL пайдаланған кезде жиі, пайдаланушы артық деректер мүлдем бірдей қайталанатын жолдар болуы болып табылады алады. Осы жағдайды болдырмау үшін, опциясын таңдаңыз сөйлемде SQL айқын дәлел пайдаланыңыз. Бұл мақалада осы дәлел пайдаланудың үлгілерін, сондай-ақ өтініш дәлел тастанды тиіс болатын жағдайларды талқылайды.
біз нақты мысалдар қарастыру жалғастыру алдында кестелер бірнеше талап деректер базасын құру.
дайындау үстел
біз екі кестелерде ұсынылған тұсқағаз туралы дерекқор сақтайды ақпаратты делік. Бұл кестеде Oboi түрі (тұсқағаздар түрі. - Қағаз, винил, т.б.) ID өрістерге (бірегей идентификатор) бар (тұсқағаздар), түсі (түсі), құрылымын (құрылымы) және баға (бағасы). Ал id_oboi өрістерге (кестеде Oboi бірегей идентификатор сілтеме) және санау (қоймада саны орама) бар үстел Ostatki (қалдықтары).
деректер кестесін толтырыңыз. кестеде тұсқағаз 9 жазбаларды қосу:
Oboi | ||||
ID | түрі | түс | құрылымын | баға |
1 | қағаз | түсті | бұдыр, | 56,9 |
2 | Қағаз қос қабатты | сорғылт қоңыр | тегіс | 114,8 |
3 | винил | апельсин | бұдыр, | 504 |
4 | Fleece | сорғылт қоңыр | бұдыр, | 1020,9 |
5 | Қағаз қос қабатты | сорғылт қоңыр | тегіс | 150.6 |
6 | қағаз | түсті | тегіс | 95,4 |
7 | винил | қоңыр | тегіс | 372 |
8 | Fleece | ақ | бұдыр, | 980,1 |
9 | мата | қызғылт | тегіс | 1166,5 |
қалдықтары бар үстел - және тоғыз жазбалар:
Ostatki | |
id_oboi | санау |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Біз SQL айқын тәртібін сипаттау кірісеміз.
Таңдаңыз тармақта өзгеше қойыңыз
айқын дәлел дереу сұрауларда Кілт сөзді таңдау кейін орналастырылуы тиіс. ол соңғы сұрау нәтижелерінің мүлдем бірдей жолдар болып табылады шығарылады, өйткені Ол таңдаңыз сөйлемде көрсетілген барлық бағандар қолданылады. Осылайша, бір рет SQL сұрау «айқын таңдаңыз» жазу кезінде көрсету үшін жеткілікті болып табылады. ерекшелік сәл кейінірек қарап жиынтық функцияларын ішіндегі айқын пайдалану болып табылады.
Бұл деректер базасын ең және сұрау сіздің түрін танымаса, бұл есте сақтау қажет:
айқын Ostatki.Count, айқын Oboi SELECT *. Oboi FROM Ішкі Ostatki ON Oboi.id = Ostatki.id_oboi JOIN |
Онда дәлел бірнеше рет қарастырылды немесе көрсетілген, бірақ екінші дейін, үшінші немесе басқа таңдалған баған рет емес. Сіз қате синтаксис қатесі сілтеме алады.
стандартта қолдану ерекше сұраулар
Ол дұрыс құрылыс құрылымы кестелер және бір кесте ішінде оларды толтыру мүлдем бірдей жолдар бар болған кезде жағдайды тасталды анық. Сондықтан, бір үстел үлгідегі сұрау орындау «айқын таңдаңыз *» орынсыз болып табылады.
біз түрі бойынша сұрыптау үшін, жай ғана ыңғайлы болу үшін, біз тұсқағазды қандай түрі білу қажет болғанда жағдайды қарастырайық:
Oboi.type ТАҢДАУ түрі бойынша Oboi бұйрықтан |
Ал нәтиже алу:
түрі |
қағаз |
қағаз |
Қағаз қос қабатты |
Қағаз қос қабатты |
винил |
винил |
мата |
Fleece |
Fleece |
Кестеде көрсетілгендей қайталанатын жолдар бар. біз ұсыныс қоссаңыз айқын таңдаңыз:
айқын Oboi.type ТАҢДАУ түрі бойынша Oboi бұйрықтан |
біз қайталау жоқ нәтиже алуға:
түрі |
қағаз |
Қағаз қос қабатты |
винил |
мата |
Fleece |
дұрыс Кестеге деректерді енгізіңіз Осылайша, егер, содан кейін бірден сатып алушылар Телефон қоңырауының немесе талабы кейін біз сол сұйық тұсқағазды жауап бере алады, дүкенде қолжетімді шыны және акрил тұсқағаз емес. дүкендер диапазоны әдетте жүз тұсқағазға ғана шектелмейді екенін ескере отырып, бірегей емес түрлерінің тізімі өте еңбекті қажет ететін болар еді көру.
ішінде түрлі жиынтық функцияларын қолдану
SQL айқын дәлел, кез келген агрегаттық функциясымен пайдалануға болады. Бірақ Min және Max арналған оның өтiнiмi ешқандай нәтиже жоқ, бірақ сомасы немесе орташа мәні есептеу кезінде сирек ешкім де назарға қайталауын қабылдауға тура келеді жағдай болады.
біз біздің қоймадан әлеуетін тексеруге және осы сұрау жіберу үшін келеді делік, қоймада катушкалар жалпы саны есептейді:
SELECT SUM (Ostatki.count) Ostatki FROM |
Алайда, біз үшін өзгереді Егер сұрау жауап 143 береді:
SELECT SUM (ерекше Ostatki.count) Ostatki FROM |
бөлігі сандар 3 және 7 тұсқағаз сол мөлшерде қоймада бар, біз, жалпы 119 алу. Алайда, бұл жауап дұрыс емес екенін анық.
Ең жиі SQL түрлі функция Санақты пайдаланылады. Сондықтан, біз оңай тұсқағаздар қанша бірегей түрлерін жүзеге таба аласыз, біз бар ма:
SELECT COUNT (ерекше Oboi.type) Oboi FROM |
қарапайым қағаз және қос қабатты винил және тоқылмаған мата - және 5 нәтиже алуға. Бұл дүкен ғана бір-екі ондаған Rolls және тұсқағаз заманауи түрлерін алуан емес екенін білдіреді, ол арқылы «Тек біз тұсқағаз 20 әр түрлі, үстінен ие»: Расында, барлық сияқты жарнамаларды көрген.
Ол сол сұрауда, сіз есептеу жеке жатқызуын сияқты бірнеше функцияларды көрсетіңіз, және онсыз мүмкін екенін қызықты. Яғни Select'e айқын осы бірнеше рет болуы мүмкін ғана жағдай.
дәлел пайдалануды тоқтатуын кезде
SQL айқын дәлел пайдалану екі жағдайлардың бірінде тастанды тиіс:
- Сіз кестелер таңдауын орындауға және әрбір бірегей құны сенімдіміз. ол (ДББЖ түріне байланысты) серверде немесе клиент туралы қосымша жүктеме болып табылады, өйткені бұл жағдайда, дәлел пайдалану, орынсыз болып табылады.
- Егер сіз деректерді жоғалтпай қорқады. АҚШ түсіндірейін.
түрі мен түсі - болсын Boss тек екі бағаналардың көрсете отырып, сіз бар тұсқағазды тізімін сұрайды. әдеті, сіз айқын дәлел береді:
айқын Oboi.type, Oboi.color SELECT Oboi FROM Oboi.type BY ORDER |
Ал - кейбір деректердің жоғалып:
түрі | түс |
қағаз | түсті |
Қағаз қос қабатты | сорғылт қоңыр |
винил | қоңыр |
винил | апельсин |
мата | қызғылт |
Fleece | сорғылт қоңыр |
Fleece | ақ |
Ол тұсқағаздар қағаздар (дәстүрлі және қос қабатты) біз шын мәнінде, тіпті екі-бабының (түрлі жоқ нәтиже) біздің шағын кестеде, бір ғана ақыл бар екенін әсер бере алады:
түрі | түс |
қағаз | түсті |
қағаз | түсті |
Қағаз қос қабатты | сорғылт қоңыр |
Қағаз қос қабатты | сорғылт қоңыр |
винил | қоңыр |
винил | апельсин |
мата | қызғылт |
Fleece | ақ |
Fleece | сорғылт қоңыр |
Сондықтан, тапсырмаға байланысты, оның өтініш бойынша шешім қабылдауға мұқият және білікті болуы керек дәлел айқын қажеттілігі бар кез-келген сұрау жазбаша түрде ретінде.
айқын баламалы
Барлық дәлел - айқын дәлел қайшы. оны қолдану қайталанатын жолдар сақталады. Бірақ әдепкі деректер базасы ретінде және ол барлық мәндерді көрсету үшін қажет деп тапса, дәлел Барлық - бұл өте өзекті функциясы аргументінің қарағанда іріктеу болып табылады.
Similar articles
Trending Now