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

مروری بر DDL و مفاهیم پایه SQL


۱. SQL چیست؟

در دنیای پایگاه داده‌های رابطه‌ای، داده‌ها در قالب جداول ذخیره می‌شوند و بین این جداول روابط و وابستگی‌های منطقی تعریف می‌شود. هر جدول شامل ستون‌ها و ردیف‌هایی است که نوع داده و محدودیت‌های خاص خود را دارند. مدیریت این ساختارها و دسترسی به داده‌ها بدون آگاهی از جزئیات فیزیکی ذخیره‌سازی، نیازمند یک زبان استاندارد و قدرتمند است.

SQL (Structured Query Language) زبان استاندارد برای تعریف ساختار، مدیریت و پرس‌وجوی داده‌ها در پایگاه داده‌های رابطه‌ای است. با استفاده از SQL می‌توان:

  • جداول و ستون‌ها را ایجاد، تغییر یا حذف کرد،
  • روابط بین جداول را تعریف کرد،
  • قیود و محدودیت‌ها را اعمال نمود،
  • داده‌ها را درج، به‌روزرسانی، حذف و واکشی کرد،

و همه‌ی این کارها را بدون نیاز به دانستن جزئیات فیزیکی ذخیره‌سازی انجام داد.

به همین دلیل SQL یکی از پرکاربردترین و حیاتی‌ترین مهارت‌ها در دنیای نرم‌افزار و مهندسی داده محسوب می‌شود و یادگیری آن پایه‌ای ضروری برای هر توسعه‌دهنده یا مهندس داده است.

SQL (Structured Query Language) زبان استاندارد مدیریت و تعامل با پایگاه داده‌های رابطه‌ای است.
این زبان امکان تعریف ساختار داده‌ها، درج، به‌روزرسانی، حذف و واکشی داده‌ها، مدیریت کاربران و امنیت، و کنترل تراکنش‌ها را فراهم می‌کند.


۲. طبقه‌بندی دستورات SQL

دستورات SQL معمولاً به چند دسته اصلی تقسیم می‌شوند که هرکدام هدف مشخصی دارند:

دستهنام کاملهدفمثال
DQLData Query Languageواکشی داده‌هاSELECT * FROM employees;
DMLData Manipulation Languageدرج، به‌روزرسانی و حذف داده‌هاINSERT INTO employees(name) VALUES('Ali'); UPDATE employees SET name='Sara' WHERE id=1; DELETE FROM employees WHERE id=2;
DDLData Definition Languageتعریف و تغییر ساختار پایگاه دادهCREATE TABLE students(id SERIAL PRIMARY KEY, name TEXT); ALTER TABLE students ADD COLUMN age INT; DROP TABLE students;
DCLData Control Languageمدیریت دسترسی و مجوزهاGRANT SELECT ON employees TO user1; REVOKE INSERT ON employees FROM user2;
TCLTransaction Control Languageکنترل تراکنش‌هاCOMMIT; ROLLBACK; SAVEPOINT sp1;

۳. دستورات اصلی DDL در PostgreSQL

۳.۱. ایجاد دیتابیس (CREATE DATABASE)

فرمت کلی:

CREATE DATABASE db_name
    [ OWNER user_name ]
    [ TEMPLATE template ]
    [ ENCODING 'UTF8' ]
    [ LC_COLLATE 'en_US.UTF-8' ]
    [ LC_CTYPE 'en_US.UTF-8' ]
    [ TABLESPACE tablespace_name ]
    [ CONNECTION LIMIT max_connections ];

مثال:

CREATE DATABASE sepahram
OWNER postgres
ENCODING 'UTF8'
LC_COLLATE='en_US.UTF-8'
LC_CTYPE='en_US.UTF-8'
TABLESPACE pg_default
CONNECTION LIMIT 50;
  • OWNER: مالک دیتابیس
  • TEMPLATE: دیتابیس الگو (معمولاً template1)
  • ENCODING: کاراکتر انکدینگ
  • LC_COLLATE / LC_CTYPE: ترتیب‌بندی حروف و نوع دسته‌بندی
  • TABLESPACE: مسیر ذخیره‌سازی فیزیکی
  • CONNECTION LIMIT: تعداد اتصال همزمان مجاز

۳.۲. ایجاد جدول (CREATE TABLE)

فرمت کلی:

CREATE TABLE table_name (
    column_name data_type [constraints],
    ...
)
[ TABLESPACE tablespace_name ];

مثال:

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    age INT DEFAULT 25,
    join_date TIMESTAMP DEFAULT now()
);
  • ستون‌ها شامل نام ستون، نوع داده، و محدودیت‌ها (constraints) هستند.
  • می‌توان DEFAULT، NOT NULL، PRIMARY KEY، و سایر محدودیت‌ها را تعریف کرد.
  • جدول می‌تواند روی Tablespace خاصی ساخته شود.

۳.۳. ایجاد اسکیما (CREATE SCHEMA)

اسکیما وسیله‌ای برای گروه‌بندی جداول و سایر اشیای پایگاه داده است و کمک می‌کند تا ساختار دیتابیس منظم و قابل مدیریت باشد.

CREATE SCHEMA schema_name
[ AUTHORIZATION user_name ];

مثال:

CREATE SCHEMA hr AUTHORIZATION postgres;
  • هر شیء درون اسکیما (جدول، ویو، توابع) نامگذاری می‌شود به شکل: schema_name.object_name
  • AUTHORIZATION مالک اسکیما را تعیین می‌کند.

۳.۴. تغییر جدول، اسکیما یا دیتابیس (ALTER)
  • تغییر جدول:
ALTER TABLE employees ADD COLUMN email TEXT;
ALTER TABLE employees RENAME COLUMN name TO full_name;
ALTER TABLE employees SET TABLESPACE new_space;
  • تغییر اسکیما:
ALTER SCHEMA hr RENAME TO human_resources;
ALTER SCHEMA hr OWNER TO user1;
  • تغییر دیتابیس:
ALTER DATABASE sepahram OWNER TO user2;

۳.۵. حذف جدول، اسکیما یا دیتابیس (DROP)
DROP TABLE table_name [ CASCADE | RESTRICT ];
DROP SCHEMA schema_name [ CASCADE | RESTRICT ];
DROP DATABASE db_name;
  • CASCADE: حذف وابستگی‌ها و اشیای مرتبط
  • RESTRICT: جلوگیری از حذف در صورت وجود وابستگی

مثال:

DROP TABLE employees CASCADE;
DROP SCHEMA hr RESTRICT;
DROP DATABASE sepahram;

جمع‌بندی

  • SQL زبان استاندارد مدیریت پایگاه داده است و دستورات آن در دسته‌های DQL, DML, DDL, DCL, TCL طبقه‌بندی می‌شوند.
  • DDL مسئول تعریف و تغییر ساختار پایگاه داده، جداول، اسکیماها و محدودیت‌ها است.
  • در PostgreSQL، دستورات CREATE, ALTER, DROP امکانات جامعی برای مدیریت دیتابیس و ساختارهای آن فراهم می‌کنند.
  • استفاده صحیح از پارامترها و محدودیت‌ها (Constraints, Tablespace, Owner) موجب نظم، امنیت و قابلیت نگه‌داری بهتر پایگاه داده می‌شود.
فروشگاه
جستجو
دوره ها

لطفا کلمات کلیدی را وارد کنید