Showing posts with label Lập trinh-Thiết kế web. Show all posts
Showing posts with label Lập trinh-Thiết kế web. Show all posts
Mar 23, 2013
Dec 11, 2012
Kỹ thuật lập trình đệ quy
KỸ THUẬT LẬP TRÌNH ĐỆ QUY
Down và upload theo yêu cầu tại facebook https://www.facebook.com/groups/175388102598925/
Bài giảng chi tiết, hình ảnh đẹp, hi vọng sẻ giúp ích rất nhiều cho các bạn
Nội dung: Tổng quan về đệ quy, Các vấn đề đệ quy thông dụng, Phân tích giải thuật & khử đệ quy, Các bài toán kinh điển. Tài liệu giảng dạy về lập trình đã được giảng dạy với mục đích cung cấp cho sinh viên những kiến thức cơ bản nhất, có tính hệ thống liên quan tới lập trình. Thông qua cuốn tài liệu này,...
Nếu bạn thấy bài viết này hay và có ích với bạn hãy nhấn nhấn "Thank" và chia sẻ bài viết này nhé
Down và upload theo yêu cầu tại facebook https://www.facebook.com/groups/175388102598925/
Bài giảng chi tiết, hình ảnh đẹp, hi vọng sẻ giúp ích rất nhiều cho các bạn
Nội dung: Tổng quan về đệ quy, Các vấn đề đệ quy thông dụng, Phân tích giải thuật & khử đệ quy, Các bài toán kinh điển. Tài liệu giảng dạy về lập trình đã được giảng dạy với mục đích cung cấp cho sinh viên những kiến thức cơ bản nhất, có tính hệ thống liên quan tới lập trình. Thông qua cuốn tài liệu này,...
Download : http://www.mediafire.com/?xjmjshgq73375h6
Nếu bạn thấy bài viết này hay và có ích với bạn hãy nhấn nhấn "Thank" và chia sẻ bài viết này nhé
Sep 12, 2012
JCreator Pro 4.5 Full + Key -công cụ lập trình Java
Jreator là công cụ lập trình cho người mới làm quen với Java..đây là công cụ khá hiệu quả và dễ sử dụng..Với Jcreator bạn có thể tạo Java Applet, Java Source, JSP,..., và Biên dịch thành file Rar
Hoặc
Nếu bạn thấy bài viết này hay và có ích với bạn hãy nhấn nhấn "Thank" và chia sẻ bài viết này nhé
Download : Download JCreator Pro 4.5 Full (5.49MB)
Hoặc
Download : Download JCreator Pro 4.5 Full (8.8MB)
Download : Download JCreator Pro 3.5 Full (3.76MB)
Nếu bạn thấy bài viết này hay và có ích với bạn hãy nhấn nhấn "Thank" và chia sẻ bài viết này nhé
Jul 16, 2012
Bảng mã màu
Hôm nay kdh xin giới thiệu cho các bạn Bảng mã màu tùy biến rất dễ dàng, rất tiện lợi....hết chổ chê :)
Jul 5, 2012
CSS3 for web designer
From advanced selectors to generated content to the triumphant return of web fonts, and from gradients, shadows, and rounded corners to full-blown animations, CSS3 is a universe of creative possibilities. No one can better guide you through these galaxies than world-renowned designer, author, and CSS superstar Dan Cederholm. Learn what works, how it works, and how to work around browsers where it doesn't work.
[DOWNLOAD] http://www.mediafire.com/?ltp76kmqxk5tvxh
[DOWNLOAD] http://www.mediafire.com/?ltp76kmqxk5tvxh
Jul 2, 2012
Hướng dẫn sử dụng Google Analytics (tiếng Việt)

