Bài viết mới

[SQL] Tìm hiểu và sử dụng Json trong Sqlserver 2016

[SQL] Tìm hiểu và sử dụng Json trong Sqlserver 2016
Đăng bởi: Thảo meo - Lượt xem: 900 07:49:15, 04/04/2017DATABASE   In bài viết

Trong Microsoft Sqlserver 2016, microsoft đã tích hợp thêm Json vào trong hệ quản trị cơ sở dữ liệu này. Vì thế, các bạn có thể thấy được tầm quan trọng và phổ biến Json như thế nào. 

Tìm hiểu Json trong Sql server 2016

Các bạn cũng có thể thấy ngày nay, Facebook API hay các server API khác đa số đều trả về cho chúng ta kiểu dữ liệu JSON, thay vì XML

- Trong Sqlserver 2016, các bạn có thể lưu trực tiếp chuỗi JSON xuống datatabase theo trường Nvarchar.

Sử dụng Json trong Sqlserver 2016

Dưới đây là cấu trúc mẫu của một chuỗi JSON

{
     "firstName": "Nguyễn",
     "lastName": "Thảo",
     "age": 25,
     "address":{
         "streetAddress": "290/58 Nơ Trang Long",
         "city": "Việt Nam",
         "state": "VN",
         "postalCode": "76000"
     },
     "phoneNumber": [
         {"type": "home","number": "212 555-1234"},
         {"type": "fax","number": "646 555-4567"}
     ]
 }

1. Sử dụng json_Parse

- Cách select chuỗi json trong sqlserver, các bạn dùng từ khóa json_Parse, để select một chuỗi json từ database thành dưới dạng table. Các bạn có thể xem ví dụ, bên dưới.

select * from json_Parse('{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "address":{
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021"
     },
     "phoneNumber": [
         {"type": "home","number": "212 555-1234"},
         {"type": "fax","number": "646 555-4567"}
     ]
 }')

Và dưới đây là kết quả trả về

json parse sqlserver 2016

2. Sử dụng json_toJson, dùng để insert chuỗi json xuống database.

Các bạn có thể sử dụng hàm Insert Into... Select để thêm nguyên một khối dữ liệu json thành thành các trường xuống database.

Trong lập trình Web, nếu các bạn sử dụng convert json thành mảng, rồi sau đó các bạn foreach cái mảng đó và lưu từng trường xuống cơ sở dữ liệu.

Thì trong Sql server 2016, các bạn có thể thêm trực tiếp nguyên Json xuống database.

declare @data pJsonData

insert into @data select * from json_Parse('[
        {"Name": "John   Smith"   ,
        "address":{"streetAddress": 
        "21 2nd Street","city": "New York"}},
        {"Name": "Jane   Doe"     ,
        "address":{"streetAddress": "22 Madison Ave","city": "New York"}},
        {"Name": "George Williams",
        "address":{"streetAddress": "18 3rd Street","city": "Chicago"}}
]')

Kết quả của câu truy vấn T-sql trên:

json to json sqlserver 2016

3. Select sqlserver to Json

Các bạn, có thể sử dụng từ khóa FOR JSON, để chuyển bảng dữ liệu truy vấn được sang kiểu Json.

SELECT name, surname  
FROM emp  
FOR JSON AUTO  

Các bạn, có thể dùng thêm từ khóa ROOT để đặt tên khóa cho nguyên đoạn json từ kết quả truy vấn Sqlserver

SELECT Id, Name, State, Country FROM dbo.Customer
FOR JSON PATH, ROOT('Customers')

HAVE FUN :)

[SQL] Tìm hiểu và sử dụng Json trong Sqlserver 2016
Đăng bởi: Thảo meo - Lượt xem: 900 07:49:15, 04/04/2017DATABASE   In bài viết

THẢO LUẬN BÀI VIẾT