<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Khung nhìn VIEW trong SQL</title>
<meta name="description" content="Khung nhìn VIEW trong SQL - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;khung-nhin-view-trong-sql-9025.html">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Khung nhìn VIEW trong SQL">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;khung-nhin-view-trong-sql-9025.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/khung-nhin-view-trong-sql-9025.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/khung-nhin-view-trong-sql-9025.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Khung nhìn VIEW trong SQL</h1>
		<ul class="list-inline">
			<li>Thứ năm - 19/09/2024 23:33</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Khung nhìn VIEW trong SQL" src="https://st.quantrimang.com/photos/image/2019/03/14/menh-de-inner-join-200-size-80x80-znd.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;"><strong>Create View trong SQL</strong>&nbsp;là gì?&nbsp;<strong>Cách tạo view trong SQL</strong>&nbsp;như thế nào? Hãy cùng Quantrimang.com tìm hiểu mọi điều cần biết về&nbsp;<strong>view trong SQL</strong>&nbsp;nhé!</p>

<p style="text-align: justify;">Ngôn ngữ truy vấn có cấu trúc (Structured Query Language = SQL) sử dụng nhiều cấu trúc dữ liệu khác nhau, trong đó bảng là một cấu trúc được sử dụng phổ biến nhất. Tuy nhiên, các bảng có những hạn chế nhất định. Chẳng hạn, bạn không thể giới hạn người dùng chỉ có quyền truy cập vào một phần của bảng. Người dùng phải được cấp quyền truy cập vào toàn bộ bảng, không chỉ một vài cột trong đó.</p>

<p style="text-align: justify;">Một ví dụ khác, giả sử bạn muốn kết hợp dữ liệu từ nhiều bảng khác vào một cấu trúc mới, nhưng lại không muốn xóa các bảng gốc. Bạn chỉ có thể tạo một bảng khác, tuy nhiên, sau đó bạn sẽ có dữ liệu dư thừa được lưu trữ ở nhiều nơi. Điều này có thể gây ra nhiều bất tiện: nếu một số dữ liệu của bạn thay đổi, bạn sẽ phải cập nhật dữ liệu đó ở nhiều nơi. Trong những trường hợp như thế này, cách tạo view trong SQL sẽ hữu ích.</p>

<p style="text-align: justify;">Trong SQL,&nbsp;<strong>một khung nhìn VIEW</strong>&nbsp;là một bảng ảo trong cơ sở dữ liệu có nội dung được định nghĩa thông qua một câu lệnh SQL nào đó. Một VIEW bao gồm các hàng và cột giống như một bảng thực. Các trường trong một khung nhìn là các trường từ một hoặc nhiều bảng thực trong Database.</p>

<p style="text-align: justify;">Điểm khác biệt giữa khung nhìn VIEW và bảng là VIEW không được xem là một cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở dữ liệu. Thực chất dữ liệu quan sát được trong VIEW được lấy từ các bảng thông qua câu lệnh truy vấn dữ liệu và được sử dụng để hạn chế truy cập cơ sở dữ liệu hoặc để ẩn dữ liệu phức tạp.</p>

<div style="text-align: justify;">&nbsp;</div>

<p style="text-align: justify;">Ở bài viết này, Quantrimang sẽ hướng dẫn chi tiết cho bạn cách sử dụng VIEW trong SQL với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt lệnh tốt hơn.</p>

<h2 style="text-align: justify;">Tạo VIEW trong SQL</h2>

<p style="text-align: justify;">VIEW được tạo ra bởi&nbsp;<strong>câu lệnh CREATE VIEW</strong>. Các VIEW có thể được tạo từ một bảng đơn, nhiều bảng hoặc từ VIEW khác.</p>

<p style="text-align: justify;">Cú pháp cơ bản của lệnh CREATE VIEW trong SQL như sau:</p>

<pre id="pre0" style="text-align: justify;">
CREATE VIEW ten_view ASSELECT cot1, cot2.....FROM ten_bangWHERE &#91;dieu_kien&#93;;</pre>