Ebook hướng dẫn sử dụng Google Analytics (tiếng Việt)
Google Analytics là công cụ online được Google tạo ra nhằm hướng dẫn webmaster làm chủ website của mình với các số liệu và thống kê trực quan. Hầu hết các webmaster hiện nay đã và đang sử dụng công cụ này để theo dõi hoạt động website của mình, nhưng liệu bạn đã nắm vững hoàn toàn công cụ hữu ích này chưa ? Đâu là những điểm đáng lưu tâm để tận dụng được hiệu quả số liệu do Google Analytics cung cấp?
Cuốn Ebook mà bạn sắp download bên dưới đây sẽ là câu trả lời cho rất nhiều câu hỏi ở trên, Ebook tiếng Việt nên khá dễ đọc và dễ hiểu cho những bạn từ mới làm quen với Google Analytics đến các master.
Jun 25, 2012
[ Video ] Lập trình mobile trên Google Android
Google Android là một nền tảng mã mở trên Java được thiết kế cho thiết bị di động, đang thu hút được nhiều hãng mobile lớn sản xuất thiết bị trên nền tảng này, cùng một cộng động các nhà phát triển đông đảo trên toàn thế giới cùng xây dựng các ứng dụng trên đó. Với mục đích mang lại kiến thức về nền tảng đang rất được quan tâm này, Hôm nay mình xin giới thiệu đến các bạn khóa học Lập TrìnhTrên Google Android của Anh Đinh Chí Thành.Không chỉ những nhà lập trình chuyên nghiệp mới biết đến Google! Đã từ lâu, cái tên Google trở nên quen thuộc với bất kỳ ai trên thế giới với các dịch vụ, sản phẩm nổi tiếng của mình như Google Search, Gmail, GDocs…Với những người yêu thích công nghệ di động thì Google Android, 1 nền tảng lập trình ứng dụng cho các thiết bị di động mới ra mắt của Google, là một trong những nền tảng thu hút nhất. Với sự ra đời liên tiếp các dòng điện thoại di động thông minh (smart phone) trên nền tảng Android từ các hãng sản xuất điện thoại danh tiếng nhất thế giới như Nokia, HTC, Samsung, LG, Sony Ericssons, Motorola…, Google Android ngày càng đóng một vai trò quan trọng hơn trong lĩnh vực thiết bị di động.
Google Android, được phát triển bởi Google, dựa trên nền tảng Java, là một nền tảng mã mở và thiết kế cho thiết bị di động, đến nay đã thu hút được không những rất nhiều hãng công nghệ lớn trong việc tạo ra các thiết bị chạy trên nền tảng này, mà còn tạo được một cộng đồng các nhà phát triển đông đảo trên toàn thế giới cùng nhau xây dựng các ứng dụng trên đó.
Bài 1 – Giới thiệu về lập trình trên Mobile và lập trình trên Android: Giới thiệu về các dòng thiết bị di động và các nền tảng phần mền hiện có, đặc thù của ứng dụng mobile, sự ra đời của Google Android
Bài 2 – Lập trình với Android SDK(Phần I/GUI/ Active – Intent): Cách sử dụng môi trường phát triển cho Google Android (Eclipse + ADT). Giới thiệu về cấu trúc một chương trình trên Android
Bài 3 – Lập trình với Android SDK (Phần I/GUI/ Layout – Views): Làm việc với các lớp GUI như Layout, View, Dialog, Toast. Xử lý tương tác người dùng
Bài 4 – Lập trình với Android SDK (Phần I/GUI/ Graphic 2D – 3D): Giới thiệu các thư viên đồ họa, cách lập trình 2D, 3D, tương tác đồ họa với người dùng
Bài 5 – Lập trình với Android SDK (Phần II/Data/ Sqlite – saveconfig): Lưu trữ dữ liệu trên thiết bị di động bằng Android
Bài 6 – Lập trình với Android SDK (Phần III/Net/ http – https – tcp/ip): Lập trình ứng dụng Internet trên Android
Bài 7 – Lập trình với Android SDK (Phần III/System/ service – content provider): Lập trình hệ thống trên Android
Bài 8 - Lập trình với Android SDK(Phần III/System/ Thread – Handle): Làm việc với Thread trên Android
Xem video tại đây: http://kenhdaihoc.com/forum/showthread.php?t=5047
Google Android, được phát triển bởi Google, dựa trên nền tảng Java, là một nền tảng mã mở và thiết kế cho thiết bị di động, đến nay đã thu hút được không những rất nhiều hãng công nghệ lớn trong việc tạo ra các thiết bị chạy trên nền tảng này, mà còn tạo được một cộng đồng các nhà phát triển đông đảo trên toàn thế giới cùng nhau xây dựng các ứng dụng trên đó.
Bài 1 – Giới thiệu về lập trình trên Mobile và lập trình trên Android: Giới thiệu về các dòng thiết bị di động và các nền tảng phần mền hiện có, đặc thù của ứng dụng mobile, sự ra đời của Google Android
Bài 2 – Lập trình với Android SDK(Phần I/GUI/ Active – Intent): Cách sử dụng môi trường phát triển cho Google Android (Eclipse + ADT). Giới thiệu về cấu trúc một chương trình trên Android
Bài 3 – Lập trình với Android SDK (Phần I/GUI/ Layout – Views): Làm việc với các lớp GUI như Layout, View, Dialog, Toast. Xử lý tương tác người dùng
Bài 4 – Lập trình với Android SDK (Phần I/GUI/ Graphic 2D – 3D): Giới thiệu các thư viên đồ họa, cách lập trình 2D, 3D, tương tác đồ họa với người dùng
Bài 5 – Lập trình với Android SDK (Phần II/Data/ Sqlite – saveconfig): Lưu trữ dữ liệu trên thiết bị di động bằng Android
Bài 6 – Lập trình với Android SDK (Phần III/Net/ http – https – tcp/ip): Lập trình ứng dụng Internet trên Android
Bài 7 – Lập trình với Android SDK (Phần III/System/ service – content provider): Lập trình hệ thống trên Android
Bài 8 - Lập trình với Android SDK(Phần III/System/ Thread – Handle): Làm việc với Thread trên Android
Xem video tại đây: http://kenhdaihoc.com/forum/showthread.php?t=5047
Code demo của chương trình đào tạo online Lập Trình Trên Android.
Gửi các bạn bộ code demo của chương trình đào tạo online Lập Trình Trên Android.
Chỉ có code của chương 1,4,5,6,7,8 thôi chương 2 và 3 mình không có tìm thấy code.
Code Demo Android Full (163)
Xem video tại đây: http://kenhdaihoc.com/forum/showthread.php?t=5047
Bài 1: http://www.mediafire.com/?0t9s49avhowc126
Bài 4: http://www.mediafire.com/?h4d29p4b3mp7kka
Bài 5: http://www.mediafire.com/?76f5quxkmq9rz1h
Bài 6: http://www.mediafire.com/?sj6zid1l7bq5h8j
Bài 7: http://www.mediafire.com/?m916qomctbsadas
Bài 8: http://www.mediafire.com/?o6w11rd3s3z3iks
[PASSWORD] wWw.kenhdaihoc.com
Xem video tại đây: http://kenhdaihoc.com/forum/showthread.php?t=5047
Bài 1: http://www.mediafire.com/?0t9s49avhowc126
Bài 4: http://www.mediafire.com/?h4d29p4b3mp7kka
Bài 5: http://www.mediafire.com/?76f5quxkmq9rz1h
Bài 6: http://www.mediafire.com/?sj6zid1l7bq5h8j
Bài 7: http://www.mediafire.com/?m916qomctbsadas
Bài 8: http://www.mediafire.com/?o6w11rd3s3z3iks
[PASSWORD] wWw.kenhdaihoc.com
Xem thêm cập nhật http://kenhdaihoc.com/forum/showthread.php?t=5046
Jun 15, 2012
May 23, 2012
Những điểm cần lưu ý khi học một ngôn ngữ lập trình
Tại sao tôi học lập trình?
Nếu mục tiêu của bạn là học để lập trình, hãy tìm những ngôn ngữ dạy các nguyên tắc cơ bản như Lisp (hay Scheme), Ruby hay Smalltalk. Bạn sẽ bỏ qua hầu hết các ngôn ngữ phát triển chính để học một trong các ngôn ngữ mang tính giáo dục hơn, đồng thời tìm một người có thể làm gia sư cho mình.
Nếu bạn đang thử trở thành một lập trình viên giỏi, một ngôn ngữ giáo dục sẽ rất có ích cho bạn. Bên cạnh đó, bạn có thể thử một loại khác, đặc biệt nếu nó có sự biến hóa riêng không giống như cái bạn đang sử dụng.
Nếu bạn đang tạo lập sự nghiệp, bạn phải dựa vào quyết định của mình trong cơ chế thị trường. Hãy nhìn những bản tin tìm việc và yêu cầu của nó (loại hình làm viẹc, địa điểm, lương, kinh nghiệm,….). Bạn nên tìm hiểu kỹ tính năng và rèn luyện kỹ năng cho từng loại ngôn ngữ khác nhau. Nếu bạn nghĩ mình sẽ rất cực khổ thì hãy xác định lại mục tiêu của sự nghiệp. Nếu bạn chỉ muốn vui vẻ hay làm các ứng dụng cá nhân, thì hãy học bất cứ cái gì bạn muốn….
Kế hoạch học tập của tôi như thế nào?
Kế hoạch tìm hiểu và phong cách học sẽ ảnh hưởng đến ngôn ngữ mà bạn chọn. Nhiều ngôn ngữ không chính thức có rất ít sách để học. Dù thế nào thì bạn vẫn muốn được cảm giác thoải mái trong cộng đồng trực tuyến của ngôn ngữ, nhưng cũng có vài rắc rối như cách họ chào đón người mới như thế nào, có nhiều câu hỏi không được giải đáp không….. Một ngôn ngữ lập trình có tài liệu nghèo nàn và cộng đồng không hữu ích có thể làm bạn chìm xuống nhanh chóng.
Những bộ công cụ, thư viện và framework nào hỗ trợ cho ngôn ngữ lập trình?
Nhiều người thích làm việc với IDE, số khác cảm thấy thích thú với basic text editor. Dù phong cách của bạn thế nào, thì phải chắc rằng có đủ công cụ để hỗ trợ, bảo đảm các thư viện và framework hỗ trợ cho ứng dụng của bạn. Lấy ví dụ bạn muốn viết một ứng dụng khoa học, việc kiểm tra sự tồn tại các thư viện về toán học sẽ giúp bạn không mất thời gian với các hàm cơ bản.
Tôi đã có kế hoạch chưa?
Nếu bạn đã có ý tưởng sẵn trong đầu, nó sẽ ảnh hưởng đến loại ngôn ngữ lập trình mà bạn chọn, có loại ngôn ngữ sử dụng cho ứng dụng này sẽ tốt hơn những loại khác. Hãy nhìn các ứng dụng gần giống với cái của bạn, và thử tìm ngôn ngữ mà người viết sử dụng cũng như lý do tại sao mà họ lại chọn nó. Từ đó bạn sẽ tự tìm được ngôn ngữ cho mình.
Tôi có sẵn sàng để bắt đầu trên một con đường mà ít người biết đến?
Bạn có thể sử dụng một ngôn ngữ lập trình hoàn toàn mới mẻ. Đối với sự phát triển của cá nhân, đó không là vấn đề, nhưng nhiều môi trường phát triển xem nó là một nguy cơ; đặc biệt trong một những ngôn ngữ này có thể hạn chế lựa chọn nghề nghiệp của bạn sau này, hoặc chủ của bạn không đồng ý để bạn làm việc với các ngôn ngữ này. Ở một mặt khác, mỗi ngôn ngữ bạn học sẽ dạy cho bạn nhiều thứ mới về lập trình, cho dù bạn không sử dụng thường xuyên.
Kết luận
Việc học một ngôn ngữ lập trình mới có thể mang lại phần thưởng là kinh nghiệm, nhưng quan trọng là không lãng phí thời gian của bạn. Việc lựa chọn ngôn ngữ lập trình không phải lúc nào cũng dễ dàng, và có vài thứ mà bạn không thích về nó.Với những lưu ý trên, bạn hãy quyết định đúng đắn ngôn ngữ lập trình nào thích hợp với mục tiêu và yêu cầu của mình.
CTV UITnetwork
Apr 8, 2012
Lập trình hướng đối tượng C [tác giả Sharam Hekmat]
Giáo trình được biên soạn chủ yếu dựa vào giáo trình C++ Programming của tác giả Sharam Hekmat ...
Nội dung giáo trình
Giáo trình được chia thành 9 chương:
Chương 1. Mở đầu
Chương 2. Biểu thức
Chương 3. Lệnh
Chương 4. Hàm
Chương 5. Mảng, con trỏ và tham chiếu
Chương 6. Lập trình hướng đối tượng
Chương 7. Lớp
Chương 8. Tái định nghĩa
Chương 9. Thừa kế
Phụ lục
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3113
Nội dung giáo trình
Giáo trình được chia thành 9 chương:
Chương 1. Mở đầu
Chương 2. Biểu thức
Chương 3. Lệnh
Chương 4. Hàm
Chương 5. Mảng, con trỏ và tham chiếu
Chương 6. Lập trình hướng đối tượng
Chương 7. Lớp
Chương 8. Tái định nghĩa
Chương 9. Thừa kế
Phụ lục
Nguồn: ebook.moet.gov.vn
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3113
Apr 5, 2012
Biểu thức ALTER TABLE trong SQL Sever
SQL ALTER TABLE
Biểu thức ALTER TABLE dùng để thay đổi các giá trị trong tables.
Cú pháp:Lưu ý : Một vài hệ thống database ko cho phép drop trực tiếp các cột trong table. (DROP COLUMN column_name)
Table Persons
Thêm vào 1 cột trong table Persons
Kết quả
Drop cột Address
Kết quả![]()
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Lệnh CREATE trong SQL sever
QL CREATE
Giả sử tạo ra bảng “Person” với các cột “LastName”, “FirstName”, “Address”, and “Age”![]()
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Toán tử IN trong SQL sever
SQL IN
Toán tử IN có thể được sử dụng nếu bạn biết chính xác giá trị mà bạn muốn trả về trong ít nhất một cột.
Cú pháp:

