Tải bản đầy đủ (.pdf) (12 trang)

Tài liệu SQL cơ sở dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (153.29 KB, 12 trang )

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;
}



×