Hàm COUNT lệnh đếm trong SQL


SQL có sẵn lệnh để đếm các dòng trong CSDL.

Cú pháp của hàm COUNT:

SELECT COUNT(tên_cột) FROM tên_bảng

Hàm COUNT(*):

Hàm COUNT(*) trả về số lượng các dòng được chọn ở trong bảng.

Ví dụ ta có bảng Persons như sau:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Câu lệnh sau sẽ trả về số lượng các dòng trong bảng:

SELECT COUNT(*) FROM Persons

và kết quả trả về sẽ là:

3

Câu lệnh sau sẽ trả về số lượng những người lớn hơn 20 tuổi:

SELECT COUNT(*) FROM Persons WHERE Age > 20

kết quả trả về sẽ là:

2

Hàm COUNT(column):

Hàm COUNT(column) sẽ trả về số lượng các dòng có giá trị khác NULL ở cột được chỉ định.

Ví dụ ta có bảng Persons như sau:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari

Câu lệnh sau sẽ trả về số lượng những người mà cột Age trong bảng không rỗng:

SELECT COUNT(Age) FROM Persons

và kết quả trả về sẽ là:

2

Mệnh đề COUNT DISTINCT

Lưu ý: Các ví dụ dưới đây chỉ hoạt động với CSDL OracleMS SQL Server, không hoạt động trên MS Access (chưa thử nhiệm với các hệ CSDL khác!)

Từ khoá DISTINCT và COUNT có thể được dùng chung với nhau để đếm số lượng các kết quả không trùng nhau.

Cú pháp như sau:

SELECT COUNT(DISTINCT column(s)) FROM table

Ví dụ ta có bảng Orders như sau:

Company OrderNumber
Sega 3412
W3Schools 2312
Trio 4678
W3Schools 6798

Câu lệnh SQL sau:

SELECT COUNT(DISTINCT Company) FROM Orders

sẽ trả về kết quả là:

3

Hàm tính toán AVG, MAX, MIN, SUM trong SQL


SQL có sẵn khá nhiều hàm để thực hiện đếm và tính toán.

Cú pháp:

Cú pháp để gọi hàm trong câu lệnh SQL như sau:

SELECT function(tên_cột) FROM tên_bảng

Bảng dữ liệu chúng ta sẽ dùng trong các ví sụ tiếp theo:

Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19

Hàm AVG(column)

Hàm AVG trả về giá trị trung bình tính theo cột được chỉ định của các dòng được chọn. Các giá trị NULL sẽ không được xét đến khi tính giá trị trung bình.

Ví dụ:

Câu lệnh sau sẽ tính số tuổi trung bình của những người có tuổi trên 20:

SELECT AVG(Age) FROM Persons WHERE Age > 20

kết quả trả về sẽ là:

39.5

Hàm MAX(column)

Hàm MAX trả về giá trị lớn nhất trong cột. Các giá trị NULL sẽ không được xét đến.

Ví dụ:

SELECT MAX(Age) FROM Persons

kết quả trả về:

45

Hàm MIN(column)

Hàm MAX trả về giá trị nhỏ nhất trong cột. Các giá trị NULL sẽ không được xét đến.

Ví dụ:

SELECT MIN(Age) FROM Persons

kết quả trả về:

19

Lưu ý: Hàm MINMAX cũng có thể áp dụng cho các cột có dữ liệu là chuỗi văn bản. Dữ liệu trong cột sẽ được so sánh theo thứ tự tăng dần của từ điển

Hàm SUM(column)

Hàm SUM trả về tổng giá trị của cột. Các giá trị NULL sẽ không được xét đến.

Ví dụ:

Tìm tổng số tuổi của tất cả những người có trong bảng:

SELECT SUM(Age) FROM Persons

kết quả trả về:

98

Ví dụ:

Tìm tổng số tuổi của tất cả những người có tuổi lớn hơn 20:

SELECT SUM(Age) FROM Persons WHERE Age > 20

kết quả trả về:

79

Tạo một CSDL trong SQL


Tạo một CSDL

CREATE DATABASE tên_CSDL

Tạo một bảng trong một CSDL

CREATE TABLE tên_bảng
(
tên_cột_1 kiểu_dữ_liệu,
tên_cột_2 kiểu_dữ_liệu,
.......
)

