Bài trước: Windows Form (6): Làm quen với Cơ sở dữ liệu
7. Thao tác với DBMS
bằng dòng lệnh
7.1 Kết nối với DBMS
Nhắc lại:
- DBMS là DataBase Management System là một phần mềm, dùng để tạo, quản lý và khai thác cơ sở dữ liệu
- MS SQL Server là một DBMS
- Bạn cần tải và cài đặt MS SQL Server lên máy tính
- MS SQL Server sẽ chạy dưới dạng một dịch vụ (chạy ngầm) trên máy tính
- Trước khi kết nối và sử dụng MS SQL Server, bạn cần đảm bảo chắc chắn là dịch vụ này đang ở trạng thái Running (có thể kiểm tra trong Task Manager hoặc Services)
Có nhiều cách
để kết nối và làm việc với một MS SQL Server, ví dụ:
- Sử dụng cửa sổ dòng lệnh, ví dụ Command Line (CMD), Windows PowerShell, Command Prompt. Các chương trình này đều có sẵn trên Windows.
- Sử dụng các ứng dụng đồ họa, ví dụ: SQL Server Management Studio (SSMS), Azure Data Studio, Navicat for SQL Server
- Sử dụng ngôn ngữ lập trình, các thư viện của ngôn ngữ lập trình. Ví dụ: C#, ADO của C#
Mỗi cách kết nối và làm việc ở trên, sẽ phù hợp với từng tình huống sử dụng khác nhau. Ví dụ, dùng dòng lệnh thì đơn giản, dùng ứng dụng đồ họa thì dễ thao tác, dùng ngôn ngữ lập trình thì thực hiện được các xử lý logic phức tạp.
Chúng ta sẽ cùng trải nghiệm các cách kết nối và làm việc với MS SQL Server.
7.2 Sử dụng dòng lệnh
Bạn có thể sử dụng công cụ dòng lệnh Command Line (CMD), Windows PowerShell, hoặc Command Prompt.
Ví dụ, mở cửa sổ dòng lệnh, và gõ vào lệnh sau:
sqlcmd -S desktop-7lpdol6\sqlexpress02
Trong đó,
- sqlcmd là công cụ đi kèm với MS SQL Server, cho phép bạn kết nối, thực thi truy vấn SQL, Stored Procedure, hoặc một file SQL Script từ dòng lệnh. Để tìm hiểu thêm về các tham số đi kèm với lệnh sqlcmd, gõ sqlcmd -?.
- S là tham số (Server), theo sau là tên của MS SQL Server (SQLServerName) hoặc ServerName\SQLServerName.
Bạn cần phân biệt ServerName và SQLServerName:
- ServerName là tên của máy tính có cài đặt phần mềm MS SQL Server. Để biết ServerName, bạn mở cửa sổ dòng lệnh (cmd), gõ lệnh hostname. Ví dụ, tên máy tính đang minh họa là DESKTOP-7LPDOL6.
- Trên một máy tính có thể cài đặt nhiều phần mềm MS SQL Server có phiên bản khác nhau, mỗi phần mềm MS SQL Server sẽ có một tên riêng, gọi là SQLServerName hay SQL Server Instance Name.
- Bạn muốn kết nối vào bản SQLServerName nào thì phải chỉ rõ ra bằng tên của nó, để biết tên của SQLServerName, bạn xem trong Task Manager > tab Services, phần tên nằm trong cặp ngoặc nhọn (), cột Description. Ví dụ: SQLEXPRESS02.
Nếu kết nối tới MS SQL Server thành công, bạn sẽ thấy nội dung 1> xuất hiện, sẵn sàng để bạn nhập các lệnh tiếp theo. Để thoát khỏi kết nối, gõ lệnh exit.
Như vậy, bạn đã kết nối được tới MS SQL Server bằng dòng lệnh, sử dụng tài khoản đang truy cập Windows để chứng thực (kiểu kết nối này gọi là Trusted Connection, Windows Authentication). Bạn không cần phải nhập tài khoản của Windows, cũng như tài khoản của MS SQL Server.
Bạn đã sẵn sàng để ra lệnh cho MS SQL Server. Bạn sẽ gõ lệnh, kết thúc bằng lệnh go để thực thi.
Khi đã kết nối được vào hệ quản trị cơ sở dữ liệu, nếu bạn muốn làm việc với cơ sở dữ liệu nào, thì bạn lại phải thực hiện thao tác kết nối vào nó.
Tóm lại, để có thể thao tác với cơ sở dữ liệu, bạn cần phải: (1) nối tới được cái máy tính có cài đặt hệ quản trị cơ sở dữ liệu, (2) kết nối được vào hệ quản trị cơ sở dữ liệu, và (3) kết nối vào một cơ sở dữ liệu cụ thể.
Để biết bạn đang kết nối vào cơ sở dữ liệu nào, dùng lệnh select db_name()
Ví dụ: cơ sở dữ liệu mặc định khi bạn kết nối vào một hệ quản trị cơ sở dữ liệu là master. Master là cơ sở dữ liệu chứa các thông tin của hệ thống MS SQL Server, ví dụ: các tài khoản đăng nhập, cấu hình hệ thống, thông tin các cơ sở dữ liệu,...v.v.
- Liệt kê các
cơ sở dữ liệu hiện có trong MS SQL Server?
1> select name from sys.databases
2> go
Kết quả:
master
tempdb
model
msdb
(4 rows affected)
Các loại tài khoản trong MS SQL Server
Bạn có thể sử dụng 2 loại tài khoản để đăng nhập (login account) vào hệ thống MS SQL Server:
- Tài khoản của MS SQL Server, gồm tên và mật khẩu được lưu trong hệ thống MS SQL Server
- Tài khoản của Windows: sử dụng tài khoản của hệ điều hành windows, hoặc của hệ thống mạng Domain để chứng thực (Windows Authentication).
Phần tiếp theo chúng ta sẽ cùng thực hiện một số thao tác trên MS SQL Server, nếu chúng ta hiểu được bản chất của các lệnh thì thực hiện trên môi trường nào cũng như nhau (dòng lệnh, đồ họa, ngôn ngữ lập trình).
Chúng ta sẽ thực hành một số thao tác sau:
- Tạo database
- Tạo tài khoản người dùng trong MS SQL Server
- Gán quyền truy cập database
- Tạo các bảng
- Nhập dữ liệu cho bảng
- Truy vấn
Tạo database
1> create database
QuanLySach
2> go
Kiểm tra xem tạo
database QuanLySach được chưa?
1> select name
from sys.databases
2> go
name
-----------------------------------------------
master
tempdb
model
msdb
QuanLySach
(5 rows affected)
Tạo tài khoản người dùng trong MS SQL Server
Để an toàn cho hệ
thống MS SQL Server, chúng ta nên tạo tài khoản thông thường, với các quyền vừa
đủ để sử dụng cơ sở dữ liệu. Ví dụ chúng ta sẽ tạo tài khoản có tên là user1,
mật khẩu là p@ssword1.
1> CREATE LOGIN
user1 WITH PASSWORD = 'p@ssword1';
2> go
Kiểm tra xem user1
đã được tạo ra chưa? Nếu có tên user1 trong kết quả truy vấn là đã tạo
được.
1> SELECT name
FROM sys.sql_logins
2> go
name
----------------------------------------------------------------------------------------------
sa
##MS_PolicyTsqlExecutionLogin##
##MS_PolicyEventProcessingLogin##
user1
(4 rows affected)