برنامه نویسی

SQL برای Newbies (به عنوان یک توسعه دهنده وب)

زمینه

چند وقت پیش ، به عنوان توسعه دهنده وب ، مجبور شدم از PostgreSQL استفاده کنم و برخی از نمایش داده های SQL را برای واکشی برخی از داده ها بنویسم.
من یک سطح مدرسه در مورد SQL دارم ، بنابراین اولین نمایش داده ها برای نوشتن دشوار بود و یادداشتی در مورد موارد استفاده خود پیدا نکردم.

بنابراین این مقاله به عنوان یک “یادداشت SQL” برای توسعه دهنده وب که با تعجب از ایجاد نمایش داده های اساسی SQL برای واگذاری برخی از داده ها از پایگاه داده های SQL (به ویژه بانک اطلاعاتی PostgreSQL) عمل می کند ، عمل می کند.

داده ها را انتخاب کنید

اساسی ترین پرس و جو موارد زیر است:

select *
from my_table

تمام داده ها را از جدول انتخاب کنید my_table

ما از واکشی همه داده ها جلوگیری می کنیم ، ستون های مورد نظر را انتخاب می کنیم:

select t.id, t.name
from my_table t

ستون ها را انتخاب کنید شناسه وت نام از my_table با استفاده از حرف به عنوان یک نام مستعار برای میز من

فیلتر کردن داده ها برای ما معمول است

select t.id, t.name
from my_table t
where t.category = 'my_category'

فیلتر روی دسته

تغییر نام ستون ها

برای پرش از مرحله نقشه برداری در طی فرایند واکشی ، می توانیم ستون ها را تغییر نام دهیم تا با پایه کد خود مطابقت داشته باشد:

select
  t.id as "idTable",
  t.name as "nameTable"
from my_table t

زمینه ها را تغییر نام دهید شناسه وت نام به عنوان قابل استفاده وت قابل استفاده

به جداول بپیوندید

معمولاً باید داده ها را از چندین جدول واکشی کنیم.
این بخش یک نیست SQL به دوره بپیوندید بنابراین به خاطر داشته باشید 2 چیز:

  • وقتی به 2 میز می پیوندید و نمی خواهم ردیف های خود را از دست دهید اگر برخی از مسابقات در جدول دوم وجود ندارد ، از a استفاده کنید سمت چپ بپیوندد
  • وقتی به 2 میز می پیوندید و می خواهید فیلتر کنید ردیف ها با جدول دوم مطابقت ندارند ، استفاده کنید پیوستن به داخل

نکته: وقتی پرس و جو خود را می سازید ، شروع کنید سمت چپ بپیوندد و با تصفیه پیوستن به داخل در صورت لزوم برای جلوگیری از از دست دادن داده ها

SQL می پیوندد
اعتبار

سمت چپ بپیوندد

select
  t.id,
  t2.address
from my_table t
left join my_table_2 t2 on t.id = t2.table_id

ما با استفاده از جداول می پیوندیم Table_id ستون ستون my_table_2 که با شناسه ستون ستون my_tableبشر

با استفاده از سمت چپ بپیوندد، هیچ ردیف ای از my_table گم شده اند اما برخی از زمینه های my_table_2 می تواند باشد nullبشر

پیوستن به داخل

select
  t.id,
  t2.address
from my_table t
inner join my_table_2 t2 on t.id = t2.table_id

ما با استفاده از جداول می پیوندیم Table_id ستون ستون my_table_2 که با شناسه ستون ستون my_table

با استفاده از پیوستن به داخل، برخی از ردیف های my_table می توان از دست داد

بسازید شی json

ما به عنوان توسعه دهنده وب ، ما دوست داریم از اشیاء JSON استفاده کنیم. ما می توانیم JSON را با استفاده از SQL برای ساده سازی دستکاری داده ها ایجاد کنیم.
همراه با به عنوان کلمه کلیدی برای تغییر نام ستون ها ، بسیار مفید است!

select
    json_build_object(
      'id', t.id,
      'name', t.name
    ) as my_json_object
from m_table t

در هر سطر ، ستون را داریم my_json_object که شامل JSON با کلیدهای “شناسه” و “نام” است

آرایه json را ایجاد کنید

بعضی اوقات ، ما باید آرایه هایی از شیء JSON داشته باشیم. ما به راحتی می توانیم آن را با SQL انجام دهیم json_agg!

select
  json_agg(
    json_build_object(
      'id', t.id,
      'name', t.name
    ) as my_json_object
  ) as my_json_array
from m_table t

در ردیف اول (و تنها) ، در ستون my_json_array، ما آرایه Json تحت تعقیب داریم

از “زیر نمایش داده ها” استفاده کنید

برای پرس و جوهای پیچیده ، من می توانم برای تقسیم درخواست بزرگ به چند مورد مفید باشم.
به عنوان مثال ، یک مورد از یک پرس و جو که چندین جدول و پرس و جو دیگر را بر اساس اولین موردی که منطقی برای آن انجام می دهد ، جمع می کند.

select
    json_agg(
        json_build_object(
          'id', "source".id,
          'address', "source".address
        )
    )
from (
    select
        t.id,
        t2.address
    from my_table t
    left join my_table_2 t2 on t.id = t2.table_id
) as "source"
limit 5

“اولین انتخاب” داده ها را در زیر “منبع” و قالب بالا انتخاب داده ها انتخاب کنید

پایان

این مقاله کوچک است یادداشت فقط با ابتدایی ترین دستورات استفاده شده در موارد استفاده من در توسعه وب.
امیدوارم که بتواند به کسی کمک کند!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا