Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Lembar Cheat SQL:Apa itu SQL, Perintah SQL, dan Injeksi SQL

Menggunakan Structured Query Language (SQL) mungkin tampak rumit pada awalnya, tetapi selanjutnya, itu akan menjadi lebih mudah dan lebih nyaman. Anda hanya perlu latihan.

Jika Anda mencari cara yang lebih baik untuk mengelola data di database Anda atau jika Anda hanya ingin tahu tentang kemungkinan yang terbuka untuk Anda SQL, maka Anda telah datang ke tempat yang tepat!

Mengapa SQL?

Kebanyakan orang telah mendengar tentang SQL tetapi mungkin tidak sepenuhnya akrab dengan pekerjaannya. Anda dapat menganggap SQL sebagai bahasa khusus untuk berbicara dengan database. Karena komputer tidak mengerti bahasa alami seperti bahasa Inggris, Anda memerlukan cara untuk menerjemahkan. Dan di sini kita memiliki SQ untuk memerintahkan database untuk menyajikan beberapa data atau untuk menyimpan data baru. Berbagai database, seperti Oracle, Microsoft SQL Server, IBM DB2, MySQL, PostgreSQL, dll. menggunakannya.

SQL memungkinkan kita untuk mengambil, menyisipkan, memperbarui, dan menghapus data dari database dengan bantuan kueri SQL. Sebuah query SQL menggunakan kata-kata yang disebut Klausa. Klausa terdiri dari beberapa elemen yang bekerja sama untuk melakukan beberapa tindakan pada database. Tiga klausa yang paling umum adalah SELECT, UPDATE, dan DELETE. Anda akan menemukannya di hampir setiap pernyataan SQL.

Mari kita ambil sintaks kueri paling dasar:

SELECT * FROM table_name;

Kueri ini akan memilih semua data yang disimpan dalam tabel tertentu. Tanda bintang (*) menunjukkan bahwa semua kolom dalam tabel tersebut harus dikembalikan, tidak peduli berapa banyak kolom yang dimiliki tabel tersebut.

Lembar Cheat Kueri SQL:Perintah Apa yang Ada?

Di sini kami menyajikan kepada Anda pilihan perintah dan klausa SQL yang paling umum digunakan yang akan Anda perlukan saat bekerja dengan database. Mari kita mulai.

SQL BUAT DATABASE

Anda tidak dapat melakukan banyak hal dalam SQL tanpa database, jadi yang terbaik adalah menyelesaikannya terlebih dahulu.

BUAT BASIS DATA adalah perintah untuk membuat database baru di server Anda. Misalnya, Anda ingin awal yang baru tanpa tabel atau data yang sudah ada. Sintaksnya di bawah ini:

CREATE DATABASE testDB;

SQL CREATE TABLE

Database relasional menyimpan data dalam tabel. Jadi, untuk menggunakan database kita, kita perlu membuat tabel di dalamnya. Operasi ini berkaitan erat dengan perubahan struktur tabel, misalnya, mengganti nama kolom, menambahkan kolom baru, menghapus kolom, dll.

Tetapi mengubah tabel hanya dimungkinkan untuk tabel yang sudah ada. Jadi, Anda harus CREATE TABLE terlebih dahulu. Perintah terkait lainnya adalah ADD COLUMN yang memungkinkan Anda menambahkan kolom tambahan ke tabel yang sudah ada.

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

SQL DROP TABLE

Ada waktu dan tempat untuk menghapus tabel, dan tidak pernah merupakan ide yang baik untuk melakukannya secara tiba-tiba. DROP TABLE menghapus seluruh tabel dengan semua catatan, indeks, dan batasannya dari database.

Tidak ada cara untuk memulihkan tabel setelah Anda menjatuhkannya. Pastikan bahwa Anda perlu dan ingin menghapus tabel khusus ini. Jika tidak, satu-satunya pilihan untuk mendapatkan kembali data adalah dengan memulihkannya dari cadangan.