<p style="text-align: justify;">Bạn có thể thêm nhiều bảng trong&nbsp;câu lệnh SELECT&nbsp;tương tự như cách sử dụng chúng trong một truy vấn SQL SELECT bình thường.</p>

<h2 style="text-align: justify;">Ví dụ về VIEW trong SQL</h2>

<p style="text-align: justify;">Giả sử bảng&nbsp;<em>NHANVIEN</em>&nbsp;có các bản ghi như sau:</p>

<pre id="pre1" style="text-align: justify;">
 +----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  2 | Loan     |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Manh     |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+</pre>

<p style="text-align: justify;">Sau đây là một ví dụ để tạo một VIEW từ bảng&nbsp;<em>NHANVIEN.</em>&nbsp;VIEW này được sử dụng để lấy tên và tuổi từ bảng&nbsp;<em>NHANVIEN.</em></p>

<pre id="pre2" style="text-align: justify;">
SQL &gt; CREATE VIEW NHANVIEN_VIEW ASSELECT ten, tuoiFROM NHANVIEN;</pre>

<p style="text-align: justify;">Bây giờ, bạn có thể truy vấn&nbsp;<em>NHANVIEN_VIEW</em>&nbsp;theo cách tương tự như bạn truy vấn bảng thực tế, ví dụ:</p>

<pre id="pre3" style="text-align: justify;">
SQL &gt; SELECT * FROM NHANVIEN_VIEW;</pre>

<p style="text-align: justify;">Lệnh trên trả về kết quả:</p>

<pre id="pre4" style="text-align: justify;">
 +----------+-----+
| ten      | tuoi|
+----------+-----+
| Thanh    |  32 |
| Loan     |  25 |
| Nga      |  23 |
| Manh     |  25 |
| Huy      |  27 |
| Cao      |  22 |
| Lam      |  24 |
+----------+-----+
</pre>

<h2 style="text-align: justify;">Tùy chọn WITH CHECK OPTION trong SQL</h2>

<p style="text-align: justify;"><strong>WITH CHECK OPTION</strong>&nbsp;là một tùy chọn của lệnh CREATE VIEW. Mục đích của WITH CHECK OPTION là bảo đảm rằng tất cả&nbsp;<a href="https://quantrimang.com/hoc/lenh-update-trong-sql-143766" title="Lệnh UPDATE trong SQL">UPDATE</a>&nbsp;và&nbsp;<a href="https://quantrimang.com/hoc/lenh-insert-trong-sql-143753" title="Lệnh INSERT trong SQL">INSERT</a>&nbsp;thỏa mãn các điều kiện trong định nghĩa VIEW.</p>

<p style="text-align: justify;">Nếu chúng không thỏa mãn các điều kiện, UPDATE và INSERT sẽ trả về một lỗi.</p>

<div style="text-align: justify;"><iframe allow="autoplay" allowtransparency="true" aria-label="Advertisement" data-google-container-id="a!3" data-google-query-id="CMbJvJzL0IgDFQAHewcd6j0WUg" data-load-complete="true" frameborder="0" height="0" hspace="0" id="aswift_2" marginheight="0" marginwidth="0" name="aswift_2" sandbox="allow-scripts allow-same-origin allow-forms allow-presentation allow-popups" scrolling="no" tabindex="0" title="Advertisement" vspace="0" width="694"></iframe></div>

<p style="text-align: justify;">Ví dụ sau tạo ra view&nbsp;<em>NHANVIEN_VIEW</em>&nbsp;với tùy chọn WITH CHECK OPTION.</p>

<pre id="pre5" style="text-align: justify;">
CREATE VIEW NHANVIEN_VIEW ASSELECT ten, tuoiFROM NHANVIENWHERE tuoi IS NOT NULLWITH CHECK OPTION;</pre>

