Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

SQL Cheat Sheet:SQL, SQL Commands và SQL Injection là gì

Việc sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL) thoạt đầu có vẻ phức tạp, nhưng về sau, nó sẽ trở nên dễ dàng và thuận tiện hơn nhiều. Bạn chỉ cần thực hành.

Nếu bạn đang tìm kiếm những cách tốt hơn để quản lý dữ liệu trong cơ sở dữ liệu của mình hoặc nếu bạn chỉ đơn giản là tò mò về các khả năng mà SQL mở ra cho bạn, thì bạn đã đến đúng nơi!

Tại sao sử dụng SQL?

Hầu hết mọi người đã nghe nói về SQL nhưng có thể không hoàn toàn quen thuộc với công việc của nó. Bạn có thể coi SQL như một ngôn ngữ đặc biệt để nói chuyện với cơ sở dữ liệu. Vì máy tính không hiểu các ngôn ngữ tự nhiên như tiếng Anh, nên bạn cần một cách để dịch. Và ở đây chúng ta có SQ để ra lệnh cho cơ sở dữ liệu trình bày một số dữ liệu hoặc lưu trữ dữ liệu mới. Các cơ sở dữ liệu khác nhau, chẳng hạn như Oracle, Microsoft SQL Server, IBM DB2, MySQL, PostgreSQL, v.v. sử dụng nó.

SQL cho phép chúng ta truy xuất, chèn, cập nhật và xóa dữ liệu từ cơ sở dữ liệu với sự trợ giúp của các truy vấn SQL. Một truy vấn SQL sử dụng các từ được gọi là Điều khoản. Các điều khoản bao gồm một số phần tử hoạt động cùng nhau để thực hiện một số hành động trên cơ sở dữ liệu. Ba mệnh đề phổ biến nhất là CHỌN, CẬP NHẬT và XÓA. Bạn sẽ tìm thấy chúng trong hầu hết mọi câu lệnh SQL.

Hãy xem cú pháp truy vấn cơ bản nhất:

SELECT * FROM table_name;

Truy vấn này sẽ chọn tất cả dữ liệu được lưu trữ trong bảng cụ thể. Dấu hoa thị (*) cho biết rằng tất cả các cột trong bảng đó phải được trả về, bất kể bảng đó có bao nhiêu cột.

Trang tính gian lận truy vấn SQL:Có những lệnh nào?

Ở đây chúng tôi giới thiệu cho bạn bộ sưu tập các lệnh và mệnh đề SQL được sử dụng phổ biến nhất mà bạn sẽ cần khi làm việc với cơ sở dữ liệu. Hãy bắt đầu.

SQL TẠO CƠ SỞ DỮ LIỆU

Bạn không thể làm được gì nhiều trong SQL nếu không có cơ sở dữ liệu, vì vậy tốt nhất là bạn nên giải quyết vấn đề đó trước.

TẠO CƠ SỞ DỮ LIỆU là một lệnh để tạo cơ sở dữ liệu mới trên máy chủ của bạn. Ví dụ:bạn muốn có một khởi đầu mới mà không có bảng hoặc dữ liệu hiện có. Cú pháp như sau:

CREATE DATABASE testDB;

BẢNG TẠO SQL

Cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong các bảng. Do đó, để sử dụng cơ sở dữ liệu của chúng ta, chúng ta cần tạo các bảng trong đó. Thao tác này có liên quan chặt chẽ đến việc thay đổi cấu trúc bảng, ví dụ:đổi tên cột, thêm cột mới, bỏ cột, v.v.

Nhưng chỉ có thể thay đổi bảng đối với một bảng hiện có. Vì vậy, bạn sẽ phải TẠO BẢNG trước. Một lệnh khác có liên quan là ADD COLUMN sẽ cho phép bạn thêm các cột bổ sung vào bảng hiện có.

CREATE TABLE [dbo].[Students](
	[Name] [nvarchar](100) NOT NULL,
	[Bio] [ntext] NULL,
	[DateOfBirth] [datetime] NOT NULL,
);

BẢNG DROP SQL

Có thời gian và địa điểm để xóa bảng và không bao giờ là một ý tưởng hay nếu bạn làm điều đó theo ý thích. DROP TABLE xóa toàn bộ một bảng với tất cả các bản ghi, chỉ mục và ràng buộc của nó khỏi cơ sở dữ liệu.

Không có cách nào để khôi phục một bảng sau khi bạn đã đánh rơi nó. Hãy chắc chắn rằng bạn cần và muốn xóa bảng cụ thể này. Nếu không, lựa chọn duy nhất để lấy lại dữ liệu là khôi phục dữ liệu từ bản sao lưu.

DROP TABLE [dbo].[Students];

CHỌN SQL

Có lẽ chức năng được sử dụng phổ biến nhất trong SQL là Chọn. Mục đích của nó là lấy dữ liệu từ một hoặc nhiều bảng để thao tác và phân tích thêm. Chức năng này cho phép người dùng cô lập và phân tích các tập hợp con dữ liệu (bảng) bằng cách chỉ định các thuộc tính (bộ lọc) khác nhau.