DROP TABLE [dbo].[Students];

SQL PILIH

Mungkin fungsi yang paling umum digunakan dalam SQL adalah Select. Tujuannya adalah untuk mengambil data dari satu atau lebih tabel untuk manipulasi dan analisis lebih lanjut. Fungsionalitas ini memungkinkan pengguna untuk mengisolasi dan menganalisis subset data (tabel) dengan menentukan berbagai atribut (filter).

Untuk memilih grup baris, Anda menulis kueri yang mengidentifikasi baris mana yang harus dikembalikan, berdasarkan satu atau beberapa filter. Filter ditentukan oleh sejumlah fungsi atau ekspresi berbeda yang digabungkan dengan operasi lain sesuai dengan tujuan Anda.

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

SQL INSERT

Fungsi INSERT menyisipkan baris data ke dalam tabel di SQL. Struktur dasar dari pernyataan ini menentukan tabel untuk menambahkan data ke dan kolom untuk memasukkan data tersebut. Selanjutnya, ia mendefinisikan setiap nilai yang harus ditempatkan ke dalam setiap kolom dalam baris itu. Jika Anda baru mempelajari cara menggunakan SQL, hal ini mungkin tampak membingungkan, tetapi dengan beberapa latihan, itu menjadi jauh lebih mudah.

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

PERBARUI SQL

Pernyataan UPDATE diperlukan ketika kita ingin mengubah data yang disimpan dalam tabel. Ini juga merupakan salah satu pernyataan SQL yang paling umum digunakan yang berlaku untuk baris sederhana dan banyak catatan.

Sintaks default mencakup komponen SET dan WHERE. SET mendefinisikan bagaimana catatan harus diperbarui, dan WHERE menentukan record mana yang harus diperbarui. Tanpa klausa WHERE, perintah akan memperbarui semua record dalam tabel.

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

Fungsi AVG mengembalikan rata-rata nilai numerik dalam kolom sebagai bilangan bulat atau angka titik-mengambang. Seperti kebanyakan fungsi SQL, ini bisa menjadi bagian dari pernyataan SELECT atau pernyataan INSERT. Ketika digunakan dalam pernyataan SELECT, itu harus berada dalam tanda kurung. Di bawah ini Anda dapat melihat contoh kueri dengan AVG() yang harus menampilkan usia rata-rata di semua karyawan:

SELECT avg(age) FROM employee;

SQL SUM

Fungsi SUM mengembalikan jumlah semua nilai dalam kolom. Ini sangat membantu ketika Anda berurusan dengan banyak kolom. Hasilnya akan menjadi ikhtisar tabel yang menambahkan semua data di dalamnya.

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

SQL ORDER OLEH

SQL memiliki banyak operator, tetapi salah satu yang paling umum digunakan adalah ORDER BY. Ini mengurutkan data sesuai dengan ekspresi yang ditentukan. Oleh karena itu, jika kumpulan data Anda berisi beberapa catatan dengan nilai yang sama, mereka akan diurutkan sesuai dengan preferensi Anda.

Dengan kata lain, operator ORDER BY dalam SQL adalah operator pembanding. Ini memungkinkan Anda untuk membandingkan nilai dari satu kolom dengan nilai dari kolom lain dan mengembalikan hasil seperti yang diurutkan oleh perbandingan ini.

Sintaksnya adalah ORDER BY nama kolom . Akan sangat membantu jika Anda perlu mencari informasi secara terurut. Misalnya, saat Anda mencari baris yang memiliki nilai yang sama atau saat menentukan baris mana yang paling populer.

SELECT * FROM Readers
ORDER BY City;

SQL GROUP OLEH

Operator GROUP BY adalah alat yang sangat penting dan berguna dalam SQL. Ini dapat digunakan untuk mengelompokkan baris data yang memiliki semacam karakteristik atau properti yang sama. Oleh karena itu, ini mengurutkan baris menurut satu atau beberapa kolom yang ditentukan dalam kueri. Klausa ini biasanya ditempatkan di akhir pernyataan SQL setelah semua klausa lainnya dieksekusi.

