SQL ਵਿੱਚ, joins
ਤੁਸੀਂ ਕਿਹੜੀਆਂ ਕਿਸਮਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ, ਅਤੇ ਦੱਸੋ ਕਿ ਉਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ?
ਜਵਾਬ:
INNER JOIN
: ਦੋਵੇਂ ਟੇਬਲਾਂ ਤੋਂ ਮੇਲ ਖਾਂਦੇ ਡੇਟਾ ਨਾਲ ਕਤਾਰਾਂ ਵਾਪਸ ਕਰਦਾ ਹੈ।LEFT JOIN
: ਖੱਬੇ ਸਾਰਣੀ ਤੋਂ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਅਤੇ ਸੱਜੇ ਸਾਰਣੀ ਤੋਂ ਮੇਲ ਖਾਂਦੀਆਂ ਕਤਾਰਾਂ ਵਾਪਸ ਕਰਦਾ ਹੈ।RIGHT JOIN
: ਸੱਜੇ ਸਾਰਣੀ ਤੋਂ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਅਤੇ ਖੱਬੀ ਸਾਰਣੀ ਤੋਂ ਮੇਲ ਖਾਂਦੀਆਂ ਕਤਾਰਾਂ ਵਾਪਸ ਕਰਦਾ ਹੈ।FULL JOIN
: ਗੈਰ-ਮੇਲ ਖਾਂਦੀਆਂ ਕਤਾਰਾਂ ਸਮੇਤ, ਦੋਵਾਂ ਸਾਰਣੀਆਂ ਤੋਂ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਵਾਪਸ ਕਰਦਾ ਹੈ।
SQL ਵਿੱਚ ACID ਸੰਕਲਪਾਂ ਅਤੇ ਟ੍ਰਾਂਜੈਕਸ਼ਨ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਉਹਨਾਂ ਦੀ ਭੂਮਿਕਾ ਦੀ ਵਿਆਖਿਆ ਕਰੋ
ਉੱਤਰ: ACID ਦਾ ਅਰਥ ਹੈ Atomicity, Consistency, Isolation, Durability
। SQL ਵਿੱਚ ਟ੍ਰਾਂਜੈਕਸ਼ਨ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਇਹ ਜ਼ਰੂਰੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ:
Atomicity
ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਇੱਕ ਲੈਣ-ਦੇਣ ਜਾਂ ਤਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਸਾਧਿਤ ਹੈ ਜਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪ੍ਰਕਿਰਿਆ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ।Consistency
ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਡੇਟਾ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਨਿਯਮਾਂ, ਪਾਬੰਦੀਆਂ ਅਤੇ ਸ਼ਰਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।Isolation
ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਸਮਕਾਲੀ ਲੈਣ-ਦੇਣ ਇੱਕ ਦੂਜੇ ਵਿੱਚ ਦਖਲ ਨਹੀਂ ਦਿੰਦੇ ਹਨ।Durability
ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਇੱਕ ਵਾਰ ਲੈਣ-ਦੇਣ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਡੇਟਾਬੇਸ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਸੁਰੱਖਿਅਤ ਅਤੇ ਸਥਾਈ ਤੌਰ 'ਤੇ ਸੁਰੱਖਿਅਤ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।
SQL ਵਿੱਚ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਕੀ ਅੰਤਰ ਹੈ ROW_NUMBER(), RANK(), DENSE_RANK()
?
ਉੱਤਰ: ROW_NUMBER(), RANK(), DENSE_RANK()
ਸਾਰੇ ਇੱਕ ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਵਿੱਚ ਕਤਾਰਾਂ ਨੂੰ ਨੰਬਰ ਦੇਣ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ, ਪਰ ਉਹਨਾਂ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ ਅੰਤਰ ਹਨ:
ROW_NUMBER()
: ਡੁਪਲੀਕੇਟ 'ਤੇ ਵਿਚਾਰ ਕੀਤੇ ਬਿਨਾਂ, ਪੁੱਛਗਿੱਛ ਦੇ ਨਤੀਜੇ ਵਿੱਚ ਕਤਾਰਾਂ ਨੂੰ ਲਗਾਤਾਰ ਸੰਖਿਆਵਾਂ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।RANK()
: ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਵਿੱਚ ਕਤਾਰਾਂ ਨੂੰ ਸੰਖਿਆਵਾਂ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਅਤੇ ਸਬੰਧਾਂ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਅਗਲੇ ਨੰਬਰ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ।DENSE_RANK()
: ਪੁੱਛਗਿੱਛ ਦੇ ਨਤੀਜੇ ਵਿੱਚ ਕਤਾਰਾਂ ਨੂੰ ਨੰਬਰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ ਅਤੇ ਸਬੰਧਾਂ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਅਗਲੇ ਨੰਬਰ ਨੂੰ ਨਹੀਂ ਛੱਡਦਾ।
SQL ਵਿੱਚ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ window functions
, ਅਤੇ ਇੱਕ ਉਦਾਹਰਣ ਪ੍ਰਦਾਨ ਕਰੋ।
ਜਵਾਬ: Window functions
ਮੁੱਖ ਪੁੱਛਗਿੱਛ ਦੇ ਨਤੀਜੇ ਨੂੰ ਬਦਲੇ ਬਿਨਾਂ ਸੰਬੰਧਿਤ ਕਤਾਰਾਂ ਦੇ ਸੈੱਟ 'ਤੇ ਗਣਨਾ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ। ਉਦਾਹਰਨ ਲਈ, ਅਸੀਂ ਚੱਲ ਰਹੇ ਕੁੱਲਾਂ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਵਿੰਡੋ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ਜਾਂ ਨਤੀਜੇ ਸੈੱਟ ਦੇ ਅੰਦਰ ਚੋਟੀ ਦੀਆਂ N ਕਤਾਰਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ।
SELECT ProductID, UnitPrice,
SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal
FROM Products;
ਪੈਟਰਨ ਮੈਚਿੰਗ ਲਈ SQL ਵਿੱਚ ਰੈਗੂਲਰ ਸਮੀਕਰਨ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ
ਜਵਾਬ: SQL ਵਿੱਚ ਨਿਯਮਤ ਸਮੀਕਰਨ ਗੁੰਝਲਦਾਰ ਟੈਕਸਟ ਪੈਟਰਨ ਖੋਜਾਂ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਉਹ ਅਕਸਰ LIKE
ਓਪਰੇਟਰ ਜਾਂ ਫੰਕਸ਼ਨਾਂ ਜਿਵੇਂ REGEXP_LIKE
(Oracle ਵਿੱਚ) ਜਾਂ REGEXP_MATCHES
(PostgreSQL ਵਿੱਚ) ਨਾਲ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।
SELECT * FROM Employees WHERE LastName LIKE '%son%';
JSON ਡੇਟਾ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ SQL ਵਿੱਚ JSON ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ
ਜਵਾਬ: SQL ਵਿੱਚ JSON ਫੰਕਸ਼ਨ ਡੇਟਾਬੇਸ ਵਿੱਚ JSON ਫਾਰਮੈਟ ਵਿੱਚ ਪੁੱਛਗਿੱਛ ਕਰਨ, ਸੰਮਿਲਿਤ ਕਰਨ, ਅੱਪਡੇਟ ਕਰਨ ਅਤੇ ਮਿਟਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ।
ਉਦਾਹਰਨ ਲਈ, ਅਸੀਂ JSON ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ JSON_VALUE, JSON_QUERY, JSON_MODIFY(SQL ਸਰਵਰ ਵਿੱਚ), ਜਾਂ ਓਪਰੇਟਰ ਜਿਵੇਂ ->, ->>, #>, #>>, ਆਦਿ(PostgreSQL ਵਿੱਚ) ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।
SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName
FROM Customers;
SQL ਪੁੱਛਗਿੱਛ ਅਨੁਕੂਲਨ ਅਤੇ ਡੇਟਾਬੇਸ ਪ੍ਰਦਰਸ਼ਨ ਟਿਊਨਿੰਗ ਲਈ ਉੱਨਤ ਤਕਨੀਕਾਂ
ਉੱਤਰ: SQL ਸਵਾਲਾਂ ਅਤੇ ਡੇਟਾਬੇਸ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ, ਅਸੀਂ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿਵੇਂ ਕਿ:
- ਅਕਸਰ ਪੁੱਛਗਿੱਛ ਕੀਤੇ ਕਾਲਮਾਂ ਲਈ ਸੂਚਕਾਂਕ ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
- ਕੁਸ਼ਲ ਡਾਟਾ ਪ੍ਰਾਪਤੀ ਲਈ ਅਨੁਕੂਲਿਤ
JOIN
ਅਤੇ ਧਾਰਾਵਾਂ।WHERE
- ਲੋੜ ਪੈਣ 'ਤੇ ਵਿੰਡੋ ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਪੰਨਾਬੰਦੀ ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
-
SELECT
ਸਿਰਫ਼ ਲੋੜੀਂਦੇ ਕਾਲਮਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ * ਤੋਂ ਬਚਣਾ । - ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ ਪੁੱਛਗਿੱਛ ਸੰਕੇਤਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
- ਡਾਟਾ ਸਧਾਰਣਕਰਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਅਤੇ ਡੁਪਲੀਕੇਟਸ ਨੂੰ ਹਟਾਉਣਾ।
- ਡੇਟਾਬੇਸ ਨੂੰ ਟ੍ਰੈਕ ਕਰਨ ਅਤੇ ਵਧੀਆ-ਟਿਊਨ ਕਰਨ ਲਈ ਪ੍ਰਦਰਸ਼ਨ ਨਿਗਰਾਨੀ ਸਾਧਨਾਂ ਨੂੰ ਨਿਯੁਕਤ ਕਰਨਾ।
ਸਮਝਾਓ ਕਿ SQl ਵਿੱਚ SET
ਓਪਰੇਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ (UNION, INTERSECT, EXCEPT)
ਉੱਤਰ: SET
ਆਪਰੇਸ਼ਨਾਂ (UNION, INTERSECT, EXCEPT)
ਦੀ ਵਰਤੋਂ ਵੱਖ-ਵੱਖ ਪੁੱਛਗਿੱਛਾਂ ਦੇ ਨਤੀਜੇ ਸੈੱਟਾਂ ਨੂੰ ਜੋੜਨ ਅਤੇ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
UNION
: ਇੱਕ ਸਿੰਗਲ ਡੇਟਾ ਸੈੱਟ ਵਿੱਚ ਦੋ ਜਾਂ ਵੱਧ ਸਵਾਲਾਂ ਦੇ ਨਤੀਜਿਆਂ ਨੂੰ ਜੋੜਦਾ ਹੈ ਅਤੇ ਡੁਪਲੀਕੇਟ ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ।INTERSECT
: ਉਹ ਕਤਾਰਾਂ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜੋ ਕਿ ਦੋਵੇਂ ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਸੈੱਟਾਂ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀਆਂ ਹਨ।EXCEPT
: ਉਹ ਕਤਾਰਾਂ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜੋ ਪਹਿਲੀ ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਸੈੱਟ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀਆਂ ਹਨ ਪਰ ਦੂਜੀ ਵਿੱਚ ਨਹੀਂ।
ਕਿਵੇਰੀ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ ਜਿਵੇਂ ਕਿ LEAD, LAG, FIRST_VALUE, LAST_VALUE
SQL ਵਿੱਚ
ਉੱਤਰ: ਕਿਊਰੀ ਫੰਕਸ਼ਨਾਂ ਦੀ LEAD, LAG, FIRST_VALUE, LAST_VALUE
ਵਰਤੋਂ ਉਸੇ ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਦੇ ਅੰਦਰ ਸਬੰਧਿਤ ਕਤਾਰਾਂ ਤੋਂ ਮੁੱਲ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
LEAD
: ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਵਿੱਚ ਅਗਲੀ ਕਤਾਰ ਤੋਂ ਇੱਕ ਕਾਲਮ ਦਾ ਮੁੱਲ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।LAG
: ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਵਿੱਚ ਪਿਛਲੀ ਕਤਾਰ ਤੋਂ ਇੱਕ ਕਾਲਮ ਦਾ ਮੁੱਲ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।FIRST_VALUE
: ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਵਿੱਚ ਇੱਕ ਕਾਲਮ ਦਾ ਪਹਿਲਾ ਮੁੱਲ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।LAST_VALUE
: ਪੁੱਛਗਿੱਛ ਨਤੀਜੇ ਵਿੱਚ ਇੱਕ ਕਾਲਮ ਦੇ ਆਖਰੀ ਮੁੱਲ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।