Table Persons
Câu lệnh sau Select và hiển thị table Persons với LastName = “Hansen” hoặc “Pettersen”

Kết quả

Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Toán tử IN có thể được sử dụng nếu bạn biết chính xác giá trị mà bạn muốn trả về trong ít nhất một cột.
Cú pháp:
Table Persons
Câu lệnh sau Select và hiển thị table Persons với LastName = “Hansen” hoặc “Pettersen”
Kết quả
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Lệnh AND & OR trong SQL sever
SQL AND & OR
AND và OR dùng nối 2 hoặc nhiều điều kiện trong một mệnh đề WHERE.
Toán tử AND hiển thị số hàng nếu tất cả điều kiện trong danh sách đều đúng (true).
Toán tử OR hiển thị số hàng nếu một vài điều kiện trong danh sách đúng (true).
Table Person
Sử dụng AND để hiển thị những giá trị trong table person với FirstName =”Tove” ,và LastName =”Svendson”
Kết quả
Tương tự với toán tử OR ta sẽ dùng hiển thị FirstName và LastName như trên, nhưng đây là câu điều kiện hoặc lên sẽ show ra FirstName=”Tove” hoặc LastName =”Svendson” mà trong table Persons có 2 người FirstName là ‘Svendson’ nên ta sẽ nhận được 2
Kết quả
Hoặc ta có thể kết hợp cả 2 toán tử AND và OR để ra được kết quả trên (sử dụng biểu thức sẽ phức tạp hơn)
Kết quả![]()
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Lệnh UPDATE trong SQL sever
SQL UPDATE Statement
Dùng để thay đổi dữ liệu của bảng.
Cú pháp:
Bảng PERSON
Ta sẽ update thêm FirstName ‘Nina’ vào hàng có LastName là Rasmussen
Kết quả:
UPDATE nhiều hơn các cột trong 1 hàng :
Bây giờ ta muốn thay đổi address và thêm tên vào trong cột City :
Kết quả:![]()
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Lệnh INSERT INTO trong SQL sever
SQL INSERT INTO StatementCú pháp:


