{"id":50262,"date":"2023-12-17T07:00:37","date_gmt":"2023-12-17T07:00:37","guid":{"rendered":"https:\/\/masterskills.org\/blog\/15-cau-hoi-phong-van-sql-co-ban-thuong-gap-nhat-va-goi-y-tra-loi.html"},"modified":"2023-12-17T07:00:37","modified_gmt":"2023-12-17T07:00:37","slug":"15-cau-hoi-phong-van-sql-co-ban-thuong-gap-nhat-va-goi-y-tra-loi","status":"publish","type":"post","link":"https:\/\/masterskills.org\/blog\/15-cau-hoi-phong-van-sql-co-ban-thuong-gap-nhat-va-goi-y-tra-loi.html","title":{"rendered":"15 C\u00e2u H\u1ecfi Ph\u1ecfng V\u1ea5n SQL C\u01a1 B\u1ea3n Th\u01b0\u1eddng G\u1eb7p Nh\u1ea5t V\u00e0 G\u1ee3i \u00dd Tr\u1ea3 L\u1eddi\u00a0"},"content":{"rendered":"<div class=\"col\">\n<p>B\u1ea1n \u0111ang chu\u1ea9n b\u1ecb cho cu\u1ed9c ph\u1ecfng v\u1ea5n cho v\u1ecb tr\u00ed nh\u00e0 ph\u00e1t tri\u1ec3n SQL? Ch\u00fac m\u1eebng, b\u1ea1n \u0111\u00e3 \u0111\u1ebfn \u0111\u00fang ch\u1ed7. B\u1ed9 <strong>c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL<\/strong> n\u00e0y s\u1ebd gi\u00fap b\u1ea1n c\u1ea3i thi\u1ec7n c\u00e1c k\u1ef9 n\u0103ng SQL c\u1ee7a m\u00ecnh, l\u1ea5y l\u1ea1i s\u1ef1 t\u1ef1 tin v\u00e0 s\u1eb5n s\u00e0ng cho c\u00f4ng vi\u1ec7c! M\u1ed7i c\u00e2u h\u1ecfi \u0111i k\u00e8m v\u1edbi m\u1ed9t c\u00e2u tr\u1ea3 l\u1eddi \u0111\u1ea7y \u0111\u1ee7 v\u00e0 chi ti\u1ebft nh\u1ea5t \u0111\u01b0\u1ee3c Masterskills t\u1ed5ng h\u1ee3p. H\u00e3y c\u00f9ng ch\u00fang m\u00ecnh t\u00ecm hi\u1ec3u ngay sau \u0111\u00e2y!<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-gi\u1ea3i-thich-m\u1ec7nh-d\u1ec1-with-trong-sql\"><strong>Gi\u1ea3i th\u00edch m\u1ec7nh \u0111\u1ec1 WITH trong SQL?<\/strong><\/h2>\n<p><strong>C\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL<\/strong> n\u00e0y ki\u1ec3m tra hi\u1ec3u bi\u1ebft c\u1ee7a b\u1ea1n v\u1ec1 m\u1ed9t trong nh\u1eefng m\u1ec7nh \u0111\u1ec1 ph\u1ed5 bi\u1ebfn nh\u1ea5t trong SQL. M\u1ec7nh \u0111\u1ec1 WITH cung c\u1ea5p c\u00e1ch m\u1ed9t m\u1ed1i quan h\u1ec7 x\u00e1c \u0111\u1ecbnh m\u1ed9t m\u1ed1i quan h\u1ec7 t\u1ea1m th\u1eddi, m\u00e0 \u0111\u1ecbnh ngh\u0129a c\u1ee7a n\u00f3 ch\u1ec9 c\u00f3 s\u1eb5n cho truy v\u1ea5n m\u00e0 m\u1ec7nh \u0111\u1ec1 WITH x\u1ea3y ra. SQL \u00e1p d\u1ee5ng c\u00e1c v\u1ecb t\u1eeb trong m\u1ec7nh \u0111\u1ec1 WITH sau khi c\u00e1c nh\u00f3m (cluster) \u0111\u00e3 \u0111\u01b0\u1ee3c h\u00ecnh th\u00e0nh, nh\u1edd \u0111\u00f3 c\u00e1c h\u00e0m t\u1ed5ng h\u1ee3p c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-hay-gi\u1ea3i-thich-th\u1ebf-nao-la-tinh-toan-v\u1eb9n-c\u1ee7a-d\u1eef-li\u1ec7u\"><strong>H\u00e3y gi\u1ea3i th\u00edch th\u1ebf n\u00e0o l\u00e0 t\u00ednh to\u00e0n v\u1eb9n c\u1ee7a d\u1eef li\u1ec7u<\/strong><\/h2>\n<p>T\u00ednh to\u00e0n v\u1eb9n c\u1ee7a d\u1eef li\u1ec7u x\u00e1c \u0111\u1ecbnh \u0111\u1ed9 ch\u00ednh x\u00e1c c\u0169ng nh\u01b0 t\u00ednh nh\u1ea5t qu\u00e1n c\u1ee7a d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong c\u01a1 s\u1edf d\u1eef li\u1ec7u. N\u00f3 c\u0169ng x\u00e1c \u0111\u1ecbnh c\u00e1c r\u00e0ng bu\u1ed9c to\u00e0n v\u1eb9n \u0111\u1ec3 th\u1ef1c thi c\u00e1c quy t\u1eafc kinh doanh tr\u00ean d\u1eef li\u1ec7u khi n\u00f3 \u0111\u01b0\u1ee3c nh\u1eadp v\u00e0o m\u1ed9t \u1ee9ng d\u1ee5ng ho\u1eb7c c\u01a1 s\u1edf d\u1eef li\u1ec7u n\u00e0o kh\u00e1c.<\/p>\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/masterskills.org\/blog\/wp-content\/uploads\/\/12\/database.jpg\" alt=\"c\u00e1c c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n sql\" class=\"wp-image-32454\" width=\"500\" title=\"database\"><figcaption class=\"wp-element-caption\">T\u00ednh to\u00e0n v\u1eb9n c\u1ee7a d\u1eef li\u1ec7u<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\" id=\"h-sql-co-h\u1ed7-tr\u1ee3-cac-tinh-nang-c\u1ee7a-ngon-ng\u1eef-l\u1eadp-trinh-khong\"><strong>SQL c\u00f3 h\u1ed7 tr\u1ee3 c\u00e1c t\u00ednh n\u0103ng c\u1ee7a ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00f4ng?<\/strong><\/h2>\n<p>\u0110\u00e2y l\u00e0 c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL t\u01b0\u01a1ng \u0111\u1ed1i ph\u1ed5 bi\u1ebfn. SQL \u0111\u1ec1 c\u1eadp \u0111\u1ebfn Ng\u00f4n ng\u1eef truy v\u1ea5n ti\u00eau chu\u1ea9n. Do \u0111\u00f3, SQL l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef nh\u01b0ng kh\u00f4ng th\u1ef1c s\u1ef1 h\u1ed7 tr\u1ee3 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh. \u0110\u00f3 l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef ph\u1ed5 bi\u1ebfn kh\u00f4ng c\u00f3 v\u00f2ng l\u1eb7p, c\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n v\u00e0 ph\u00e9p to\u00e1n logic.\u00a0<\/p>\n<p>SQL kh\u00f4ng th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho b\u1ea5t c\u1ee9 \u0111i\u1ec1u g\u00ec kh\u00e1c ngo\u00e0i thao t\u00e1c d\u1eef li\u1ec7u. N\u00f3 l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1ec7nh \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c ho\u1ea1t \u0111\u1ed9ng c\u01a1 s\u1edf d\u1eef li\u1ec7u. M\u1ee5c \u0111\u00edch ch\u00ednh c\u1ee7a SQL l\u00e0 truy xu\u1ea5t, thao t\u00e1c, c\u1eadp nh\u1eadt, x\u00f3a v\u00e0 th\u1ef1c hi\u1ec7n c\u00e1c thao t\u00e1c ph\u1ee9c t\u1ea1p nh\u01b0 n\u1ed1i tr\u00ean d\u1eef li\u1ec7u c\u00f3 trong database.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-sql-va-mysql-la-gi\"><strong>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa SQL v\u00e0 MySQL l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>L\u1ea1i m\u1ed9t d\u1ea1ng c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL th\u01b0\u1eddng g\u1eb7p kh\u00e1c. SQL l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef ti\u00eau chu\u1ea9n \u0111\u1ec3 truy xu\u1ea5t v\u00e0 thao t\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac. Ng\u01b0\u1ee3c l\u1ea1i, MySQL l\u00e0 m\u1ed9t h\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7, gi\u1ed1ng nh\u01b0 SQL Server, Oracle ho\u1eb7c IBM DB2, \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 qu\u1ea3n l\u00fd c\u01a1 s\u1edf d\u1eef li\u1ec7u SQL.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-cac-rang-bu\u1ed9c-constraints-trong-sql-la-gi\"><strong>C\u00e1c r\u00e0ng bu\u1ed9c (Constraints) trong SQL l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>C\u00e1c r\u00e0ng bu\u1ed9c (Constraints) \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1c quy t\u1eafc li\u00ean quan \u0111\u1ebfn d\u1eef li\u1ec7u trong b\u1ea3ng. N\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng cho m\u1ed9t ho\u1eb7c nhi\u1ec1u tr\u01b0\u1eddng trong m\u1ed9t b\u1ea3ng SQL trong qu\u00e1 tr\u00ecnh t\u1ea1o b\u1ea3ng ho\u1eb7c sau khi t\u1ea1o b\u1eb1ng l\u1ec7nh ALTER TABLE. C\u00e1c r\u00e0ng bu\u1ed9c bao g\u1ed3m:<\/p>\n<ul>\n<li>NOT NULL \u2013 H\u1ea1n ch\u1ebf gi\u00e1 tr\u1ecb NULL \u0111\u01b0\u1ee3c ch\u00e8n v\u00e0o m\u1ed9t c\u1ed9t.<\/li>\n<li>CHECK \u2013 X\u00e1c minh r\u1eb1ng t\u1ea5t c\u1ea3 c\u00e1c gi\u00e1 tr\u1ecb trong m\u1ed9t tr\u01b0\u1eddng \u0111\u1ec1u th\u1ecfa m\u00e3n m\u1ed9t \u0111i\u1ec1u ki\u1ec7n.<\/li>\n<li>DEFAULT \u2013 T\u1ef1 \u0111\u1ed9ng g\u00e1n gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh n\u1ebfu kh\u00f4ng c\u00f3 gi\u00e1 tr\u1ecb n\u00e0o \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh cho tr\u01b0\u1eddng.<\/li>\n<li>UNIQUE \u2013 \u0110\u1ea3m b\u1ea3o c\u00e1c gi\u00e1 tr\u1ecb duy nh\u1ea5t \u0111\u01b0\u1ee3c ch\u00e8n v\u00e0o tr\u01b0\u1eddng.<\/li>\n<li>INDEX \u2013 L\u1eadp ch\u1ec9 m\u1ee5c m\u1ed9t tr\u01b0\u1eddng gi\u00fap truy xu\u1ea5t b\u1ea3n ghi nhanh h\u01a1n.<\/li>\n<li>PRIMARY KEY \u2013 X\u00e1c \u0111\u1ecbnh duy nh\u1ea5t m\u1ed7i b\u1ea3n ghi trong m\u1ed9t b\u1ea3ng.<\/li>\n<li>FOREIGN KEY \u2013 \u0110\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n tham chi\u1ebfu cho m\u1ed9t b\u1ea3n ghi trong m\u1ed9t b\u1ea3ng kh\u00e1c.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-khoa-chinh-primary-key-la-gi\"><strong>Kh\u00f3a ch\u00ednh (Primary Key) l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>Kh\u00f3a ch\u00ednh (Primary Key) l\u00e0 m\u1ed9t trong c\u00e1c kh\u00f3a \u1ee9ng c\u1eed vi\u00ean. Ch\u1ec9 c\u00f3 m\u1ed9t trong c\u00e1c kh\u00f3a \u1ee9ng c\u1eed vi\u00ean \u0111\u01b0\u1ee3c ch\u1ecdn l\u00e0 quan tr\u1ecdng nh\u1ea5t v\u00e0 tr\u1edf th\u00e0nh kh\u00f3a ch\u00ednh. Kh\u00f4ng th\u1ec3 c\u00f3 nhi\u1ec1u h\u01a1n m\u1ed9t kh\u00f3a ch\u00ednh trong m\u1ed9t b\u1ea3ng.<\/p>\n<p>R\u00e0ng bu\u1ed9c PRIMARY KEY x\u00e1c \u0111\u1ecbnh duy nh\u1ea5t m\u1ed7i h\u00e0ng trong b\u1ea3ng. N\u00f3 ph\u1ea3i ch\u1ee9a c\u00e1c gi\u00e1 tr\u1ecb UNIQUE v\u00e0 c\u00f3 m\u1ed9t r\u00e0ng bu\u1ed9c ng\u1ea7m NOT NULL. M\u1ed9t b\u1ea3ng trong SQL b\u1ecb h\u1ea1n ch\u1ebf nghi\u00eam ng\u1eb7t \u0111\u1ec3 c\u00f3 m\u1ed9t v\u00e0 ch\u1ec9 m\u1ed9t kh\u00f3a ch\u00ednh, bao g\u1ed3m m\u1ed9t ho\u1eb7c nhi\u1ec1u tr\u01b0\u1eddng (c\u1ed9t).<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-ki\u1ec3u-d\u1eef-li\u1ec7u-char-va-varchar2-trong-sql-la-gi\"><strong>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa ki\u1ec3u d\u1eef li\u1ec7u CHAR v\u00e0 VARCHAR2 trong SQL l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>C\u1ea3 hai ki\u1ec3u d\u1eef li\u1ec7u n\u00e0y \u0111\u1ec1u \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho c\u00e1c k\u00fd t\u1ef1, nh\u01b0ng varchar2 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho c\u00e1c chu\u1ed7i k\u00fd t\u1ef1 c\u00f3 \u0111\u1ed9 d\u00e0i thay \u0111\u1ed5i, trong khi char \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho c\u00e1c chu\u1ed7i k\u00fd t\u1ef1 c\u00f3 \u0111\u1ed9 d\u00e0i c\u1ed1 \u0111\u1ecbnh.\u00a0<\/p>\n<p>V\u00ed d\u1ee5: n\u1ebfu ch\u00fang ta ch\u1ec9 \u0111\u1ecbnh ki\u1ec3u l\u00e0 char(5) th\u00ec ch\u00fang ta s\u1ebd kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p l\u01b0u tr\u1eef m\u1ed9t chu\u1ed7i c\u00f3 \u0111\u1ed9 d\u00e0i kh\u00e1c trong bi\u1ebfn n\u00e0y, nh\u01b0ng n\u1ebfu ch\u00fang ta ch\u1ec9 \u0111\u1ecbnh ki\u1ec3u c\u1ee7a bi\u1ebfn n\u00e0y l\u00e0 varchar2(5) th\u00ec ch\u00fang ta s\u1ebd \u0111\u01b0\u1ee3c ph\u00e9p l\u01b0u tr\u1eef c\u00e1c chu\u1ed7i c\u00f3 \u0111\u1ed9 d\u00e0i thay \u0111\u1ed5i. Ch\u1eb3ng h\u1ea1n nh\u01b0 ch\u00fang ta c\u00f3 th\u1ec3 l\u01b0u tr\u1eef m\u1ed9t chu\u1ed7i c\u00f3 \u0111\u1ed9 d\u00e0i 3 ho\u1eb7c 4 ho\u1eb7c 2 trong bi\u1ebfn n\u00e0y.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-khoa-chinh-primary-key-va-cac-rang-bu\u1ed9c-duy-nh\u1ea5t-unique-constraints-la-gi\"><strong>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa kh\u00f3a ch\u00ednh (Primary Key) v\u00e0 c\u00e1c r\u00e0ng bu\u1ed9c duy nh\u1ea5t (Unique Constraints) l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>Kh\u00f3a ch\u00ednh (Primary Key) kh\u00f4ng th\u1ec3 c\u00f3 gi\u00e1 tr\u1ecb NULL, c\u00e1c r\u00e0ng bu\u1ed9c duy nh\u1ea5t (Unique Constraints) c\u00f3 th\u1ec3 c\u00f3 gi\u00e1 tr\u1ecb NULL. Ch\u1ec9 c\u00f3 m\u1ed9t kh\u00f3a ch\u00ednh trong m\u1ed9t b\u1ea3ng, nh\u01b0ng c\u00f3 th\u1ec3 c\u00f3 nhi\u1ec1u r\u00e0ng bu\u1ed9c duy nh\u1ea5t. Kh\u00f3a ch\u00ednh t\u1ea1o ch\u1ec9 m\u1ee5c nh\u00f3m t\u1ef1 \u0111\u1ed9ng nh\u01b0ng kh\u00f3a duy nh\u1ea5t th\u00ec kh\u00f4ng.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-phep-n\u1ed1i-join-trong-sql-la-gi-li\u1ec7t-ke-cac-lo\u1ea1i-join-ph\u1ed5-bi\u1ebfn\"><strong>Ph\u00e9p n\u1ed1i (join) trong SQL l\u00e0 g\u00ec?<\/strong><strong> Li\u1ec7t k\u00ea c\u00e1c lo\u1ea1i join ph\u1ed5 bi\u1ebfn<\/strong><\/h2>\n<p>C\u00e1c ph\u00e9p n\u1ed1i (join) SQL \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 truy xu\u1ea5t d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u b\u1ea3ng th\u00e0nh m\u1ed9t t\u1eadp h\u1ee3p k\u1ebft qu\u1ea3 c\u00f3 \u00fd ngh\u0129a. N\u00f3 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n b\u1ea5t c\u1ee9 khi n\u00e0o b\u1ea1n c\u1ea7n t\u00ecm n\u1ea1p c\u00e1c b\u1ea3n ghi t\u1eeb hai b\u1ea3ng tr\u1edf l\u00ean. Ch\u00fang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u1edbi c\u00e2u l\u1ec7nh SELECT v\u00e0 \u0111i\u1ec1u ki\u1ec7n n\u1ed1i.<\/p>\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/masterskills.org\/blog\/wp-content\/uploads\/\/12\/join-1024x1024-1.jpg\" alt=\"c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n sql\" class=\"wp-image-32455\" width=\"500\" title=\"join-1024x1024-1\"><figcaption class=\"wp-element-caption\">Join trong SQL<\/figcaption><\/figure>\n<p>C\u00e1c ph\u00e9p n\u1ed1i (join) \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn nh\u1ea5t trong SQL bao g\u1ed3m:<\/p>\n<ul>\n<li>INNER JOIN<\/li>\n<li>LEFT OUTER JOIN<\/li>\n<li>RIGHT OUTER JOIN<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-index-la-gi\"><strong>Index l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>Index hay ch\u1ec9 m\u1ee5c l\u00e0 ch\u1ee7 \u0111\u1ec1 \u0111\u01b0\u1ee3c khai th\u00e1c r\u1ea5t nhi\u1ec1u trong c\u00e1c c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL. Index l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac \u0111\u0129a \u0111\u01b0\u1ee3c li\u00ean k\u1ebft v\u1edbi m\u1ed9t b\u1ea3ng ho\u1eb7c d\u1ea1ng xem gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 truy xu\u1ea5t h\u00e0ng. N\u00f3 l\u00e0m gi\u1ea3m chi ph\u00ed c\u1ee7a truy v\u1ea5n v\u00ec chi ph\u00ed cao c\u1ee7a truy v\u1ea5n s\u1ebd d\u1eabn \u0111\u1ebfn gi\u1ea3m hi\u1ec7u su\u1ea5t c\u1ee7a n\u00f3.\u00a0<\/p>\n<p>Index \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u0103ng hi\u1ec7u su\u1ea5t v\u00e0 cho ph\u00e9p truy xu\u1ea5t c\u00e1c b\u1ea3n ghi t\u1eeb b\u1ea3ng nhanh h\u01a1n. L\u1eadp ch\u1ec9 m\u1ee5c l\u00e0m gi\u1ea3m s\u1ed1 l\u01b0\u1ee3ng trang d\u1eef li\u1ec7u m\u00e0 ch\u00fang ta c\u1ea7n truy c\u1eadp \u0111\u1ec3 t\u00ecm m\u1ed9t trang d\u1eef li\u1ec7u c\u1ee5 th\u1ec3. N\u00f3 c\u0169ng c\u00f3 m\u1ed9t gi\u00e1 tr\u1ecb duy nh\u1ea5t ngh\u0129a l\u00e0 index kh\u00f4ng th\u1ec3 tr\u00f9ng l\u1eb7p. Ch\u1ec9 m\u1ee5c t\u1ea1o m\u1ee5c nh\u1eadp cho t\u1eebng gi\u00e1 tr\u1ecb gi\u00fap truy xu\u1ea5t d\u1eef li\u1ec7u nhanh h\u01a1n.<\/p>\n<p>V\u00ed d\u1ee5: Gi\u1ea3 s\u1eed ch\u00fang ta c\u00f3 m\u1ed9t cu\u1ed1n s\u00e1ch ch\u1ee9a th\u00f4ng tin chi ti\u1ebft v\u1ec1 c\u00e1c qu\u1ed1c gia. N\u1ebfu b\u1ea1n mu\u1ed1n t\u00ecm hi\u1ec3u th\u00f4ng tin v\u1ec1 \u1ea4n \u0110\u1ed9, b\u1ea1n s\u1ebd l\u1eadt gi\u1edf t\u1eebng trang s\u00e1ch cho \u0111\u1ebfn khi n\u00e0o t\u00ecm \u0111\u01b0\u1ee3c \u1ea4n \u0110\u1ed9? Kh\u00f4ng, b\u1ea1n c\u00f3 th\u1ec3 tr\u1ef1c ti\u1ebfp t\u00ecm \u0111\u01b0\u1ee3c \u1ea4n \u0110\u1ed9 nh\u1edd v\u00e0o index. T\u1eeb index, b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp trang c\u1ee5 th\u1ec3, n\u01a1i cung c\u1ea5p t\u1ea5t c\u1ea3 th\u00f4ng tin v\u1ec1 \u1ea4n \u0110\u1ed9.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-qua-trinh-normalization-la-gi\"><strong>Qu\u00e1 tr\u00ecnh normalization l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>Qu\u00e1 tr\u00ecnh normalization \u0111\u1ea1i di\u1ec7n cho c\u00e1ch t\u1ed5 ch\u1ee9c d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac trong database m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. N\u00f3 bao g\u1ed3m vi\u1ec7c t\u1ea1o c\u00e1c b\u1ea3ng, thi\u1ebft l\u1eadp c\u00e1c m\u1ed1i quan h\u1ec7 gi\u1eefa ch\u00fang v\u00e0 x\u00e1c \u0111\u1ecbnh c\u00e1c quy t\u1eafc cho c\u00e1c m\u1ed1i quan h\u1ec7 \u0111\u00f3. S\u1ef1 kh\u00f4ng nh\u1ea5t qu\u00e1n v\u00e0 d\u01b0 th\u1eeba c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ki\u1ec3m tra d\u1ef1a tr\u00ean c\u00e1c quy t\u1eafc n\u00e0y, do \u0111\u00f3, gi\u00fap th\u00eam t\u00ednh linh ho\u1ea1t cho c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-denormalization-la-gi\"><strong>Denormalization l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>Denormalization l\u00e0 qu\u00e1 tr\u00ecnh chu\u1ea9n h\u00f3a ng\u01b0\u1ee3c, trong \u0111\u00f3 l\u01b0\u1ee3c \u0111\u1ed3 chu\u1ea9n h\u00f3a \u0111\u01b0\u1ee3c chuy\u1ec3n \u0111\u1ed5i th\u00e0nh l\u01b0\u1ee3c \u0111\u1ed3 c\u00f3 th\u00f4ng tin d\u01b0 th\u1eeba. Hi\u1ec7u su\u1ea5t \u0111\u01b0\u1ee3c c\u1ea3i thi\u1ec7n b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng d\u1ef1 ph\u00f2ng v\u00e0 gi\u1eef cho d\u1eef li\u1ec7u d\u1ef1 ph\u00f2ng nh\u1ea5t qu\u00e1n. L\u00fd do \u0111\u1ec3 th\u1ef1c hi\u1ec7n normalization l\u00e0 chi ph\u00ed ho\u1ea1t \u0111\u1ed9ng \u00edt h\u01a1n \u0111\u01b0\u1ee3c t\u1ea1o ra trong b\u1ed9 x\u1eed l\u00fd truy v\u1ea5n b\u1edfi m\u1ed9t c\u1ea5u tr\u00fac \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a qu\u00e1 m\u1ee9c.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-truy-v\u1ea5n-query-la-gi\"><strong>Truy v\u1ea5n (Query) l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>M\u1ed9t truy v\u1ea5n SQL \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u1ea5y d\u1eef li\u1ec7u c\u1ea7n thi\u1ebft t\u1eeb c\u01a1 s\u1edf d\u1eef li\u1ec7u. Tuy nhi\u00ean, c\u00f3 th\u1ec3 c\u00f3 nhi\u1ec1u truy v\u1ea5n SQL mang l\u1ea1i k\u1ebft qu\u1ea3 gi\u1ed1ng nhau nh\u01b0ng v\u1edbi m\u1ee9c \u0111\u1ed9 hi\u1ec7u qu\u1ea3 kh\u00e1c nhau.\u00a0<\/p>\n<p>M\u1ed9t truy v\u1ea5n kh\u00f4ng hi\u1ec7u qu\u1ea3 c\u00f3 th\u1ec3 l\u00e0m c\u1ea1n ki\u1ec7t t\u00e0i nguy\u00ean c\u01a1 s\u1edf d\u1eef li\u1ec7u, gi\u1ea3m t\u1ed1c \u0111\u1ed9 c\u01a1 s\u1edf d\u1eef li\u1ec7u ho\u1eb7c d\u1eabn \u0111\u1ebfn m\u1ea5t d\u1ecbch v\u1ee5 cho nh\u1eefng ng\u01b0\u1eddi d\u00f9ng kh\u00e1c. V\u00ec v\u1eady, \u0111i\u1ec1u r\u1ea5t quan tr\u1ecdng l\u00e0 t\u1ed1i \u01b0u h\u00f3a truy v\u1ea5n \u0111\u1ec3 c\u00f3 \u0111\u01b0\u1ee3c hi\u1ec7u su\u1ea5t c\u01a1 s\u1edf d\u1eef li\u1ec7u t\u1ed1t nh\u1ea5t.<\/p>\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/masterskills.org\/blog\/wp-content\/uploads\/\/12\/query-1024x685-1.jpeg\" alt=\"c\u00e1c c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n sql\" class=\"wp-image-32456\" width=\"500\" title=\"query-1024x685-1\"><figcaption class=\"wp-element-caption\">Query<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\" id=\"h-unique-key-la-gi\"><strong>Unique Key l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>Unique Key l\u00e0 m\u1ed9t ho\u1eb7c m\u1ed9t t\u1ed5 h\u1ee3p c\u00e1c tr\u01b0\u1eddng \u0111\u1ea3m b\u1ea3o t\u1ea5t c\u1ea3 c\u00e1c gi\u00e1 tr\u1ecb \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong c\u1ed9t s\u1ebd l\u00e0 duy nh\u1ea5t. N\u00f3 c\u00f3 ngh\u0129a l\u00e0 m\u1ed9t c\u1ed9t kh\u00f4ng th\u1ec3 l\u01b0u tr\u1eef c\u00e1c gi\u00e1 tr\u1ecb tr\u00f9ng l\u1eb7p. Kh\u00f3a n\u00e0y cung c\u1ea5p t\u00ednh duy nh\u1ea5t cho c\u1ed9t ho\u1eb7c t\u1eadp h\u1ee3p c\u1ed9t.\u00a0<\/p>\n<p>V\u00ed d\u1ee5: \u0111\u1ecba ch\u1ec9 email v\u00e0 s\u1ed1 th\u1ee9 t\u1ef1 c\u1ee7a m\u1ed7i sinh vi\u00ean ph\u1ea3i l\u00e0 duy nh\u1ea5t. SQL c\u00f3 th\u1ec3 ch\u1ea5p nh\u1eadn m\u1ed9t gi\u00e1 tr\u1ecb null nh\u01b0ng ch\u1ec9 m\u1ed9t gi\u00e1 tr\u1ecb null tr\u00ean m\u1ed7i c\u1ed9t. Unique Key gi\u00fap \u0111\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n c\u1ee7a c\u1ed9t ho\u1eb7c nh\u00f3m c\u1ed9t \u0111\u1ec3 l\u01b0u tr\u1eef c\u00e1c gi\u00e1 tr\u1ecb kh\u00e1c nhau v\u00e0o m\u1ed9t b\u1ea3ng.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-s\u1ef1-khac-bi\u1ec7t-gi\u1eefa-clustered-va-non-clustered-la-gi\"><strong>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa Clustered v\u00e0 Non-clustered l\u00e0 g\u00ec?<\/strong><\/h2>\n<p>C\u00e1c ch\u1ec9 m\u1ee5c \u0111\u01b0\u1ee3c nh\u00f3m (Clustered Index) l\u00e0 c\u00e1c ch\u1ec9 m\u1ee5c c\u00f3 th\u1ee9 t\u1ef1 c\u1ee7a c\u00e1c h\u00e0ng trong c\u01a1 s\u1edf d\u1eef li\u1ec7u t\u01b0\u01a1ng \u1ee9ng v\u1edbi th\u1ee9 t\u1ef1 c\u1ee7a c\u00e1c h\u00e0ng trong ch\u1ec9 m\u1ee5c. \u0110\u00e2y l\u00e0 l\u00fd do t\u1ea1i sao ch\u1ec9 c\u00f3 m\u1ed9t ch\u1ec9 m\u1ee5c \u0111\u01b0\u1ee3c nh\u00f3m c\u00f3 th\u1ec3 t\u1ed3n t\u1ea1i trong m\u1ed9t b\u1ea3ng nh\u1ea5t \u0111\u1ecbnh, trong khi \u0111\u00f3, nhi\u1ec1u ch\u1ec9 m\u1ee5c kh\u00f4ng \u0111\u01b0\u1ee3c nh\u00f3m c\u00f3 th\u1ec3 t\u1ed3n t\u1ea1i trong b\u1ea3ng.<\/p>\n<p>S\u1ef1 kh\u00e1c bi\u1ec7t duy nh\u1ea5t gi\u1eefa c\u00e1c ch\u1ec9 m\u1ee5c \u0111\u01b0\u1ee3c nh\u00f3m v\u00e0 kh\u00f4ng \u0111\u01b0\u1ee3c nh\u00f3m (non-clustered) l\u00e0 tr\u00ecnh qu\u1ea3n l\u00fd c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ed1 g\u1eafng gi\u1eef d\u1eef li\u1ec7u trong database theo c\u00f9ng th\u1ee9 t\u1ef1 nh\u01b0 c\u00e1c kh\u00f3a t\u01b0\u01a1ng \u1ee9ng xu\u1ea5t hi\u1ec7n trong ch\u1ec9 m\u1ee5c \u0111\u01b0\u1ee3c nh\u00f3m.<\/p>\n<p>C\u00e1c ch\u1ec9 m\u1ee5c ph\u00e2n c\u1ee5m c\u00f3 th\u1ec3 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t c\u1ee7a h\u1ea7u h\u1ebft c\u00e1c ho\u1ea1t \u0111\u1ed9ng truy v\u1ea5n v\u00ec ch\u00fang cung c\u1ea5p \u0111\u01b0\u1eddng d\u1eabn truy c\u1eadp tuy\u1ebfn t\u00ednh t\u1edbi d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-k\u1ebft\"><strong>K\u1ebft\u00a0<\/strong><\/h2>\n<p>V\u1eady l\u00e0 Masterskills \u0111\u00e3 c\u00f9ng b\u1ea1n t\u00ecm hi\u1ec3u c\u00e1c <strong>c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL<\/strong> th\u01b0\u1eddng g\u1eb7p nh\u1ea5t c\u00f9ng m\u1ed9t s\u1ed1 g\u1ee3i \u00fd tr\u1ea3 l\u1eddi. B\u1ea1n ho\u00e0n to\u00e0n c\u00f3 th\u1ec3 th\u00eam m\u1ed9t v\u00e0i v\u00ed d\u1ee5 nh\u1ecf cho t\u1eebng c\u00e2u tr\u1ea3 l\u1eddi \u0111\u1ec3 ng\u01b0\u1eddi ph\u1ecfng v\u1ea5n th\u1ea5y \u0111\u01b0\u1ee3c kinh nghi\u1ec7m th\u1ef1c t\u1ebf c\u1ee7a b\u1ea3n th\u00e2n. N\u1ebfu c\u1ea3m th\u1ea5y h\u1ee9ng th\u00fa v\u1edbi c\u00e1c ch\u1ee7 \u0111\u1ec1 t\u01b0\u01a1ng t\u1ef1, h\u00e3y gh\u00e9 qua Blog c\u1ee7a Masterskills \u0111\u1ec3 t\u00ecm \u0111\u1ecdc th\u00eam nhi\u1ec1u n\u1ed9i dung th\u00fa v\u1ecb kh\u00e1c nh\u00e9!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>B\u1ea1n \u0111ang chu\u1ea9n b\u1ecb cho cu\u1ed9c ph\u1ecfng v\u1ea5n cho v\u1ecb tr\u00ed nh\u00e0 ph\u00e1t tri\u1ec3n SQL? Ch\u00fac m\u1eebng, b\u1ea1n \u0111\u00e3 \u0111\u1ebfn \u0111\u00fang ch\u1ed7. B\u1ed9 c\u00e2u h\u1ecfi ph\u1ecfng v\u1ea5n SQL n\u00e0y s\u1ebd gi\u00fap b\u1ea1n c\u1ea3i thi\u1ec7n c\u00e1c k\u1ef9 n\u0103ng SQL c\u1ee7a m\u00ecnh, l\u1ea5y l\u1ea1i s\u1ef1 t\u1ef1 tin v\u00e0 s\u1eb5n s\u00e0ng cho c\u00f4ng vi\u1ec7c! M\u1ed7i c\u00e2u h\u1ecfi \u0111i [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[181],"tags":[],"_links":{"self":[{"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/posts\/50262"}],"collection":[{"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/comments?post=50262"}],"version-history":[{"count":0,"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/posts\/50262\/revisions"}],"wp:attachment":[{"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/media?parent=50262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/categories?post=50262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/masterskills.org\/blog\/wp-json\/wp\/v2\/tags?post=50262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}