<p style="text-align: justify;">Trong trường hợp này, nếu bạn cố gắng UPDATE hoặc INSERT&nbsp;<em>NHANVIEN_VIEW</em>&nbsp;với giá trị&nbsp;<em>tuoi = null</em>&nbsp;thì sẽ xảy ra lỗi, còn nếu tuoi khác NULL thì UPDATE hoặc INSERT sẽ thành công.</p>

<h2 style="text-align: justify;">UPDATE một VIEW trong SQL</h2>

<p style="text-align: justify;">Một VIEW có thể được cập nhật dưới các điều kiện cụ thể sau:</p>

<ul>
	<li style="text-align: justify;">Mệnh đề SELECT không được chứa từ khoá DISTINCT.</li>
	<li style="text-align: justify;">Mệnh đề SELECT không được chứa các hàm tổng.</li>
	<li style="text-align: justify;">Mệnh đề SELECT không được chứa các hàm tập hợp.</li>
	<li style="text-align: justify;">Mệnh đề SELECT không được chứa các biểu thức tính toán.</li>
	<li style="text-align: justify;">Mệnh đề SELECT không được chứa mệnh đề ORDER BY.</li>
	<li style="text-align: justify;">Mệnh đề FROM không được chứa nhiều bảng.</li>
	<li style="text-align: justify;">Mệnh đề WHERE&nbsp;không được chứa các truy vấn con.</li>
	<li style="text-align: justify;">Truy vấn không chứa&nbsp;GROUP BY&nbsp;hoặc&nbsp;HAVING.</li>
	<li style="text-align: justify;">Các cột được ước lượng không thể được update.</li>
	<li style="text-align: justify;">Tất cả các cột NOT NULL từ bảng ban đầu phải được select trong VIEW để truy vấn INSERT hoạt động.</li>
</ul>

<p style="text-align: justify;">Vì vậy, nếu một VIEW thỏa mãn tất cả các quy tắc trên thì bạn có thể sử dụng&nbsp;<strong>câu lệnh UPDATE</strong>&nbsp;cho VIEW đó. Ví dụ sau cập nhật&nbsp;<em>tuoi</em>&nbsp;cho nhân viên có tên là&nbsp;<em>Thanh.</em></p>

<pre id="pre6" style="text-align: justify;">
SQL &gt; UPDATE NHANVIEN_VIEW SET AGE = 35 WHERE ten = &#039;Thanh&#039;;</pre>

<p style="text-align: justify;">Cuối cùng, bảng&nbsp;<em>NHANVIEN</em>&nbsp;ban đầu được update và theo đó VIEW được cập nhật. Bây giờ, thử truy vấn bảng ban đầu và lệnh SELECT sẽ cho kết quả:</p>

<pre id="pre7" style="text-align: justify;">
 +----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  35 | Haiphong  |  2000.00 |
|  2 | Loan     |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Manh     |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  6 | Cao      |  22 | HCM       |  4500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+</pre>

<h2 style="text-align: justify;">Chèn hàng vào VIEW trong SQL</h2>

<p style="text-align: justify;">Các hàng dữ liệu có thể được chèn vào trong một VIEW. Các quy tắc tương tự UPDATE cũng áp dụng cho<strong>&nbsp;lệnh INSERT</strong>.</p>

<p style="text-align: justify;">Ở đây không thể chèn hàng vào trong&nbsp;<em>NHANVIEN_VIEW</em>&nbsp;bởi ta không select tất cả các cột NOT NULL từ bảng ban đầu vào trong VIEW. Chúng ta chèn các hàng vào trong một VIEW theo cách tương tự khi bạn chèn chúng vào trong một bảng.</p>

<h2 style="text-align: justify;">Xóa hàng từ VIEW trong SQL</h2>

<p style="text-align: justify;">Các hàng dữ liệu có thể bị xóa khỏi một VIEW. Các quy tắc tương tự UPDATE và INSERT cũng áp dụng cho<strong>&nbsp;lệnh DELETE</strong>&nbsp;trong SQL.</p>

