kết quả từ 1 tới 4 trên 4

Các lệnh và các mệnh đề cơ bản trong SQL Server 2005

  1. #1
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 146858
    Giới tính: Nam
    Bài gửi
    8.059

    Các lệnh và các mệnh đề cơ bản trong SQL Server 2005

    Các lệnh và các mệnh đề cơ bản trong SQL Server 2005

    Lệnh SELECT

    SELECT là một lệnh hỏi dữ liệu cơ bản trong SQL. Có rất nhiều mệnh đề con tuỳ chọn trong câu lệnh SELECT, vì vậy chúng ta sẽ làm quen lần lượt từng bước một.

    Cấu trúc SELECT – FROM – WHERE


    Cấu trúc SELECT – FROM – WHERE là cấu trúc đơn giản nhất của SQL.
    - Cú pháp:
    SELECT <Danh sách các cột>
    FROM <Danh sách bảng>
    WHERE <Điều kiện>;
    Trong đó:
    + <Danh sách các cột>: Là danh sách các cột hoặc biểu thức của các cột được đưa vào kết quả truy vấn
    + <Danh sách bảng>: Là danh sách các bảng mà từ đó các cột được lấy ra
    + <Điều kiện>: Là một biểu thức logic xác định các bản ghi thoả mãn điều kiện của câu lệnh.
    - Ví dụ 1: Hiển thị họ đệm, tên của bảng sinh viên:
    SELECT Hodem,Ten
    FROM sinhvien;
    - Ví dụ 2: Hiển thị họ đệm, tên, học lựccủa những sinh viên có học lực >=8 trong bảng sinh viên:
    SELECT Hodem, Ten, HocLuc
    FROM sinhvien
    WHERE HocLuc>=8;

    Truy vấn sử dụng các hàm MAX, MIN, AVG, SUM, COUNT


    Hàm MAX

    - Chức năng:
    Cho giá trị lớn nhất trong cột
    - Ví dụ:
    Hiển thị học lực cao nhất trong danh sách sinhvien
    SELECT Max(HocLuc) AS DiemCaoNhat
    FROM sinhvien;
    ( AS để đặt tên cho cột Max(HocLuc))

    Hàm MIN


    - Chức năng:
    Cho giá trị nhỏ nhất trong cột
    - Ví dụ:
    Hiển thị học lực nhỏ nhất trong danh sách sinhvien
    SELECT Min(HocLuc) AS DiemThapNhat
    FROM sinhvien;

    Hàm AVG


    - Chức năng: Cho giá trị tung bình cộng trong cột
    - Ví dụ: Hiển thị học lực trung bình của cột học lực trong danh sách sinhvien
    SELECT AVG(HocLuc) AS DiemTB
    FROM sinhvien;

    Hàm SUM


    - Chức năng: Cho tổng giá trị trong cột
    - Ví dụ: Hiển thị tổng học lực của cột học lực trong danh sách sinhvien
    SELECT SUM(HocLuc) TongHL
    FROM sinhvien;

    Hàm COUNT


    - Chức năng: Cho biết số phần tử ( hàng) trong cột
    - Ví dụ: Đếm số bản ghi (hàng) của cột học lực trong danh sách sinhvien
    SELECT COUNT(HocLuc) AS SoSinhVien
    FROM sinhvien;

    Truy vấn sử dụng các phép AND, OR, IN, BETWEEN, NOT, ALL


    + AND: Phép và logic
    + OR: Phép hoặc logic
    + IN: Là phần tử của…
    + BETWEEN: Là phần tử giứa các phần tử …
    + NOT: Phép phủ định
    + ALL: Là tất cả những phần tử …
    - Ví dụ 1: Đưa ra danh sách những sinh viên có điểm >= 9 và có quê = “Hà Nội”
    SELECT *
    FROM sinhvien
    WHERE (diem>=9) AND ( que = “Hà Nội’);
    - Ví dụ 2: Đưa ra danh sách những sinh viên có quê = “Thái Bình” hoặc “Thái Nguyên”
    SELECT *
    FROM sinhvien
    WHERE (que = “Thái Bình”) OR (que = “Thái Nguyên”);
    - Ví dụ 3: Đưa ra danh sách những nhân viên có kết quả là 8,9,10
    SELECT *
    FROM sv_dtai
    WHERE KetQua IN (8, 9, 10);
    - Ví dụ 4: Đưa ra danh sách những sinh viên có kết quả nằm trong khoảng [8,10]
    SELECT *
    FROM sv_dtai
    WHERE KetQua BETWEEN 8 and 10;
    - Ví dụ 5: Đưa ra danh sách những sinh viên có quê không phải là “Hà Nội”
    SELECT *
    FROM sinhvien
    WHERE que NOT(SELECT que
    FROM sinhvien
    WHERE (que = ”Hà Nội”));
    - Ví dụ 6: Hiển thị tất cả kết quả của sinh viên
    SELECT ALL KetQua
    FROM sv_detai;

    Truy vấn thay đổi tên cột, tên bảng và hiển thị các cột từ nhiều bảng khác nhau,


    - Muốn hiển thị các cột từ nhiều bảng khác nhau thì trong câu lệnh SELECT chúng ta phải làm như sau:
    SELECT < Danh sách Tên_bang.Tên_cột>
    FROM <Danh sách Tên_bảng>
    WHERE <Điều kiện nối bảng>;
    - Có thể đặt tên các cột trong kết quả các truy vấn bằng cách đặt tên mới vào sau cột được chọn ngăn cách bởi từ khoá AS, tương tự ta có thể đặt tên mới cho các bảng
    Ví dụ: Hiển thị danh sách sinh viên bao gồm họ đệm, tên, kết quả từ bảng sinhviên và bảng sv_dt:
    SELECT sinhvien.HoDem AS Ho, sinhvien.Ten AS Ten, sv_dt.KetQua AS KQ
    FROM sinhvien AS sv, sv_dt AS sd
    WHERE (sv.MaSV = sd.MaSV);

    Truy vấn sử dụng lượng từ DISTINCT/ ALL


    * Để tránh tình trạng đưa ra các bộ (hàng/bản ghi) trùng lặp trong các kết quả truy vấn thì SQL có lượng từ DISTINCT.
    Ví dụ: Hiển thị các mã đề tài được sinh viên đăng ký trong bảng đề tài
    SELECT DISTINCT MaDT
    FROM sinhvien;
    * Để hiển thị tất cả các hàng (lấy cả các hàng có giá trị trùng nhau ) ta dùng lượng từ ALL
    Ví dụ: Hiển thị tất cả các MaDT mà bảng sv_dtai có
    SELECT ALL MaDT
    FROM sv_dtai;`

    Chú ý: Ngầm định (nếu không viết Distinct/All) thì máy hiểu là All


    Truy vấn sử dụng mệnh đề GROUP BY

    - Để hiển thị các bản ghi theo nhóm ta dùng mệnh đề GROUP BY
    - Ví dụ: Hiển thị bảng đề tài theo nhóm mã đề tài
    SELECT MaDT
    FROM detai
    GROUP BY MaDT;

    Truy vấn có sử dụng mệnh đề HAVING


    - Mệnh đề HAVING thường được sử dụng cùng mệnh đề GROUP BY. Sau HAVING là biểu thức điều kiện. Biểu thức điều kiện này không tác động vào toàn bảng được chỉ ra ở mệnh đề FROM mà chỉ tác động lần lượt từng nhóm các bản ghi đã chỉ ra tại mệnh đề GROUP BY.
    - Ví dụ: Đếm xem có bao nhiêu đề tài đã được sinh viên đăng ký tham gia
    SELECT MaDT
    FROM detai
    GROUP BY MaDT
    HAVING COUNT(*);

    Truy vấn có sử dụng mệnh đề ORDER BY


    - Mệnh đề ORDER BY được dùng để sắp xếp dữ liệu trong bảng theo chiều tăng hoặc giảm (ASC hoặc DESC) của một cột nào đó.
    - Mệnh đề ORDER BY nếu đứng sau GROUP BY thì miền tác động của sắp xếp là trong từng nhóm của cột được chỉ ra trong GROUP BY.
    - Ví dụ: Sắp xếp bảng sinhvien theo chiều giảm dần của cột học lực
    SELECT *
    FROM sinhvien
    ORDER BY hl DESC;

    Truy vấn lồng nhau


    - Trong lệnh SELECT có thể được lồng nhiều mức
    - Ví dụ1: Hiển thị sinh viên có học lực cao nhất
    SELECT *
    FROM sinhvien
    WHERE hl = (SELECT MAX (hl)
    FROM sinhvien);
    - Ví dụ 2: Hiển thị hođệm,tên của những sinh viên có kết quả >= 9 và có tên đề tài là Access
    SELECT hodem,ten
    FROM sinhvien
    WHERE MaSV IN (SELECT MaSV
    FROM sv_dtai
    WHERE (kq >= 9) AND
    ( MaDT IN ( SELECT MaDT
    FROM detai
    WHERE tendt = “Access”)));

    Nguồn: Sưu tầm
    Hãy nhấn nút Thank nếu thấy bài viết hữu ích
    Bộ sưu tập cực khủng
    Quick reply to this message Trả lời       

  2. 4 thành viên đã cảm ơn quanltv:


  3. #2
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 250113
    Giới tính: Nam
    Bài gửi
    52

    Reply: Các lệnh và các mệnh đề cơ bản trong SQL Server 2005

    xin phép đào mộ, có cái này ko hiểu :

    - Ví dụ 5: Đưa ra danh sách những sinh viên có quê không phải là “Hà Nội”
    SELECT *
    FROM sinhvien
    WHERE que NOT(SELECT que
    FROM sinhvien
    WHERE (que = ”Hà Nội”));

    => SELECT *
    FROM sinhvien
    WHERE que NOT "Hà Nội"
    thế là được rồi chứ sao phải thêm 1 lệnh select bên trong nữa ?
    - Cô bạn học cùng khoa .Có 3 phần kiêu sa, 3 phần tinh nghịch, 3 phần dịu dàng và 3 phần...


    không gì sánh được.

  4. #3
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 415240
    Giới tính: Nam
    Bài gửi
    23

    Reply: Các lệnh và các mệnh đề cơ bản trong SQL Server 2005

    E đang học đến các hàm luôn, cảm ơn bác

  5. #4
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 414675
    Giới tính: Nam
    Bài gửi
    23

    Reply: Các lệnh và các mệnh đề cơ bản trong SQL Server 2005

    Trích Nguyên văn bởi dungnd05 Xem bài viết
    Vừa tạch thực hành xog
    Xin chia buồn cùng b

Nhãn