Insert Row
Ví dụ ta có bảng sau
Bảng PERSONS

Câu lệnh Insert hàng như sau:

Kết quả:

Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Insert Row
Ví dụ ta có bảng sau
Bảng PERSONS
Câu lệnh Insert hàng như sau:
Kết quả:
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3067
Apr 2, 2012
Một số câu lệnh trong SQL mình sưu tầm được
Để tìm cho nhanh bạn nhấn Ctrl+F và nhập lện cần tìm 
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3040
1) Trên cơ sở dữ liệu (database)
Các phiên bản của SQL Server: Enterprise, Personal, Desktop, Developer,..
Các bộ phận của SQL Server: Enterprise Manager, Query Analyzer, Books Online,..
Các loại tập tin của SQL Server: data file (primary, secondary), log file
Các loại cơ sở dữ liệu của SQL Server: system database, user database
create database: tạo cơ sở dữ liệu
create database HoSoSinhVien
create database HoSoSinhVien
on (name=’HSSV_data’, filename=’c:\HSSV_data.mdf’)
log on (name=’HSSV_log’, filename=’c:\HSSV_log.ldf’)
drop database: xóa cơ sở dữ liệu
drop database HoSoSinhVien
alter database: sửa các thông tin của cơ sở dữ liệu
alter database HoSoSinhVien
modify name = HSSV
exec sp_dboption: sửa các thông tin của cơ sở dữ liệu
exec sp_dboption HoSoSinhVien, ‘read only’, ‘true’
exec sp_dboption HoSoSinhVien, ‘autoshrink’, ‘true’
exec sp_dboption HoSoSinhVien, ‘single_user’
dbcc: điều khiển cơ sở dữ liệu
dbcc shrinkdatabase(HoSoSinhVien, 10)
2) Trên bảng (table)
Nhớ các kiểu số liệu: text, binary, numberic, money, datetime, bit, variant
Nhớ các các ràng buộc: default, check, unique, foreign, primary
Nhớ các kiểu toàn vẹn: entity, domain, referential, user
Nhớ các thuộc tính bổ trợ: identity, null
create table: tạo bảng
Tạo bảng với các cột
create table SinhVien (
MaSV int,
TenSV nchar(50)
)
Tạo với các ràng buộc
create table SinhVien (
MaSV int primary key,
TenSV nvarchar(50) not null,
QueQuan int references DiaPhuong(MaDP)
)
drop table: xóa bảng
drop table SinhVien
alter table..add: thêm cột
Thêm cột bằng cách dùng lệnh alter table
alter table SinhVien
add QueQuan int
alter table..drop column: xóa cột
alter table SinhVien
drop column QueQuan
alter table..alter column: thêm thuộc tính not null
alter table SinhVien
alter column TenSV nchar(50) not null
alter table..add primary key: thêm khóa chính
Thêm ràng buộc khóa chính cần phải biến một cột null thành not null trước khi thêm. Nếu để lệnh chuyển đổi thuộc tính not null ngay cạnh lệnh thêm khóa chính thì phải chèn từ khóa go vào vì có thể lệnh trên chưa được thực hiện do đó lệnh dưới báo lỗi
alter table SinhVien
alter column MaSV int not null
go
alter table SinhVien
add primary key (MaSV)
alter table..add foreign key: thêm ràng buộc khóa ngoài
alter table SinhVien
add foreign key (QueQuan) references DiaPhuong(MaDP)
alter table..add default: thêm ràng buộc mặc định
alter table SinhVien
add default 'khong ten' for TenSV
exec sp_help: xem thông tin bảng
exec sp_help SinhVien
3) Trên bản ghi (record)
Nhớ thêm phần biểu thức điều kiện
Nhớ thêm phần ký tự thay thế
insert..values: thêm các bản ghi vào bảng
insert into SinhVien (MaSV, TenSV, QueQuan)
values (1, N’Nguyễn Văn A’, 1)
insert..select: thêm các bản ghi từ bảng khác vào bảng
insert into DocGia
select MaSV, TenSV, QueQuan from SinhVien
insert into DocGia
select MaGV, TenGV, QueQuan from GiaoVien
select..into: đưa kết quả lựa chọn vào bảng mới
select MaSV, TenSV, Diem
into SinhVienKha
from SinhVien
where Diem > 7.0
delete: xóa các bản ghi từ bảng
delete from SinhVien
delete from SinhVien where MaSV=1234
truncate: xóa toàn bộ bản ghi của bảng
truncate table SinhVien
update: sửa các bản ghi trong bảng
update SinhVien
set NhomTruong = 1
where MaSV < 4
update SinhVien
set NhomTruong = 4
where (MaSV > 3 and MaSV < 8)
4) Truy vấn (query)
Hỗ trợ truy vấn: distinct, top, as, identity
Phép toán tập hợp: in, like, between
Các hàm tổng nhóm: sum, max, min, avg
4.1) Truy vấn đơn giản
select *: Hiện tất cả bảng
select *
from SinhVien
select: Hiện một số cột
select TenSV, DiemTB
from SinhVien
select..where: Hiện một số dòng / bản ghi
select TenSV, DiemTB
from SinhVien
where DiemTB > 6.0
select..order by: Hiện và sắp xếp theo điểm rồi theo tên
select TenSV, DiemTB
from SinhVien
order by DiemTB desc, TenSV asc
select..distinct: Hiện danh sách giá trị không trùng lặp
select distinct QueQuan
from SinhVien
select..top: Hiện các dòng đầu tiên trong bảng
select top 3 TenSV, DiemTB
from SinhVien
order by DiemTB desc, TenSV asc
4.2) Truy vấn lồng nhau (nested query)
select..where (select)
Hiện tất cả những người trong bảng nhân viên có lương bằng lương lớn nhất của những người có trong công ty:
select TenNV, Luong
from NhanVien
where Luong = (select max(Luong) from NhanVien)
select..where (in)
Hiện tất cả những người trong bảng nhân viên có lương lớn nhất hoặc lớn nhì của những người có trong công ty:.
select TenNV, Luong
from NhanVien
where Luong in (select top 2 Luong from NhanVien order by Luong)
Câu lệnh select trong sẽ tạo ra một tập hai giá trị (top 2) đó là lương lớn nhất và lương lớn nhì. Và câu lệnh select thứ nhất sẽ chọn ra những người mà lương nằm trong tập lớn nhất và lớn nhì
select..where (in sub)
Hiện ra tất cả những người có lương lớn nhất phòng của anh ta (không phải lớn nhất trong công ty mà lớn nhất trong phòng hoặc đơn vị mà anh ta thuộc về)
select nv1.TenNV, nv1.Luong
from NhanVien as nv1
where nv1.Luong = (select max(Luong) from NhanVien where Phong=nv1.Phong)
Câu lệnh select trong sẽ trả về giá trị lương lớn nhất nhưng không phải lớn nhất trong toàn công ty mà lớn nhất trong phòng của nv1. Sau đó câu lệnh select ngoài cùng sẽ xác định xem nv1 có được chọn không bằng cách kiểm tra lương anh ta với lương lớn nhất của phòng anh ta.
4.3) Truy vấn tổng nhóm (subtotal query / grouping query)
select..group by: Thống kê theo tiêu chí
Hiện ra số lượng các nhân viên ứng với từng quê
select QueQuan, count(*)
from NhanVien
group by QueQuan
Đếm số nam và số nữ trong công ty
select GioiTinh, count(*)
from NhanVien
group by GioiTinh
Tính tổng thu nhập theo từng phòng
select Phong, sum(Luong)
from NhanVien
group by Phong
select..having: Hiện ra một số nhóm phù hợp
Chỉ đếm số lượng người ở Hải Phòng và số lượng người ở Hà nội
select QueQuan, count(*)
from NhanVien
group by QueQuan
having (QueQuan = ‘HP’, QueQuan = ‘HN’)
Chỉ hiện ra những phòng nào có tổng thu nhập lớn hơn 500000
select Phong, sum(Luong)
from NhanVien
group by Phong
having sum(Luong) > 5000000
Chỉ hiện ra những tỉnh nào có số lượng người lớn hơn 10
select QueQuan, count(*)
from NhanVien
group by QueQuan
having count(*) > 10
4.4) Truy vấn liên bảng (cross table query / joining query)
select..inner join: ghép các cặp bản ghi thỏa mãn điều kiện
Ghép bảng nhân viên và hiện ra tên nhân viên và tên địa phương
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien inner join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..left outer join: lấy tất cả phía trái và ghép (nếu có) với phải
Lấy tất cả những nhân viên kể cả những nhân viên có quê quán không hợp lệ (nghĩa là mã quê quán không có trong bảng địa phương)
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..right outer join: lấy tất cả phía phải và ghép (nếu có) với phía trái
Lấy tất cả những địa phương ghép với nhân viên, các địa phương không hợp lệ sẽ được ghép với bộ dữ liệu rỗng. Không hiện ra các nhân viên không có mã quê quán phù hợp
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..full outer join: lấy từ hai phía và ghép nếu có
Lấy tất cả những nhân viên (nếu không có quê quán phù hợp thì ghép với bộ dữ liệu rỗng) và tất cả những địa phương kể cả không có nhân viên.
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..cross join: trả về tất cả các cặp có thể ghép
Ghép từng nhân viên với tất cả các địa phương. Như vậy nếu có m nhân viên và có n địa phương thì bảng đích sẽ có m*n dòng. n dòng đầu cho nhân viên thứ nhất ghép với các địa phương. n dòng sau cho nhân viên thứ hai ghép với các địa phương. và tiếp tục như thế tới nhân viên thứ m.
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien cross join DiaPhuong
ref: Tham khảo thêm một số lệnh
Xem tất cả các CƠ SỞ DỮ LIỆU người dùng trong MÁY CHỦ
Mỗi khi một cơ sở dữ liệu được tạo ra, bảng sysdatabase trong cơ sở dữ liệu master sẽ chứa thông tin về bảng mới tạo ra đó. Do vậy chúng ta có thể liệt kê tất cả các cơ sở dữ liệu trong một máy chủ bằng cách liệt kê các bản ghi trong bảng sysdatabase
select *
from master.dbo.sysdatabases
where sid <> 1
Xem tất cả các BẢNG người dùng trong CƠ SỞ DỮ LIỆU
Mỗi khi một bảng được tạo ra trong một cơ sở dữ liệu, thông tin về bảng đó sẽ được chứa trong bảng sysobjects của chính cơ sở dữ liệu chứa bảng vừa tạo. Vì vậy chúng ta có thể xem danh sách các bảng trong cơ sở dữ liệu bằng cách truy vấn bảng sysobjects. Các bảng do người dùng tạo có kiểu là ‘U’
select *
from Northwind.dbo.sysobjects
where xtype='U'
Trong ví dụ này, chúng ta lấy tất cả các bản ghi bảng sysobjects của cơ sở dữ liệu Northwind nhưng chỉ lấy những bảng người dùng, nghĩa là những bảng có xtype là ‘U’
Xem tất cả các CỘT thuộc về một BẢNG
Mỗi khi một cột trong bảng được tạo, bảng syscolumns trong cơ sở dữ liệu sẽ chứa thông tin về cột vừa tạo. Thuộc tính id của cột sẽ chứa định danh của bảng mà cột đó thuộc về. Vì vậy để xem các cột trong một bảng dữ liệu, chúng ta có thể truy vấn bảng syscolumns
declare @x int
set @x = (select id from sysobjects where name='Employees')
select * from syscolumns where id = @x
Trong ví dụ này, ta khai báo biến @x kiểu int, sau đó lấy id của bảng Employees vào biến @x, rồi ta lấy tất cả các cột trong bảng syscolumns mà có id bằng @x, cũng có nghĩa là id của bảng Employees. Do vậy ta sẽ liệt kê được tất cả các cột trong bảng Employees
Sử dụng bảng tạm
Khai báo bảng, cập nhật bảng, và hiện bảng
declare @x table(MaSV int, TenSV nvarchar(20))
insert into @x values(1, N'Thưởng')
insert into @x values(2, N'Yến')
select * from @x
Khai báo bảng, tải bảng khác từ trong cơ sở dữ liệu lên bảng vừa khai báo, và hiện bảng
declare @x table(MaSV int, TenSV nvarchar(20))
insert into @x
select EmployeeID, firstname
from Northwind.dbo.Employees
select * from @x
Sử dụng biến tạm
declare @t money
set @t = (select max(UnitPrice) from Northwind.dbo.products)
select * from Northwind.dbo.products where UnitPrice >= @t
ref: Các khái niệm cơ bản của cơ sở dữ liệu
Các mô hình dữ liệu (data model)
+ Mô hình thứ bậc (hierarchical)
+ Mô hình mạng lưới (network)
+ Mô hình quan hệ (relational)
Các vấn đề của lưu trữ
+ Sự dư thừa (redundance)
+ Sự nhất quán (consistence)
+ Tính toàn vẹn (integrity)
+ Sự an toàn (security)
+ Sự chia sẻ (sharing)
Các khái niệm cơ bản
+ Cơ sở dữ liệu (database)
+ Bảng (table) hoặc quan hệ (relation)
+ Bản ghi (record) hoặc dòng (row) hoặc bộ (tuple)
+ Trường (field) hoặc cột (column)
+ Mối quan hệ (relationship) được biểu hiện bằng bảng (table) hoặc khóa (key)
Mối quan hệ giữa các
+ Tại sao phải lưu mối quan hệ
+ Phương pháp lưu các mối quan hệ (dùng khóa, dùng bảng)
+ Khóa chính (primary key) và khóa ngoài (foreign key)
+ Vấn đề toàn vẹn tham chiếu (referential integrity)
Ngôn ngữ định nghĩa và xử lý dữ liệu
+ Thao tác trên các đối tượng như cơ sở dữ liệu, bảng, cột
+ Phần định nghĩa cơ sở dữ liệu và bảng: create, drop, alter
+ Phần cập nhật dữ liệu: insert, delete, update
+ Phần truy vấn dữ liệu: join, union, projection, selection, sort, group
+ Phần lập trình và thao tác: declare, set, use, go
ref: Liên quan tới định nghĩa bảng
Các vấn đề về toàn vẹn dữ liệu
+ Toàn vẹn thực thể (entity integrity): primary key, unique, identity
+ Toàn vẹn tham chiếu (referential integrity): foreign key, check
+ Toàn vẹn miền dữ liệu (domain integrity): default, foreign key, check, not null
+ Toàn vẹn người dùng (user integrity): rules, stored procedures, triggers
Các hỗ trợ với toàn vẹn
+ Ràng buộc kiểm tra (check constraint): phải thỏa mãn điều kiện nào đó
+ Ràng buộc mặc định (default constraint): phải có một giá trị mặc định
+ Ràng buộc duy nhất (unique constraint): các giá trị trong cột không được trùng lặp
+ Ràng buộc khóa ngoài (foreign key constraint): các giá trị phải hợp lệ với cột khóa chính tương ứng
+ Ràng buộc khóa chính (primary key constraint): phải duy nhất và không trống
+ Thuộc tính định danh (identity property): có thể được tăng tự động
+ Thuộc tính không trống (not null property): không được phép để trống
Các kiểu dữ liệu
Giá trị nhị phân: bit
Các số nguyên: bigint, int, smallint, tinyint
Các số thực xấp xỉ: float, real
Giá trị số thực chính xác: decimal, numberic
Giá trị tiền tệ: money, smallmoney
Giá trị hời gian: datetime, smalldatetime
Các chuỗi: char, varchar, text, nchar, nvarchar, ntext,
Các chuỗi nhị phân: binary, varbinary, image
Các kiểu khác: cursor, table, variant, timestamp, uniqueidentifier
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3040
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3040
1) Trên cơ sở dữ liệu (database)
Các phiên bản của SQL Server: Enterprise, Personal, Desktop, Developer,..
Các bộ phận của SQL Server: Enterprise Manager, Query Analyzer, Books Online,..
Các loại tập tin của SQL Server: data file (primary, secondary), log file
Các loại cơ sở dữ liệu của SQL Server: system database, user database
create database: tạo cơ sở dữ liệu
create database HoSoSinhVien
create database HoSoSinhVien
on (name=’HSSV_data’, filename=’c:\HSSV_data.mdf’)
log on (name=’HSSV_log’, filename=’c:\HSSV_log.ldf’)
drop database: xóa cơ sở dữ liệu
drop database HoSoSinhVien
alter database: sửa các thông tin của cơ sở dữ liệu
alter database HoSoSinhVien
modify name = HSSV
exec sp_dboption: sửa các thông tin của cơ sở dữ liệu
exec sp_dboption HoSoSinhVien, ‘read only’, ‘true’
exec sp_dboption HoSoSinhVien, ‘autoshrink’, ‘true’
exec sp_dboption HoSoSinhVien, ‘single_user’
dbcc: điều khiển cơ sở dữ liệu
dbcc shrinkdatabase(HoSoSinhVien, 10)
2) Trên bảng (table)
Nhớ các kiểu số liệu: text, binary, numberic, money, datetime, bit, variant
Nhớ các các ràng buộc: default, check, unique, foreign, primary
Nhớ các kiểu toàn vẹn: entity, domain, referential, user
Nhớ các thuộc tính bổ trợ: identity, null
create table: tạo bảng
Tạo bảng với các cột
create table SinhVien (
MaSV int,
TenSV nchar(50)
)
Tạo với các ràng buộc
create table SinhVien (
MaSV int primary key,
TenSV nvarchar(50) not null,
QueQuan int references DiaPhuong(MaDP)
)
drop table: xóa bảng
drop table SinhVien
alter table..add: thêm cột
Thêm cột bằng cách dùng lệnh alter table
alter table SinhVien
add QueQuan int
alter table..drop column: xóa cột
alter table SinhVien
drop column QueQuan
alter table..alter column: thêm thuộc tính not null
alter table SinhVien
alter column TenSV nchar(50) not null
alter table..add primary key: thêm khóa chính
Thêm ràng buộc khóa chính cần phải biến một cột null thành not null trước khi thêm. Nếu để lệnh chuyển đổi thuộc tính not null ngay cạnh lệnh thêm khóa chính thì phải chèn từ khóa go vào vì có thể lệnh trên chưa được thực hiện do đó lệnh dưới báo lỗi
alter table SinhVien
alter column MaSV int not null
go
alter table SinhVien
add primary key (MaSV)
alter table..add foreign key: thêm ràng buộc khóa ngoài
alter table SinhVien
add foreign key (QueQuan) references DiaPhuong(MaDP)
alter table..add default: thêm ràng buộc mặc định
alter table SinhVien
add default 'khong ten' for TenSV
exec sp_help: xem thông tin bảng
exec sp_help SinhVien
3) Trên bản ghi (record)
Nhớ thêm phần biểu thức điều kiện
Nhớ thêm phần ký tự thay thế
insert..values: thêm các bản ghi vào bảng
insert into SinhVien (MaSV, TenSV, QueQuan)
values (1, N’Nguyễn Văn A’, 1)
insert..select: thêm các bản ghi từ bảng khác vào bảng
insert into DocGia
select MaSV, TenSV, QueQuan from SinhVien
insert into DocGia
select MaGV, TenGV, QueQuan from GiaoVien
select..into: đưa kết quả lựa chọn vào bảng mới
select MaSV, TenSV, Diem
into SinhVienKha
from SinhVien
where Diem > 7.0
delete: xóa các bản ghi từ bảng
delete from SinhVien
delete from SinhVien where MaSV=1234
truncate: xóa toàn bộ bản ghi của bảng
truncate table SinhVien
update: sửa các bản ghi trong bảng
update SinhVien
set NhomTruong = 1
where MaSV < 4
update SinhVien
set NhomTruong = 4
where (MaSV > 3 and MaSV < 8)
4) Truy vấn (query)
Hỗ trợ truy vấn: distinct, top, as, identity
Phép toán tập hợp: in, like, between
Các hàm tổng nhóm: sum, max, min, avg
4.1) Truy vấn đơn giản
select *: Hiện tất cả bảng
select *
from SinhVien
select: Hiện một số cột
select TenSV, DiemTB
from SinhVien
select..where: Hiện một số dòng / bản ghi
select TenSV, DiemTB
from SinhVien
where DiemTB > 6.0
select..order by: Hiện và sắp xếp theo điểm rồi theo tên
select TenSV, DiemTB
from SinhVien
order by DiemTB desc, TenSV asc
select..distinct: Hiện danh sách giá trị không trùng lặp
select distinct QueQuan
from SinhVien
select..top: Hiện các dòng đầu tiên trong bảng
select top 3 TenSV, DiemTB
from SinhVien
order by DiemTB desc, TenSV asc
4.2) Truy vấn lồng nhau (nested query)
select..where (select)
Hiện tất cả những người trong bảng nhân viên có lương bằng lương lớn nhất của những người có trong công ty:
select TenNV, Luong
from NhanVien
where Luong = (select max(Luong) from NhanVien)
select..where (in)
Hiện tất cả những người trong bảng nhân viên có lương lớn nhất hoặc lớn nhì của những người có trong công ty:.
select TenNV, Luong
from NhanVien
where Luong in (select top 2 Luong from NhanVien order by Luong)
Câu lệnh select trong sẽ tạo ra một tập hai giá trị (top 2) đó là lương lớn nhất và lương lớn nhì. Và câu lệnh select thứ nhất sẽ chọn ra những người mà lương nằm trong tập lớn nhất và lớn nhì
select..where (in sub)
Hiện ra tất cả những người có lương lớn nhất phòng của anh ta (không phải lớn nhất trong công ty mà lớn nhất trong phòng hoặc đơn vị mà anh ta thuộc về)
select nv1.TenNV, nv1.Luong
from NhanVien as nv1
where nv1.Luong = (select max(Luong) from NhanVien where Phong=nv1.Phong)
Câu lệnh select trong sẽ trả về giá trị lương lớn nhất nhưng không phải lớn nhất trong toàn công ty mà lớn nhất trong phòng của nv1. Sau đó câu lệnh select ngoài cùng sẽ xác định xem nv1 có được chọn không bằng cách kiểm tra lương anh ta với lương lớn nhất của phòng anh ta.
4.3) Truy vấn tổng nhóm (subtotal query / grouping query)
select..group by: Thống kê theo tiêu chí
Hiện ra số lượng các nhân viên ứng với từng quê
select QueQuan, count(*)
from NhanVien
group by QueQuan
Đếm số nam và số nữ trong công ty
select GioiTinh, count(*)
from NhanVien
group by GioiTinh
Tính tổng thu nhập theo từng phòng
select Phong, sum(Luong)
from NhanVien
group by Phong
select..having: Hiện ra một số nhóm phù hợp
Chỉ đếm số lượng người ở Hải Phòng và số lượng người ở Hà nội
select QueQuan, count(*)
from NhanVien
group by QueQuan
having (QueQuan = ‘HP’, QueQuan = ‘HN’)
Chỉ hiện ra những phòng nào có tổng thu nhập lớn hơn 500000
select Phong, sum(Luong)
from NhanVien
group by Phong
having sum(Luong) > 5000000
Chỉ hiện ra những tỉnh nào có số lượng người lớn hơn 10
select QueQuan, count(*)
from NhanVien
group by QueQuan
having count(*) > 10
4.4) Truy vấn liên bảng (cross table query / joining query)
select..inner join: ghép các cặp bản ghi thỏa mãn điều kiện
Ghép bảng nhân viên và hiện ra tên nhân viên và tên địa phương
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien inner join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..left outer join: lấy tất cả phía trái và ghép (nếu có) với phải
Lấy tất cả những nhân viên kể cả những nhân viên có quê quán không hợp lệ (nghĩa là mã quê quán không có trong bảng địa phương)
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..right outer join: lấy tất cả phía phải và ghép (nếu có) với phía trái
Lấy tất cả những địa phương ghép với nhân viên, các địa phương không hợp lệ sẽ được ghép với bộ dữ liệu rỗng. Không hiện ra các nhân viên không có mã quê quán phù hợp
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..full outer join: lấy từ hai phía và ghép nếu có
Lấy tất cả những nhân viên (nếu không có quê quán phù hợp thì ghép với bộ dữ liệu rỗng) và tất cả những địa phương kể cả không có nhân viên.
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP
select..cross join: trả về tất cả các cặp có thể ghép
Ghép từng nhân viên với tất cả các địa phương. Như vậy nếu có m nhân viên và có n địa phương thì bảng đích sẽ có m*n dòng. n dòng đầu cho nhân viên thứ nhất ghép với các địa phương. n dòng sau cho nhân viên thứ hai ghép với các địa phương. và tiếp tục như thế tới nhân viên thứ m.
select NhanVien.TenNV, DiaPhuong.TenDP
from NhanVien cross join DiaPhuong
ref: Tham khảo thêm một số lệnh
Xem tất cả các CƠ SỞ DỮ LIỆU người dùng trong MÁY CHỦ
Mỗi khi một cơ sở dữ liệu được tạo ra, bảng sysdatabase trong cơ sở dữ liệu master sẽ chứa thông tin về bảng mới tạo ra đó. Do vậy chúng ta có thể liệt kê tất cả các cơ sở dữ liệu trong một máy chủ bằng cách liệt kê các bản ghi trong bảng sysdatabase
select *
from master.dbo.sysdatabases
where sid <> 1
Xem tất cả các BẢNG người dùng trong CƠ SỞ DỮ LIỆU
Mỗi khi một bảng được tạo ra trong một cơ sở dữ liệu, thông tin về bảng đó sẽ được chứa trong bảng sysobjects của chính cơ sở dữ liệu chứa bảng vừa tạo. Vì vậy chúng ta có thể xem danh sách các bảng trong cơ sở dữ liệu bằng cách truy vấn bảng sysobjects. Các bảng do người dùng tạo có kiểu là ‘U’
select *
from Northwind.dbo.sysobjects
where xtype='U'
Trong ví dụ này, chúng ta lấy tất cả các bản ghi bảng sysobjects của cơ sở dữ liệu Northwind nhưng chỉ lấy những bảng người dùng, nghĩa là những bảng có xtype là ‘U’
Xem tất cả các CỘT thuộc về một BẢNG
Mỗi khi một cột trong bảng được tạo, bảng syscolumns trong cơ sở dữ liệu sẽ chứa thông tin về cột vừa tạo. Thuộc tính id của cột sẽ chứa định danh của bảng mà cột đó thuộc về. Vì vậy để xem các cột trong một bảng dữ liệu, chúng ta có thể truy vấn bảng syscolumns
declare @x int
set @x = (select id from sysobjects where name='Employees')
select * from syscolumns where id = @x
Trong ví dụ này, ta khai báo biến @x kiểu int, sau đó lấy id của bảng Employees vào biến @x, rồi ta lấy tất cả các cột trong bảng syscolumns mà có id bằng @x, cũng có nghĩa là id của bảng Employees. Do vậy ta sẽ liệt kê được tất cả các cột trong bảng Employees
Sử dụng bảng tạm
Khai báo bảng, cập nhật bảng, và hiện bảng
declare @x table(MaSV int, TenSV nvarchar(20))
insert into @x values(1, N'Thưởng')
insert into @x values(2, N'Yến')
select * from @x
Khai báo bảng, tải bảng khác từ trong cơ sở dữ liệu lên bảng vừa khai báo, và hiện bảng
declare @x table(MaSV int, TenSV nvarchar(20))
insert into @x
select EmployeeID, firstname
from Northwind.dbo.Employees
select * from @x
Sử dụng biến tạm
declare @t money
set @t = (select max(UnitPrice) from Northwind.dbo.products)
select * from Northwind.dbo.products where UnitPrice >= @t
ref: Các khái niệm cơ bản của cơ sở dữ liệu
Các mô hình dữ liệu (data model)
+ Mô hình thứ bậc (hierarchical)
+ Mô hình mạng lưới (network)
+ Mô hình quan hệ (relational)
Các vấn đề của lưu trữ
+ Sự dư thừa (redundance)
+ Sự nhất quán (consistence)
+ Tính toàn vẹn (integrity)
+ Sự an toàn (security)
+ Sự chia sẻ (sharing)
Các khái niệm cơ bản
+ Cơ sở dữ liệu (database)
+ Bảng (table) hoặc quan hệ (relation)
+ Bản ghi (record) hoặc dòng (row) hoặc bộ (tuple)
+ Trường (field) hoặc cột (column)
+ Mối quan hệ (relationship) được biểu hiện bằng bảng (table) hoặc khóa (key)
Mối quan hệ giữa các
+ Tại sao phải lưu mối quan hệ
+ Phương pháp lưu các mối quan hệ (dùng khóa, dùng bảng)
+ Khóa chính (primary key) và khóa ngoài (foreign key)
+ Vấn đề toàn vẹn tham chiếu (referential integrity)
Ngôn ngữ định nghĩa và xử lý dữ liệu
+ Thao tác trên các đối tượng như cơ sở dữ liệu, bảng, cột
+ Phần định nghĩa cơ sở dữ liệu và bảng: create, drop, alter
+ Phần cập nhật dữ liệu: insert, delete, update
+ Phần truy vấn dữ liệu: join, union, projection, selection, sort, group
+ Phần lập trình và thao tác: declare, set, use, go
ref: Liên quan tới định nghĩa bảng
Các vấn đề về toàn vẹn dữ liệu
+ Toàn vẹn thực thể (entity integrity): primary key, unique, identity
+ Toàn vẹn tham chiếu (referential integrity): foreign key, check
+ Toàn vẹn miền dữ liệu (domain integrity): default, foreign key, check, not null
+ Toàn vẹn người dùng (user integrity): rules, stored procedures, triggers
Các hỗ trợ với toàn vẹn
+ Ràng buộc kiểm tra (check constraint): phải thỏa mãn điều kiện nào đó
+ Ràng buộc mặc định (default constraint): phải có một giá trị mặc định
+ Ràng buộc duy nhất (unique constraint): các giá trị trong cột không được trùng lặp
+ Ràng buộc khóa ngoài (foreign key constraint): các giá trị phải hợp lệ với cột khóa chính tương ứng
+ Ràng buộc khóa chính (primary key constraint): phải duy nhất và không trống
+ Thuộc tính định danh (identity property): có thể được tăng tự động
+ Thuộc tính không trống (not null property): không được phép để trống
Các kiểu dữ liệu
Giá trị nhị phân: bit
Các số nguyên: bigint, int, smallint, tinyint
Các số thực xấp xỉ: float, real
Giá trị số thực chính xác: decimal, numberic
Giá trị tiền tệ: money, smallmoney
Giá trị hời gian: datetime, smalldatetime
Các chuỗi: char, varchar, text, nchar, nvarchar, ntext,
Các chuỗi nhị phân: binary, varbinary, image
Các kiểu khác: cursor, table, variant, timestamp, uniqueidentifier
Xem thêm: http://kenhdaihoc.com/forum/showthread.php?t=3040
Subscribe to:
Comments (Atom)