Để chọn một nhóm hàng, bạn viết một truy vấn xác định hàng nào sẽ được trả về, dựa trên một hoặc nhiều bộ lọc. Bộ lọc được chỉ định bởi bất kỳ số lượng chức năng hoặc biểu thức khác nhau kết hợp với các hoạt động khác theo mục tiêu của bạn.

SELECT TOP (1000) [Name]
      ,[Phone]
      ,[Website]
      ,[Address]
      ,[City]
      ,[State]
      ,[Country]
      ,[Description]
      ,[Employees]
FROM [test].[dbo].[company]

CHÈN SQL

Hàm INSERT chèn các hàng dữ liệu vào một bảng trong SQL. Cấu trúc cơ bản của câu lệnh này chỉ định bảng để thêm dữ liệu vào và các cột để bao gồm dữ liệu đó. Tiếp theo, nó xác định từng giá trị sẽ được đặt vào mỗi cột trong hàng đó. Nếu bạn chỉ mới học cách sử dụng SQL thì có vẻ khó hiểu, nhưng với một số thực hành, việc này sẽ trở nên dễ dàng hơn nhiều.

INSERT INTO [dbo].[company]
           ([Name]
           ,[Phone]
           ,[Website]
           ,[Address]
           ,[City]
           ,[State]
           ,[Country]
           ,[Description]
           ,[Employees])
     VALUES(
           'NameValue'
           ,'PhoneValue'
           ,'WebsiteValue'
           , 'AddressValue'
           , 'CityValue'
           , 'StateValue'
           , 'CountryValue'
           , 'DescriptionValue'
           , 2 ) 

CẬP NHẬT SQL

Câu lệnh UPDATE là cần thiết khi chúng ta muốn thay đổi dữ liệu được lưu trữ trong các bảng. Đây cũng là một trong những câu lệnh SQL được sử dụng phổ biến nhất áp dụng cho cả một hàng đơn giản và nhiều bản ghi.

Cú pháp mặc định bao gồm các thành phần SET và WHERE. BỘ xác định cách các bản ghi sẽ được cập nhật và WHERE xác định (các) bản ghi nào phải được cập nhật. Nếu không có mệnh đề WHERE, lệnh sẽ cập nhật tất cả các bản ghi trong bảng.

UPDATE [dbo].[company]
   SET [Name] = <Name, nvarchar(max),>
      ,[Phone] = <Phone, nvarchar(max),>
      ,[Website] = <Website, nvarchar(max),>
      ,[Address] = <Address, nvarchar(max),>
      ,[City] = <City, nvarchar(max),>
      ,[State] = <State, nvarchar(max),>
      ,[Country] = <Country, nvarchar(max),>
      ,[Description] = <Description, nvarchar(max),>
      ,[Employees] = <Employees, int,>
 WHERE <Search Conditions,,>

SQL AVG

Hàm AVG trả về giá trị trung bình của các giá trị số trong một cột dưới dạng số nguyên hoặc số dấu phẩy động. Như với hầu hết các hàm SQL, nó có thể là một phần của câu lệnh SELECT hoặc câu lệnh INSERT. Khi được sử dụng trong câu lệnh SELECT, nó phải nằm trong dấu ngoặc đơn. Dưới đây, bạn có thể xem ví dụ truy vấn với AVG () phải trả về độ tuổi trung bình của tất cả nhân viên:

SELECT avg(age) FROM employee;

SUM SQL

Hàm SUM trả về tổng của tất cả các giá trị trong một cột. Điều này rất hữu ích khi bạn xử lý nhiều cột. Kết quả sẽ là một cái nhìn tổng quan về bảng đó bổ sung tất cả dữ liệu trong đó.

SELECT  Sum(Employees) as Sum, 
		AVG(Employees) as AVG,
		MAX(Employees) as Max, 
		MIN(Employees) as Min
FROM [test].[dbo].[company]

LỆNH SQL BẰNG

SQL có nhiều toán tử, nhưng một trong những toán tử được sử dụng phổ biến nhất là ORDER BY. Nó sắp xếp dữ liệu theo biểu thức được chỉ định. Do đó, nếu tập dữ liệu của bạn chứa nhiều bản ghi có giá trị tương tự, chúng sẽ được sắp xếp theo tùy chọn của bạn.

Nói cách khác, toán tử ORDER BY trong SQL là một toán tử so sánh. Nó cho phép bạn so sánh các giá trị từ một cột với các giá trị từ một cột khác và trả về kết quả khi chúng được sắp xếp theo thứ tự so sánh này.

Cú pháp là ĐẶT HÀNG THEO tên-cột . Nó có thể hữu ích nếu bạn cần tìm thông tin theo cách được sắp xếp. Ví dụ:khi bạn đang tìm kiếm các hàng có cùng giá trị hoặc khi xác định hàng nào là phổ biến nhất.

SELECT * FROM Readers
ORDER BY City;

NHÓM SQL THEO

