SQL-де кестеден деректерді қалай алуға болады: SQL сұранысы SELECT FROM WHERE
SQL Training with Examples: How to Write an SQL Query to Get Data from a Database?
SQL кестесінен деректер алу. Мен деректер базасынан ақпарат алуды түсінікті, артық сөзсіз қарапайым тілмен түсіндіремін. SELECT FROM WHERE командасы оңай! Ол MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB және басқа SQL-негізіндегі DBMS үшін жұмыс істейді.
How to get all data from a database table?
SQL командасының SELECT FROM синтаксисі:
SELECT * FROM tableName;
Бұл сөзбе-сөз "SELECT барлық кестеден" дегенді білдіреді.
Кестеден деректерді алудың нәтижесі - барлық жолдардың массиві, әр жол барлық өрістерді (бағандарды) қамтиды. Егер кестеде деректер болмаса, нәтиже бос массив болады.
Мысалы, біздің деректер базамызда "products" деп аталатын өнімдер кестесі бар. Осы кестеден барлық деректерді алу үшін, сіз SQL сұрауын жазуыңыз қажет:
SELECT * FROM products;
How to get specific fields from a database table:
Егер бізге кестедегі әр жолдан барлық ақпарат қажет болмаса, тек қызықтыратын өрістерді таңдай аламыз. Мысалы, бізде "users" кестесі бар, және біз барлық пайдаланушыларды алғымыз келеді, бірақ біз тек id, email және name өрістеріне қызығамыз. Сонда, жұлдызша орнына, біз өріс атауларын үтірмен бөлініп жазуымыз керек:
SELECT id, email, name FROM products;
Ескерту: соңғы өріс пен FROM сөзі арасында үтір болмауы керек, әйтпесе, қате болады!
How to get specific records from the DB table? SQL query SELECT FROM WHERE ID
Көбінесе, біз деректерді id бойынша алып жатамыз. Неге id? Бұл кестедегі әр жолдың бірегей нөмірі.
Бір кестеде бірнеше бірдей идентификаторлар бола алмайды, бұл демек, бір жазбаның id-сын білгенде, біз garantiya беретін нақты жазбаны ала аламыз. Мұны қалай жасауға болады:
SELECT * FROM tableName WHERE id = recordId;
Мысалы, біздің деректер базамызда "orders" деп аталатын тапсырыстар кестесі бар, және біз id 5 болатын жазбаны алғымыз келеді.
SELECT * FROM orders WHERE id = 5;
Ескерту: егер id сандар форматы болса, оны тырнақшасыз жазамыз. Егер id, мысалы, UUID форматында сақталса, оны тырнақшада жазу қажет. Мысал:
SELECT * FROM orders WHERE id = ‘40dfe45e-49e0-4097-92f6-c96f27aa3af1’;
Сіз деректерді міндетті түрде ID бойынша емес, басқа өріс бойынша да ала аласыз.
Түсініктілік үшін, төменде келтірілген мысалдарды орыс тілінде ұсынамын, бірақ шын мәнінде, барлық кестелер мен өрістерді ағылшын тілінде атау керек екендігін еске сақтаңыз.
Айтайық, біз "Менеджер" лауазымдағы барлық қызметкерлерді алуымыз керек:
SELECT * FROM Employees WHERE Position = 'Manager';
Бұл жағдайда, лауазымдарды тізімдейтін жеке кесте құрылуы керек, және "Position" бағаны лауазымның аты емес, лауазымдар кестесіндегі id-ды сақтауы тиіс.
Біз деректерді бір күннен кейін/бұрын болатын күндерде ала аламыз, сондай-ақ шартта бірнеше критерийлерді қолдана аламыз:
Айтайық, біз статусы "Тапсырыс берілді" және 2023 жылдың 1 қаңтарынан кейін жасалған тапсырыстар туралы ақпарат алғымыз келеді:
SELECT * FROM Orders WHERE Status = 'Delivered' AND Order_Date > '2023-01-01';
Бұл жағдайда, тапсырыс статустарын тізімдейтін жеке кесте құрылуы керек, және "Status" бағаны статустың мәтіні емес, статустар кестесіндегі id-ды сақтауы тиіс. Enum деректер типін қолдану да қабылданады, бірақ меніңше, бұл тәсіл икемді және қолайлы емес.
How to get rows where the table field contains a sequence of characters?
Жартылай сәйкестіктерді іздеу үшін LIKE операторы қолданылады.
Мысалы, біз атауы "F" әрпінен басталатын барлық өнімдерді іздей аламыз:
SELECT * FROM Products WHERE Name LIKE 'F%';
Немесе атауы "ry" әрпімен аяқталатын өнімдер:
SELECT * FROM Products WHERE Name LIKE '%ry';
Немесе атауы "fresh" сөзін қамтитын өнімдер:
SELECT * FROM Products WHERE Name LIKE '%fresh%';
Деректерді таңдау, егер өріс бірнеше мәннің біреуін қамтитын болса, қалай жүзеге асырылады?
IN операторы көмекке келеді. Мысалы, біз категориясы бірнеше тізімделгендердің бірі болатын өнімдер туралы деректерді таңдай аламыз:
SELECT * FROM Products WHERE Category IN ('Electronics', 'Clothing', 'Books');
Жоғарыда келтірілген мысалдар дерекқордан таңдау жасаудың ең негізгі үлгілері болып табылады.
SQL өте бай мүмкіндіктерге ие, оған бөлек мақалалар арналады, сондықтан WHERE шарттарын, GROUP BY топтастыруды, ORDER BY сұрыптауды, JOIN кестелерін байланыстыруды және т.б. қолдану туралы порталға тереңірек мақала болады.