Ví dụ

Tạo một bảng tên Person có bốn cột: LastName, FirstName, AddressAge:

CREATE TABLE Person
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)

Tạo bảng và đặt kích thước tối đa của các cột:

CREATE TABLE Person
(
LastName varchar(30),
FirstName varchar,
Address varchar,
Age int(3)
)

Kiểu dữ liệu sẽ qui định loại dữ liệu nào được phép lưu trữ trong cột. Sau đây là các kiểu dữ liệu thường dùng nhất trong SQL:

integer(n)
int(n)
smallint(n)
tinyint(n)
Chỉ lưu trữ dữ liệu là số nguyên. Số lượng tối đa các chữ số được qui định bởi n.
decimal(n,d)
numeric(n,d)
Lưu trữ số thập nhân. Số lượng tối đa các chữ số được qui định bởi n. Số lượng tối đa các chữ số sau dấu phảy thập phân được qui định bởi d.
char(n) Lưu trữ n ký tự.
varchar(n) Lưu trữ tối đa n ký tự.
date(yyyymmdd) Lưu trữ ngày tháng (dạng năm-tháng-ngày)

 

Tạo chỉ mục

Chỉ mục được tạo ra nhằm để các dòng trong bảng được truy xuất nhanh và hiệu quả hơn. Chỉ mục có thể được tạo trên một hoặc nhiều cột của bảng, và mỗi chỉ mục được đặt một tên. Người dùng không thấy được các chỉ mục này, chúng chỉ được dùng để tăng tốc cho CSDL.

Lưu ý: Sau khi bảng đã được tạo chỉ mục thì việc cập nhật thay thêm dòng mới vào bảng sẽ mất nhiều thời gian hơn là đối với bảng không có chỉ mục. Lý do là vì khi cập nhật bảng, các chỉ mục đồng thời cũng phải được cập nhật theo. Vì thế, ta chỉ nên tạo chỉ mục cho các cột thường xuyên dùng trong các tác vụ tìm kiếm.

Chỉ mục đơn nhất (Unique Index)

Chỉ mục đơn nhất sẽ bắt buộc hai dòng bất kỳ của bảng sẽ không được phép mang cùng giá trị ở cột được tạo chỉ mục.

Cú pháp:

CREATE UNIQUE INDEX tên_chỉ_mục
ON tên_bảng (tên_cột)

Chỉ mục đơn (Simple Index)

Khi không dùng từ khoá UNIQUE trong câu lệnh tạo chỉ mục, các giá trị trùng nhau trong cột sẽ được phép.

Cú pháp:

CREATE INDEX tên_chỉ_mục
ON tên_bảng (tên_cột)

Ví dụ

Tạo một chỉ mục đơn có tên là PersonIndex trên cột LastName của bảng Person:

CREATE INDEX PersonIndex
ON Person (LastName
)

Nếu bạn muốn tạo chỉ mục sắp xếp giảm dần, bạn sử dụng thêm từ dành riêng DESC:

CREATE INDEX PersonIndex
ON Person (LastName
DESC)

Nếu bạn muốn tạo chỉ mục trên nhiều cột:

CREATE INDEX PersonIndex
ON Person (LastName, Firstname)

Xoá chỉ mục

Bạn có thể xoá chỉ mục đã tạo bằng lệnh DROP.

DROP INDEX tên_bảng.tên_chỉ_mục

Xoá CSDL hoặc bảng

Để xoá một CSDL (các bảng trong CSDL cũng đồng thời được xoá):

DROP DATABASE tên_CSDL

Để xoá một bảng (toàn bộ cấu trúc, dữ liệu và chỉ mục của bảng sẽ được xoá):

DROP TABLE tên_bảng

Thay đổi cấu trúc bảng trong SQL


Thay đổi cấu trúc bảng.

Câu lệnh ALTER TABLE được sử dụng để thêm hoặc xoá cột trong một bảng.

ALTER TABLE tên_bảng
ADD tên_cột kiểu_dữ_liệu

ALTER TABLE tên_bảng
DROP COLUMN tên_cột

Lưu ý: Một số hệ CSDL không cho phép việc xoá bỏ cột trong bảng.