Toán tử GROUP BY là một công cụ rất quan trọng và hữu ích trong SQL. Nó có thể được sử dụng để nhóm các hàng dữ liệu có chung một số loại đặc điểm hoặc thuộc tính chung. Do đó, nó sắp xếp các hàng theo một hoặc nhiều cột được chỉ định trong truy vấn. Mệnh đề này thường được đặt ở cuối câu lệnh SQL sau khi tất cả các mệnh đề khác được thực thi.

Một trường hợp điển hình là sử dụng GROUP BY để tóm tắt dữ liệu trong cơ sở dữ liệu của bạn. Câu lệnh SELECT sử dụng mệnh đề WHERE để lọc ra các bản ghi không mong muốn khỏi tập kết quả, sau đó nó sử dụng mệnh đề GROUP BY để nhóm các bản ghi liên quan lại với nhau dựa trên một số đặc điểm mà bạn chỉ định.

SELECT * FROM Readers
GROUP BY Country;

SQL Injection

Bất kỳ lập trình viên web nào cũng đã từng nghe đến các cuộc tấn công SQL injection. Chúng là tai họa của Internet, để lại vết thương sâu trong nhiều trang web và ứng dụng phổ biến có thể mất nhiều năm để chữa lành. Nếu bạn muốn tránh trở thành nạn nhân của những cuộc tấn công này, điều quan trọng là phải hiểu chúng là gì, cách chúng hoạt động và bạn có thể làm gì để bảo vệ mình trước chúng trong tương lai.

Nếu bạn không quen với các cuộc tấn công chèn SQL, ứng dụng web của bạn có thể dễ bị tấn công. Mối đe dọa đủ nghiêm trọng để kích hoạt một công nghệ mới để phát hiện các cuộc tấn công như vậy. Tuy nhiên, dựa vào công nghệ là chưa đủ. Để trợ giúp các chuyên gia bảo mật, chúng tôi đã tập hợp một bảng lừa đảo hữu ích giải thích cách hoạt động của SQL injection bằng tiếng Anh đơn giản.

Những kẻ tấn công thực hiện các truy vấn trái phép để có quyền truy cập vào dữ liệu nhạy cảm, sửa đổi cơ sở dữ liệu hiện có hoặc xóa dữ liệu. Theo cách này, SQL injection là một kỹ thuật chèn mã tấn công các ứng dụng hướng dữ liệu trong đó các câu lệnh SQL độc hại được chèn vào trường mục nhập để thực thi (thường thông qua một yêu cầu HTTP).

Một cuộc tấn công thành công cho phép kẻ tấn công truy cập vào tất cả các máy chủ cơ sở dữ liệu của trang web đó. Khi vào bên trong, kẻ tấn công có thể lấy nội dung cơ sở dữ liệu, thay đổi chúng hoặc thậm chí phá hủy chúng. Đây là lý do tại sao điều quan trọng đối với các nhà phát triển web là phải hiểu cách ngôn ngữ lập trình của họ làm cho việc tiêm SQL trở nên dễ dàng hơn hoặc khó hơn đối với những kẻ tấn công tiềm năng.

Có hai kiểu tấn công SQL injection chính: dựa trên lỗi .

Tấn công dựa trên lỗi xảy ra khi nhà phát triển không làm sạch thông tin nhập của người dùng. Điều này dẫn đến việc chuyển dữ liệu xấu đến trình thông dịch và gây ra lỗi (hoặc hành vi không mong muốn) cho người dùng hợp pháp. Nguyên nhân tấn công dựa trên lỗi thường rất dễ nhận thấy. Nó sẽ được ghi lại trong nhật ký lỗi hoặc sẽ hiển thị dưới dạng một lỗi trong quá trình thử nghiệm.

Những kiểu tấn công này cũng xảy ra do quá trình xem xét mã kém - nếu một người lập trình để lại mã gỡ lỗi trong tập lệnh, những người khác sẽ chạy nó mà không biết về các vấn đề có thể xảy ra.

Nếu bạn nhận thấy lỗi cơ sở dữ liệu hoặc hành vi lạ khác trên trang web của mình, bạn có thể gặp sự cố chèn SQL!

Kết luận

Tất nhiên, bất kỳ chuyên gia cơ sở dữ liệu nào sử dụng SQL trong công việc đều nên biết tất cả các lệnh này. Tuy nhiên, có chúng như một bảng gian lận đơn giản trong tay cũng rất hữu ích. Vui lòng chia sẻ những cân nhắc và thủ thuật chuyên nghiệp của bạn trong phần Bình luận bên dưới!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tham gia với chúng tôi ở Las Vegas để có SQLintersection và tiết kiệm $ 100

  2. CẬP NHẬT SQL cho người mới bắt đầu

  3. Xu hướng cơ sở dữ liệu năm 2019 - SQL so với NoSQL, Cơ sở dữ liệu hàng đầu, Sử dụng một cơ sở dữ liệu so với Nhiều cơ sở dữ liệu

  4. Cách thêm vị trí xếp hạng của hàng trong SQL với RANK ()

  5. Chạy các tác vụ bảo trì cơ sở dữ liệu SQL bằng SQLCMD