<p style="text-align: justify;">Ví dụ sau sẽ xóa một hàng có<em>&nbsp;TUOI = 22</em>:</p>

<pre id="pre8" style="text-align: justify;">
SQL &gt; DELETE FROM NHANVIEN_VIEW WHERE tuoi = 22;</pre>

<p style="text-align: justify;">Kết quả một hàng trong bảng&nbsp;<em>NHANVIEN</em>&nbsp;ban đầu sẽ bị xóa và kết quả tương tự với chính VIEW đó. Bây giờ, thử truy vấn bảng ban đầu, và lệnh SELECT sẽ cho kết quả:</p>

<div style="text-align: justify;">&nbsp;</div>

<pre id="pre9" style="text-align: justify;">
 +----+----------+-----+-----------+----------+
| ID | TEN      |TUOI | DIACHI    | LUONG    |
+----+----------+-----+-----------+----------+
|  1 | Thanh    |  32 | Haiphong  |  2000.00 |
|  2 | Loan     |  25 | Hanoi     |  1500.00 |
|  3 | Nga      |  23 | Hanam     |  2000.00 |
|  4 | Manh     |  25 | Hue       |  6500.00 |
|  5 | Huy      |  27 | Hatinh    |  8500.00 |
|  7 | Lam      |  24 | Hanoi     | 10000.00 |
+----+----------+-----+-----------+----------+</pre>

<h2 style="text-align: justify;">Xóa VIEW trong SQL</h2>

<p style="text-align: justify;">Bạn có thể xóa VIEW nếu nó không còn cần thiết. Cú pháp như sau:</p>

<pre id="pre10" style="text-align: justify;">
DROP VIEW ten_view;</pre>

<p style="text-align: justify;">Ví dụ xóa view&nbsp;<em>NHANVIEN_VIEW</em>&nbsp;từ bảng ban đầu:</p>

<pre id="pre11" style="text-align: justify;">
DROP VIEW NHANVIEN_VIEW;</pre>

<h2 style="text-align: justify;">Những cách sử dụng View phổ biến trong SQL</h2>

<p style="text-align: justify;">Một database tốt sẽ chứa các view vì những lí do sau đây:</p>

<ul>
	<li style="text-align: justify;">Giới hạn truy cập dữ liệu - Trình xem cung cấp một cấp độ bảo mật bảng bổ sung bằng cách hạn chế truy cập tới một nhóm hàng và cột của bảng được xác định trước.</li>
	<li style="text-align: justify;">Ẩn độ phức tạp của dữ liệu - Một trình xem có thể ẩn độ phức tạp hiện có ở nhiều bảng liên quan tới nhau.</li>
	<li style="text-align: justify;">Đơn giản hóa lệnh cho người dùng - Cửa sổ xem cho phép người dùng chọn thông tin từ nhiều bảng mà không cần người dùng phải thực sự biết cách triển khai một kết nối.</li>
	<li style="text-align: justify;">Lưu trữ các truy vấn phức tạp - Trình xem có thể được dùng để lưu trữ các truy vấn phức tạp.</li>
	<li style="text-align: justify;">Đổi lại tên cột - Trình xem cũng có thể được dùng để đổi lại tên cột với điều kiện số cột trong chế độ xem phải khớp với số cột được chỉ định trong câu lệnh chọn. Như vậy, việc đổi tên giúp ẩn tên các cột của bảng cơ sở.</li>
	<li style="text-align: justify;">Hỗ trợ nhiều chế độ xem - Các trình xem khác nhau có thể được tạo trên cùng bảng cho người dùng khác nhau.</li>
</ul>

<p style="text-align: justify;">Trong phần tiếp theo, chúng ta sẽ tìm hiểu về<strong>&nbsp;cách sử dụng mệnh đề HAVING trong SQL</strong>, các bạn nhớ theo dõi nhé.</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com:
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/khung-nhin-view-trong-sql-9025.html" title="Khung nhìn VIEW trong SQL">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/khung-nhin-view-trong-sql-9025.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>