Ví dụ: ta có bảng Person như sau:

LastName FirstName Address
Pettersen Kari Storgt 20

Thêm một cột tên là City vào bảng Person:

ALTER TABLE Person ADD City varchar(30)

kết quả:

LastName FirstName Address City
Pettersen Kari Storgt 20

Xoá cột Address:

ALTER TABLE Person DROP COLUMN Address

kết quả:

LastName FirstName City
Pettersen Kari

Mệnh đề GROUP BY, mệnh đề HAVING trong SQL


GROUP BY

Mệnh đề GROUP BY…được thêm vào SQL bởi vì các hàm tập hợp (như SUM) trả về một tập hợp của các giá trị trong cột mỗi khi chúng được gọi, và nếu không có GROUP BY ta không thể nào tính được tổng của các giá trị theo từng nhóm riêng lẻ trong cột.

Cú pháp của GROUP BY như sau:

SELECT tên_cột, SUM(tên_cột) FROM tên_bảng GROUP BY tên_cột

 

Ví dụ sử dụng GROUP BY:

Giả sử ta có bảng Sales như sau:

Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100

Câu lệnh SQL sau:

SELECT Company, SUM(Amount) FROM Sales

sẽ trả về kết quả:

Company SUM(Amount)
W3Schools 17100
IBM 17100
W3Schools 17100

Kết quả trả về ở trên đôi khi không phải là cái mà ta mong đợi. Ta thêm mệnh đề GROUP BY vào trong câu lệnh SQL:

SELECT Company, SUM(Amount) FROM Sales
GROUP BY Company

và kết quả trả về lần này sẽ là:

Company SUM(Amount)
W3Schools 12600
IBM 4500

Kết quả này đúng là cái mà ta mong muốn.

HAVING

Mệnh đề HAVING…được thêm vào SQL vì mệnh đề WHERE không áp dụng được đối với các hàm tập hợp (như SUM). Nếu không có HAVING, ta không thể nào kiểm tra được điều kiện với các hàm tập hợp.

Cú pháp của HAVING như sau:

SELECT tên_cột, SUM(tên_cột) FROM tên_bảng
GROUP BY tên_cột
HAVING SUM(tên_cột) điều_kiện giá_trị

Ta sử dụng lại bảng Sales ở trên. Câu lệnh SQL sau:

SELECT Company, SUM(Amount) FROM Sales
GROUP BY Company
HAVING SUM(Amount) > 10000

sẽ trả về kết quả:

Company SUM(Amount)
W3Schools 12600

AutoSuggestion TextBox In jQuery


Introduction

AutoSuggeation shows a small window like a popup panel to the display words of the prefix typed into the TextBox. For example a country text box, that will fill in the entry India when the first letter is typed, then displays a suggestion list like a popup panel.

In this article I will explain how to create an AutoSuggestion by default in jQuery

Read more of this post

Kết quả tìm kiếm google không sử dụng Keywords Meta Tag


Google tái khẳng định không sử dụng thẻ Keywords Meta Tag để xếp hạng Pagerank Website.

Keywords Meta Tag là một thẻ Meta Tags đặc biệt, được khai báo trong phần tiêu đề (head) của mã nguồn HTML. Thẻ Keywords Meta Tag giúp cho công cụ tìm kiếm hiểu được nội dung từ khoá trên trang. Nhưng mục đích ban đầu này đã bị các Webmaster lợi dụng để nhồi nhét quá nhiều từ khoá, hoặc các từ khoá không phản ánh đúng nội dung. Ngày nay các Webmaster, đặc biệt là ở Việt Nam hiểu rất sai về cách sử dụng Keywords Meta Tag này. Và Google cũng như phần lớn các công cụ tìm kiếm khác (ngoại trừ Yahoo cho đến giờ phút này, không biết số phận ra sao sau khi liên kết với Bing) đã không còn chú trọng đến thẻ Keywords Meta Tag.
Matt Cutts, một kỹ sư phần mềm của Google thường được giới SEOWebmaster đặt cho biệt hiệu Google Guy, xác nhận rằng Keywords Meta Tag không được Google chú ý đến trong thuật toán xếp hạng của công cụ tìm kiếm.
Đây là lần thứ 2 trong một vài ngày gần đây. Một vài hôm trước, Matt cũng làm đau đầu các chuyên gia SEO khi thừa nhận Google không coi việc xác thực HTML hay CSS là tiêu chí tăng thứ hạng cho các site trên kết quả tìm kiếm của Google (Google SERPs).
Meta Tags và tiêu đề Header
Meta tags thường nằm trong phần tiêu đề (header) của tài liệu HTML, chúng thường có dạng như sau, lấy ví dụ website của vietSEO.net:
head
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ /
titleQuảng bá Web, dịch vụ SEO, tư vấn thiết kế Website tối ưu máy tìm kiếm/title
meta name=”robots” content=”index,follow” /
meta name=”description” content=”Blog vietSEO cung cấp thông thủ thuật SEO (Search Engine Optimization)” /
meta name=”keywords” content=”SEO, vietseo, searche engine optimization, quảng bá Web” /
/head

 

