hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Micrsoft SQL Server
Dữ liệu JSON trong SQL Server

Dữ liệu JSON trong SQL Server

  • 17-06-2022
  • Toanngo92
  • 0 Comments

Dữ liêu JSON là một định dạng dữ liệu văn bản sử dụng để trao đổi dữ liệu trong ứng dụng WEB/Mobile hiện đại.

JSON cũng có thể sử dụng để lưu trữ dữ liệu không có cấu trúc trong log files hoặc database NoSQL như là Microsoft Azure Cosmos DB.

Nhiều nghiệp vụ REST sẽ trả về kết quả với định dạng JSON text hoặc nhận dữ liệu vào như một định dạng JSON.

Thông qua các hàm có sẵn của SQL Server, chúng ta có thể:

  • Phân tích văn bản JSON, chỉnh sửa giá trị.
  • Chyển đổi mảng trong JSON objects thành định dạng bảng.
  • Chạy T-SQL Query với đối tượng JSON đã convert.
  • Định dạng kết quả của câu lệnh T-SQL trong JSON format.

Một số hàm built-in xử lý JSON:

  • ISJSON: kiểm tra tính hợp lệ của chuỗi JSON.
  • JSON_VALUE: xuất ra giá trị đơn từ chuỗi JSON.
  • JSON_QUERY: xuất ra đối tượng hoặc mảng từ chuỗi JSON
  • JSON_MODIFY: thay đổi giá trị chuỗi JSON

Mục lục

  • Sửa đổi giá trị JSON
  • OPENJSON để chuyển đổi JSON thành dữ liệu hàng cột
  • Xuất dữ liệu SQL Server thành JSON

Sửa đổi giá trị JSON

Để chỉnh sửa thành phần của văn bản JSON, hàm JSON_MODIFY được sử dụng để cập nhật giá trị của thuộc tính trong chuỗi JSON và trả về chuỗi JSON được cập nhật.

Ví dụ:

DECLARE @json nvarchar(max);
set @json = '{"info" : {"address": [{"town": "Belgrade"}, {"town" : "Paris"}, {"town": "Marid"}]}}';
SET @json = JSON_MODIFY(@json, '$.info.address[1].town' , 'London');
select modifiedJson = @json

OPENJSON để chuyển đổi JSON thành dữ liệu hàng cột

Ví dụ:

declare @json nvarchar(max);
set @json = N'[
{"id": 2, "info": {"name": "john","surname": "smith"},"age": 25},
{"id": 5, "info": {"name": "john","surname": "smith"},"dob": "2005-11-04T12:00:00"}
]';
select * from OPENJSON(@json)
with(
id INT 'strict $.id',
firstName nvarchar(50) '$.info.name',
lastName nvarchar(50) '$.info.surname',
age INT '$.age',
dateofBirth datetime '$.dob'
)

Xuất dữ liệu SQL Server thành JSON

Ví dụ:

use AdventureWorks2019;
SELECT top 5 BusinessEntityID,  FirstName as "info.name" , LastName as "info.surname", ModifiedDate as dob from Person.Person
for json PATH

Bài tập

Bài tâp ôn luyện:

1. Tạo kiểu mytype từ kiểu varchar(40) not null.

2. Tạo cơ sở dữ liệu bookdb với các bảng sau:

Book:

- BookCode: int, khoá chính , not null

- BookTitle: mytype

- Author: mytype

- Edition: int

- BookPrice: money

- Copies: int

Member:

- MemberCode: int, khóa chính, not null

- Name: mytype

- Address: mytype

- PhoneNumber: varchar(10)    

IssueDetails:

- BookCode: int, khóa ngoại trỏ tới BookCode của bảng Book

- MemberCode: int, khóa ngoại trỏ tới MemberCode của bảng Member

- IssueDate: datetime

- ReturnDate: datetime

3. Sửa đổi bảng:

- Thêm ràng buộc check: giá sách(BookPrice) phải lớn hơn 10 cho bảng Book

- Thêm cột IssueID kiểu uniqueidentifier cho bảng issueDetails

- Sửa đổi kiểu dữ liệu cho trường PhoneNumber thành kiểu varchar(12) của bảng Member

4. Chèn dữ liệu vào bảng:

Bảng Book:

Bảng Member:

Bảng IssueDetails:

- Dam Vinh Hung mượn quyển Guide To Advance Java ngày 10/9/2005, trả 10/20/2005

- My Le mượn quyển Java By Example ngày 1/1/2006 trả 1/5/2006

- Kim Tu Long mượn quyển EPC ngày 1/10/2006 trả 1/15/2006

- Tai Linh mượn quyển RDBMS ngày 1/20/2006 trả 1/25/2006

- Ung Hoang Phuc mượn quyển HTML ngày 2/1/2006 trả 2/5/2006

- My Linh mượn quyển  CF ngày 3/1/2006 trả 3/25/2006

5. Thực hiện các thao tác cập nhật

- Cập nhật bảng Member thêm trường Gender(giới tính) kiểu bit.

- Cập nhật giới tính cho Dam Vinh Hung, Kim Tu Long, Tai Linh, Ung Hoang Phuc la 1 cho My Le, My Linh là 0.

6. Thực hiện các truy vấn sau đây:

a. Đưa ra thống kê có mấy nam (gender = 1), mấy nữ (gender = 0).

b. Đưa ra tổng số sách trong thư viện.

c. Đưa ra những quyển sách có chữ cái 'C'.

 

d. Đưa ra những độc giả sống ở TP HCM.

e. Đưa ra những quyển sách được mượn năm 2006.

f. Tạo Unique Index trên cột Book Title của bảng Book.

g. Tạo View chứa mã người mượn, tên người mượn và thông tin chi tiết của những cuốn sách đã mượn bao gồm mã sách, tên sách, tác giả, tái bản, giá, copy, với điều kiện giới tính người mượn là nam.

h. Tạo thủ tục lưu trữ để tìm kiếm sách theo tên sách.

i. Tạo trigger để nếu xóa một người mượn trong bảng Member thì cũng xóa những thông tin của người mượn đó trong bảng IssueDetails.

k. Tạo trigger để nếu cập nhật mã sách trong bảng Book thì cũng cập nhật mã sách tương ứng trong bảng IssueDetails.

Bài viết liên quan:

PolyBase, Query Store, và Stretch Database trong SQL Server
Các tính năng nâng cao SQL trong SQL Server 2019
Giới thiệu Azure SQL
Xử lý lỗi và TRY CATCH trong SQL Server
Transaction trong SQL Server
FUNCTION (hàm) trong SQL Server
Lập trình và control of flow trong Transact SQL
Trigger trong SQL Server
Index trong SQL Server
Truy vấn metadata và Dynamyic Management Object trong SQL Server
Stored Procedure trong SQL Server
VIEW trong SQL Server

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

4. KIỂM THỬ VÀ TRIỂN KHAI HỆ THỐNG

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

3. THIẾT KẾ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×