Các Câu Lệnh SQL
-- CÂU 1 TRÌM LƯƠNG CAO NHẤT CỦA MỖI PHÒNG
SELECT MAPH , MAX(LUONG) FROM NHANVIEN
GROUP BY MAPH
-- sắp xếp giảm dần
ORDER BY MAX(LUONG) DESC
-- CÂU 2 DS NHÂN VIÊN CÓ NĂM SINH TỪ 1958 - 1973
SELECT * FROM NHANVIEN
WHERE YEAR(NTNS) >= 1958 AND YEAR(NTNS) <= 1978
-- CÂU 3 :DS NHÂN VIÊN CÓ NĂM SINH TỪ 1958 - 1973. SẮP XẾP LƯƠNG
GIẢM DẦN
SELECT * FROM NHANVIEN
WHERE YEAR(NTNS) BETWEEN 1958 AND 1978
ORDER BY LUONG DESC
-- CÂU 4 :IN RA NHÂN VIÊN KO CÓ NGƯỜI QUẢN LÝ
SELECT * FROM NHANVIEN
WHERE MANQL IS NULL
-- CÂU 5 : CHO BIẾT PHÒNG BAN KHÔNG THAM GIAI ĐỀ ÁN NĂM 2005
SELECT TENPH FROM PHONGBAN
WHERE MAPH IN (SELECT DISTINCT MAPH FROM DEAN WHERE
NAMTHUCHIEN NOT LIKE '2005')
-- CÂU 6 TÍNH SỐ NHÂN VIÊN QUẢN LÝ TRỰC TIẾP NHÂN VIÊN KHÁC
SELECT COUNT(DISTINCT MANQL) FROM NHANVIEN
-- CÂU 7 : DANH SÁCH NHÂN VIÊN CÓ LƯƠNG TRÊN TRUNG BÌNH
LƯƠNG
SELECT * FROM NHANVIEN
WHERE LUONG >= (SELECT AVG(LUONG) FROM NHANVIEN)
-- CÂU 8 :SỐ LƯỢNG NHÂN VIÊN THEO TỪNG PHÁI
SELECT PHAI, COUNT(*) FROM NHANVIEN
GROUP BY PHAI
--CÂU 9 : SỐ LƯỢNG NHÂN VIÊN THEO TỪNG PHÒNG
SELECT MAPH, COUNT(*) FROM NHANVIEN
GROUP BY MAPH
--CÂU 10: CHO BIẾT TÊN PHÒNG , SỐ NHÂN VIÊN THEO TỪNG PHÁI
SELECT MAPH,PHAI , COUNT(*) FROM NHANVIEN
GROUP BY MAPH, PHAI
-- CÂU 11: CHO BIẾT NHÂN VIÊN NHẬN TRÊN 2 DỰ ÁN
SELECT HOTEN FROM NHANVIEN
WHERE MANV IN (SELECT MANV FROM PHANCONG GROUP BY
MANV HAVING COUNT(*)>=2)
--SELECT MANV , COUNT(MADA) FROM PHANCONG
GROUP BY MANV HAVING COUNT(MADA)>=2
-- CÂU 12 : CHO BIẾT MÃ PHÒNG CÓ 4 NHÂN VIÊN TRỞ LÊN
SELECT TENPH FROM PHONGBAN
WHERE MAPH IN (SELECT MAPH FROM NHANVIEN GROUP BY MAPH
HAVING COUNT(*)>=4)
---`
--Thêm cột
ALTER TABLE NHANVIEN ADD CHAMCONG INT
SELECT * FROM NHANVIEN
--Xóa cột
ALTER TABLE NHANVIEN DROP COLUMN CHAMCONG
SELECT * FROM NHANVIEN
-- Thêm hàng
INSERT INTO NHANVIEN
(MANV,HOTEN,NTNS,PHAI,MANQL,MAPH,LUONG) VALUES
('009','Nguyen Trung Hieu','20011002','Nam','001','NC','5000000.0')
SELECT * FROM NHANVIEN
-- Xóa hàng
DELETE FROM NHANVIEN
WHERE MANV = '009'
-- Lệnh update
UPDATE NHANVIEN SET MANQL = '002'WHERE MANV = '008'
--CÁC CÂU LỆNH VỀ THỜI GIAN
--Lấy thời gian hiện tại
UPDATE VEXE SET NGAYGIORA = GETDATE() WHERE MAVE = '90'
-- Cộng thêm một phần vào ngày đó
SELECT TOP 1 DATEADD(DAY, -9, NGAYGIORA) FROM VEXE ORDER
BY NGAYGIORA DESC
-- Lệnh trừ thời gian
SELECT DATEDIFF(HOUR,NGAYGIOVAO,NGAYGIORA) FROM VEXE
WHERE MAVE = '83'
-- cách lấy date trong datetime
SELECT TOP 1 CAST(NGAYGIORA AS date)
FROM VEXE ORDER BY NGAYGIORA DESC
--In ra ngày lớn nhất trong bảng
SELECT TOP 1 NGAYGIORA FROM VEXE ORDER BY NGAYGIORA DESC
Tạo database và bảng
IF DB_ID ('QuanLyBaiDoXe2') IS NULL
CREATE DATABASE QuanLyBaiDoXe2
ELSE USE QuanLyBaiDoXe2
IF OBJECT_ID('NHANVIEN') IS NOT NULL
DROP TABLE NHANVIEN
ELSE CREATE TABLE NHANVIEN
(
MANHANVIEN CHAR(10) NOT NULL PRIMARY KEY,
HOTEN NVARCHAR (30) ,
NGAYSINH DATE,
CHUCVU NVARCHAR (10)
)
IF OBJECT_ID('VEXE') IS NOT NULL
DROP TABLE VEXE
ELSE CREATE TABLE VEXE
(
MAVE CHAR (10) NOT NULL PRIMARY KEY ,
BIENSO VARCHAR (20),
LOAIXE NVARCHAR(30),
NGAYGIOVAO DATETIME,
NGAYGIORA DATETIME,
GIAVE FLOAT,
MANHANVIEN CHAR(10),
FOREIGN KEY (MANHANVIEN) REFERENCES
NHANVIEN(MANHANVIEN)
)
--------------------------------------------------------------------------------------------------CODE C#
Câu 1 : quản lý bãi đỗ xe
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace QuanLyBaiDoXe_SQL
{
public partial class Form1 : Form
{
SqlConnection ketnoi = new SqlConnection(@"Data Source=LAPTOPIAB46PMB\WINCC;Initial Catalog=QuanLyBaiDoXe2;Integrated
Security=True");
public Form1()
{
InitializeComponent();
}
string Day1, Day2;
===========================================================
==============================
private void KetNoi_Click(object sender, EventArgs e)
{
ketnoi.Open();
MessageBox.Show("Kết nối thành công", "Thông Báo");
SqlDataAdapter sqldata = new SqlDataAdapter("select * from
NHANVIEN ", ketnoi);
DataTable bang = new DataTable();
sqldata.Fill(bang);
GridViewNhanVien.DataSource = bang;
SqlDataAdapter sqldata1 = new SqlDataAdapter("select * from VEXE ",
ketnoi);
DataTable bang1 = new DataTable();
sqldata1.Fill(bang1);
GridViewVeXe.DataSource = bang1;
}
===========================================================
==============================
private void XoaVeXe_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("Delete from VeXe where MaVe =
'111' ", ketnoi);
cmd.ExecuteNonQuery();
ketnoi.Close();
ketnoi.Open();
SqlDataAdapter sqldata = new SqlDataAdapter("select * from VeXe ",
ketnoi);
DataTable bang = new DataTable();
sqldata.Fill(bang);
GridViewVeXe.DataSource = bang;
txb_MaVe.Text = "";
}
===========================================================
==============================
private void DongForm_Click(object sender, EventArgs e)
{
ketnoi.Close();
MessageBox.Show("Đóng kết nối thành công","Thông Báo");
this.Close();
}
===========================================================
==============================
private void TimKiem_Click(object sender, EventArgs e)
{
SqlCommand cmd_Day1 = new SqlCommand("SELECT TOP 1
NGAYGIORA FROM VEXE ORDER BY NGAYGIORA DESC ", ketnoi);
SqlDataReader RD_Day1 = cmd_Day1.ExecuteReader();
if (RD_Day1.Read())
{
Day1 = RD_Day1.GetValue(0).ToString();
}
ketnoi.Close();
ketnoi.Open();
SqlCommand cmd_Day2 = new SqlCommand("SELECT TOP 1
DATEADD(DAY, -9, NGAYGIORA) FROM VEXE ORDER BY NGAYGIORA
DESC", ketnoi);
SqlDataReader RD_Day2 = cmd_Day2.ExecuteReader();
if (RD_Day2.Read())
{
Day2 = RD_Day2.GetValue(0).ToString();
}
ketnoi.Close();
ketnoi.Open();
SqlCommand TongTien = new SqlCommand("SELECT SUM(GIAVE)
FROM VEXE WHERE NGAYGIORA >= '"+ Day2+ "' AND NGAYGIORA <= '"
+ Day1 + "'", ketnoi);
SqlDataReader RD_TongTien = TongTien.ExecuteReader();
if (RD_TongTien.Read())
{
string TongTien1 = RD_TongTien.GetValue(0).ToString();
tbx_KetQua.Text = TongTien1;
KetQua.Text ="Doanh thu 10 ngày gần nhất : " + TongTien1 + " VND";
}
}
===========================================================
==============================
private void btn_ThemVX_Click(object sender, EventArgs e)
{
string String_Comman = "INSERT INTO VEXE
(MAVE,BIENSO,LOAIXE,NGAYGIOVAO,NGAYGIORA,GIAVE,MANHANV
IEN)
VALUES(@MAVE,@BIENSO,@LOAIXE,@NGAYGIOVAO,@NGAYGIORA,
@GIAVE,@MANHANVIEN)";
using (SqlCommand cdm = new SqlCommand(String_Comman, ketnoi))
{
cdm.Parameters.Add("@MAVE", SqlDbType.Char, 10).Value
=txb_MaVe.Text;
cdm.Parameters.Add("@BIENSO", SqlDbType.NVarChar, 30).Value =
txb_BSX.Text;
cdm.Parameters.Add("@LOAIXE", SqlDbType.NVarChar, 30).Value =
txb_LoaiXe.Text;
cdm.Parameters.Add("@NGAYGIOVAO",
SqlDbType.DateTime).Value = txb_NgayGioVao.Text;
cdm.Parameters.Add("@NGAYGIORA", SqlDbType.DateTime).Value
= txb_NgayGioRa.Text;
cdm.Parameters.Add("@GIAVE", SqlDbType.Float).Value =
txb_GiaVe.Text;
cdm.Parameters.Add("@MANHANVIEN", SqlDbType.Char, 10).Value
= txb_MaNV1.Text;
cdm.ExecuteNonQuery();
ketnoi.Close();
ketnoi.Open();
SqlDataAdapter sqldata1 = new SqlDataAdapter("SELECT *FROM
VEXE", ketnoi);
DataTable bang1 = new DataTable();
sqldata1.Fill(bang1);
GridViewVeXe.DataSource = bang1;
}
}
===========================================================
==============================
private void btn_SuaVX_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("UPDATE VEXE SET GIAVE =
'" + txb_GiaVe.Text + "' WHERE MAVE = " + txb_MaVe.Text+ "",ketnoi);
cmd.ExecuteNonQuery();
SqlDataAdapter sqldata1 = new SqlDataAdapter("SELECT *FROM
VEXE", ketnoi);
DataTable bang1 = new DataTable();
sqldata1.Fill(bang1);
GridViewVeXe.DataSource = bang1;
}
}
}
===========================================================
============================
Câu 2 : Quản lý sinh viên
# sinh viên điểm danh vào lớp
private void btn_InClass_Click(object sender, EventArgs e)
{
SqlCommand cdm1 = new SqlCommand("select Count(ID) from
BANG_DD ", ketnoi);
SqlDataReader DR1 = cdm1.ExecuteReader();
if (DR1.Read())
{
id = (float)Convert.ToDouble(DR1.GetValue(0).ToString());
txb_IDnow.Text = id.ToString();
}
ss_msv = 0;
// chạy vòng lặp for để so sánh msv
for (int i = 1; i <= id; i++)
{
ketnoi.Close();
ketnoi.Open();
SqlCommand cdm_msv = new SqlCommand("select MSV from
BANG_DD Where ID = " + i + "", ketnoi);
SqlDataReader DR_msv = cdm_msv.ExecuteReader();
if (DR_msv.Read())
{
msv =
(double)Convert.ToDouble(DR_msv.GetValue(0).ToString());
txb_HoTen.Text = msv.ToString();
}
if (txb_HoTen.Text == txb_MSSV.Text)
{
ss_msv = 2;
}
}
if (ss_msv == 2)
{
MessageBox.Show("Bạn đã điểm danh", "Thông Báo");
}
else
{
ketnoi.Close();
ketnoi.Open();
string string_Command = "insert into BANG_DD
(MSV,NgaySinh,TenHocPhan,GioVaoLop0) Values
(@MSV,@NgaySinh,@TenHocPhan,@GioVaoLop0)";
using (SqlCommand cmd = new SqlCommand(string_Command,
ketnoi))
{
cmd.Parameters.Add("@MSV", SqlDbType.VarChar, 15).Value =
txb_MSSV.Text;
cmd.Parameters.Add("@HoVaTen", SqlDbType.VarChar, 50).Value
= txb_HoTen.Text;
cmd.Parameters.Add("@NgaySinh", SqlDbType.VarChar, 15).Value
= "2001/01/01";
cmd.Parameters.Add("@TenHocPhan", SqlDbType.VarChar,
15).Value = "CSDL";
cmd.Parameters.Add("@GioVaoLop0", SqlDbType.DateTime).Value
= DateTime.Now;
cmd.ExecuteNonQuery();
MessageBox.Show("Điểm Danh Thành Công", "Thông Báo");
ketnoi.Close();
ketnoi.Open();
SqlDataAdapter sqldata1 = new SqlDataAdapter("SELECT *FROM
BANG_DD", ketnoi);
DataTable bang1 = new DataTable();
sqldata1.Fill(bang1);
dataGridView_ON.DataSource = bang1;
}
}
===========================================================
=============================
// Sinh viên điểm danh ra lớp
private void btn_OutClass_Click(object sender, EventArgs e)
{
SqlCommand cmd1 = new SqlCommand("update BANG_DD set
GioRaLop"+d+" = '" + DateTime.Now + "' where MSV = " + txb_MSSV.Text +
"",ketnoi);
cmd1.ExecuteNonQuery();
ketnoi.Close();
ketnoi.Open();
if(d==0)
{
// Tính tổng thời gian ở trong lớp
string ketnot_string1 = "select DATEDIFF(MINUTE,GioVaoLop" + d +
",GioRaLop" + d + ") from BANG_DD Where MSV = " + txb_MSSV.Text + "";
SqlCommand cdm2 = new SqlCommand(ketnot_string1, ketnoi);
SqlDataReader DR2 = cdm2.ExecuteReader();
if (DR2.Read())
{
float time = (float)Convert.ToDouble(DR2.GetValue(0).ToString());
TBtime = (float)time / 60;
TBtime = Math.Round(TBtime, 2);// lấy 2 giá trị sau giấu phẩy
txb_ID.Text = TBtime.ToString();
}
ketnoi.Close();
ketnoi.Open();
// cập nhập thời gian trung bình vào cột điểm trung bình
SqlCommand cmd3 = new SqlCommand("update BANG_DD set
DiemTB = '" + txb_ID.Text + "' where MSV = " + txb_MSSV.Text + "", ketnoi);
cmd3.ExecuteNonQuery();
SqlDataAdapter sqldata2 = new SqlDataAdapter("SELECT *FROM
BANG_DD", ketnoi);
DataTable bang2 = new DataTable();
sqldata2.Fill(bang2);
dataGridView_ON.DataSource = bang2;
MessageBox.Show("Về nhà đê", "Thông Báo");
}
else
{
ketnoi.Close();
ketnoi.Open();
string ketnot_string1 = "select DATEDIFF(MINUTE,GioVaoLop" + d +
",GioRaLop" + d + ") from BANG_DD Where MSV = " + txb_MSSV.Text + "";
SqlCommand cdm2 = new SqlCommand(ketnot_string1, ketnoi);
SqlDataReader DR2 = cdm2.ExecuteReader();
if (DR2.Read())
{
float time = (float)Convert.ToDouble(DR2.GetValue(0).ToString());
TBtime = (float)time / 60;
TBtime = Math.Round(TBtime, 2);// lấy 2 giá trị sau giấu phẩy
txb_ID.Text = TBtime.ToString();
}
ketnoi.Close();
ketnoi.Open();
string ketnot_diemtb = "select DiemTB from BANG_DD Where MSV =
" + txb_MSSV.Text + "";
SqlCommand cdm_diemtb = new SqlCommand(ketnot_diemtb, ketnoi);
SqlDataReader DR_diemtb = cdm_diemtb.ExecuteReader();
if (DR_diemtb.Read())
{
diemtb =
(float)Convert.ToDouble(DR_diemtb.GetValue(0).ToString());
double diem_tb1 = diemtb;
double TBtime1 = TBtime;
double diemtb_now = diem_tb1 + TBtime1;
txb_TBDiem.Text = diemtb_now.ToString();
}
ketnoi.Close();
ketnoi.Open();
SqlCommand cmd3 = new SqlCommand("update BANG_DD set
DiemTB = '" + txb_TBDiem.Text + "' where MSV = " + txb_MSSV.Text + "",
ketnoi);
cmd3.ExecuteNonQuery();
SqlDataAdapter sqldata2 = new SqlDataAdapter("SELECT *FROM
BANG_DD", ketnoi);
DataTable bang2 = new DataTable();
sqldata2.Fill(bang2);
dataGridView_ON.DataSource = bang2;
MessageBox.Show("Về nhà đê", "Thông Báo");
}
}
===========================================================
==============================
// Thêm Cột
private void btn_ThemCot_Click(object sender, EventArgs e)
{
d = d + 1;
ketnoi.Close();
ketnoi.Open();
SqlCommand cmd3 = new SqlCommand("ALTER TABLE BANG_DD
ADD GioVaoLop" + d + " DateTime NULL ,GioRALop" + d + " DateTime
NULL; ", ketnoi);
cmd3.ExecuteNonQuery();
SqlDataAdapter sqldata2 = new SqlDataAdapter("SELECT *FROM
BANG_DD", ketnoi);
DataTable bang2 = new DataTable();
sqldata2.Fill(bang2);
dataGridView_ON.DataSource = bang2;
}