Kasus umum menggunakan GROUP BY untuk meringkas data dalam database Anda. Pernyataan SELECT menggunakan klausa WHERE untuk menyaring catatan yang tidak diinginkan dari kumpulan hasil, dan kemudian menggunakan klausa GROUP BY untuk mengelompokkan catatan terkait berdasarkan beberapa karakteristik yang Anda tentukan.

SELECT * FROM Readers
GROUP BY Country;

Injeksi SQL

Setiap programmer web telah mendengar tentang serangan injeksi SQL. Mereka adalah momok Internet, meninggalkan luka yang dalam di banyak situs web dan aplikasi populer yang membutuhkan waktu bertahun-tahun untuk sembuh. Jika Anda ingin menghindari menjadi korban serangan ini, penting untuk memahami apa itu serangan, cara kerjanya, dan apa yang dapat Anda lakukan untuk melindungi diri dari serangan tersebut di masa mendatang.

Jika Anda tidak terbiasa dengan serangan injeksi SQL, aplikasi web Anda mungkin rentan terhadapnya. Ancaman tersebut cukup serius untuk memicu teknologi baru untuk mendeteksi serangan tersebut. Namun, mengandalkan teknologi saja tidak cukup. Untuk membantu profesional keamanan, kami telah menyusun lembar contekan praktis yang menjelaskan cara kerja injeksi SQL dalam bahasa Inggris sederhana.

Penyerang mengeksekusi kueri yang tidak sah untuk mendapatkan akses ke data sensitif, memodifikasi database yang ada, atau menghapus data. Dengan cara ini, injeksi SQL adalah teknik injeksi kode yang menyerang aplikasi berbasis data di mana pernyataan SQL berbahaya dimasukkan ke dalam kolom entri untuk dieksekusi (biasanya melalui permintaan HTTP).

Serangan yang berhasil memberi penyerang akses ke semua server basis data situs web itu. Begitu masuk, penyerang dapat mengambil isi database, mengubahnya atau bahkan menghancurkannya. Inilah mengapa sangat penting bagi pengembang web untuk memahami bagaimana bahasa pemrograman mereka membuat injeksi SQL lebih mudah atau lebih sulit bagi penyerang potensial.

Ada dua jenis utama serangan injeksi SQL:berbasis kesalahan dan buta .

Serangan berbasis kesalahan terjadi ketika pengembang tidak membersihkan input pengguna. Ini menghasilkan melewatkan data yang buruk ke juru bahasa dan menyebabkan kesalahan (atau perilaku tak terduga) untuk pengguna yang sah. Penyebab serangan berbasis kesalahan seringkali mudah dilihat. Ini akan terdaftar di log kesalahan atau akan muncul sebagai bug selama pengujian.

Jenis serangan ini juga terjadi karena proses peninjauan kode yang buruk — jika satu pembuat kode meninggalkan kode debug dalam skrip, yang lain akan menjalankannya tanpa mengetahui kemungkinan masalah.

Jika Anda melihat kesalahan basis data atau perilaku aneh lainnya di situs web Anda, Anda mungkin mengalami masalah injeksi SQL!

Kesimpulan

Tentu saja, setiap spesialis database yang menggunakan SQL dalam pekerjaan harus hafal semua perintah ini. Tetap saja, memilikinya sebagai lembar contekan sederhana juga membantu. Jangan ragu untuk membagikan pertimbangan dan trik profesional Anda di bagian Komentar di bawah!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memantau Cadangan di Seluruh Instance

  2. Panduan untuk Menyebarkan TimescaleDB dengan Docker

  3. Plan Explorer 3.0 Webinar – Contoh dan Tanya Jawab

  4. Bekerja dengan Data Java di Sisense

  5. Untuk terakhir kalinya, TIDAK, Anda tidak dapat mempercayai IDENT_CURRENT()