Trong phần header trên, bạn có các thành phần khác nhau như sau:
Tiêu đề (Title):  Phần văn bản hiển thị trong thẻ title, thường hiển thị trong các công cụ tìm kiếm;
Phần mô tả (Description): Phần text ẩn, thường dùng để xây dựng phần mô tả trang xuất hiện trong trang kết quả tìm kiếm;
Robots:  Kết hợp với tệp tin loại trừ Robots.txt để điều chỉnh hành vi của bọ tìm kiếm trên trang.
Thẻ từ khoá (Keywords Meta Tags): Chính là phần thẻ từ khoá đề cập trong bài viết, nó không còn được sử dụng bởi Google hay Bing.
Google không sử dụng Keywords Meta Tag
Tuy Googlebot không khó khăn khi tìm kiếm các keyword theo cấu trúc trên nhưng thực ra Google không muốn như thế và thiên về index nội dung của từng bài viết để hạn chế các thủ thuật nhằm tăng thứ hạng trên Google SERPs trong khi nội dung không hề tốt.
Một vấn đề nữa là hình như  Google đang giảm nguồn lực để có thể chú tâm nhiều hơn tới chất lượng của các site chứ không coi trọng keyword nữa. Đây có thể là bước nhằm khuyến khích mọi người tự viết nội dung và tránh tình trạng sao chép và copy như hiện nay.
Google hiện tại chỉ xác nhận là không sử dụng Keywords Meta Tag, tuy nhiên các thẻ meta khác vẫn được Google coi trọng. Thẻ keyword meta tag đã từng bị Google bỏ rơi nhiều năm và Matt cũng khẳng định vẫn chưa có kế hoạc thay đổi chính sách này.Các bạn có thể theo dõi tuyên bố của Google thông qua kỹ sư Matt Cutts, Google khẳng định sử dụng hơn hai trăm thuật toán xếp hạng Website nhưng thẻ keywords meta tag không hề được Google tính đến.

Google đánh giá Keywords Meta Tag như thế nào

Kết luận của vietSEO
Việc Google không sử dụng Keywords Meta Tag không phải là điều gì đó quá mới mẻ, trong các bài viết phân tích trước đây của vietSEO, mình cũng đã đề cập tới vấn đề thẻ Keywwords Meta Tag này. Mặc dù thế, nhưng Yahoo và một số máy tìm kiếm nhỏ khác vẫn sử dụng thẻ Keywords Meta Tags này. Theo vietSEO, bạn vẫn nên khai báo thẻ Keywords Meta Tags nếu không mất quá nhiều thời gian và kỹ thuật.
Việc sử dụng Keywords Meta Tags cũng có ích nhưng có lẽ đã chuyển dịch sang hình thái Tags Cloud đặc trưng của Blogs. Đôi khi sử dụng dịch vụ của một số mạng đánh dấu xã hội (Social Bookmarking), các thẻ Keywords Meta Tags giúp các trang dịch vụ này xác định nhanh chóng từ khoá của trang, tránh việc phải nhập vào tự động. Có lẽ đó là ích lợi lớn nhất của Keywords Meta Tags mà vietSEO sử dụng cho đến giờ phút này.

Nguồn:http://m.cleverads.vn

Theo dõi

Get every new post delivered to your Inbox.