مبانی SQL

دانستن درباره DDL، DML و JOIN ها

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

این مقدمه ای بر مبانی پایه SQL، نگاهی مختصر به برخی از دستورات اصلی مورد استفاده برای ایجاد و تغییر پایگاه داده ها می گذارد.

درباره SQL

اصطلاح صحیح SQL یک مسئله درگیر در جامعه پایگاه داده است. در استاندارد SQL خود، موسسه استاندارد ملی آمریکا اعلام کرد که تلفظ رسمی "es e queue el" است. با این حال، بسیاری از متخصصان پایگاه داده به عبارت عامیانه "عاقبت" گرفته شده اند. انتخاب باشماست.

SQL در بسیاری از طعم ها وجود دارد. پایگاه های داده اوراکل از PL / SQL اختصاصی خود استفاده می کنند. مایکروسافت SQL Server از Transact-SQL استفاده می کند. تمام تغییرات بر پایه ANSI SQL استاندارد صنعتی است. این مقدمه با استفاده از دستورات SQL سازگار ANSI که بر روی هر سیستم پایگاه داده مدرن ارتباط برقرار می کند، استفاده می شود.

DDL و DML

دستورات SQL را می توان به دو زیر زبان اصلی تقسیم کرد. زبان تعریف داده (DDL) شامل دستورات استفاده شده برای ایجاد و نابود کردن پایگاه داده ها و اشیاء پایگاه داده می باشد. پس از اینکه ساختار پایگاه داده با DDL تعریف شد، مدیران پایگاه داده و کاربران می توانند از DML (Data Manipulation Language) برای قرار دادن، بازیابی و تغییر داده های موجود در آن استفاده کنند.

دستورات زبان تعریف داده

زبان تعریف داده ها برای ایجاد و نابود کردن پایگاه داده ها و اشیاء پایگاه داده استفاده می شود. این دستورات عمدتا توسط مدیران پایگاه داده در مراحل نصب و حذف پروژه پایگاه داده مورد استفاده قرار می گیرند. در اینجا نگاهی به ساختار و استفاده از چهار دستورالعمل DDL اساسی:

ايجاد كردن. نصب یک سیستم مدیریت پایگاه داده بر روی یک کامپیوتر به شما امکان می دهد تا بسیاری از پایگاه های مستقل را ایجاد و مدیریت کنید. به عنوان مثال، ممکن است بخواهید یک پایگاه داده از مخاطبین مشتری برای اداره فروش و یک پایگاه داده پرسنلی برای بخش منابع انسانی خود نگهداری کنید. دستور CREATE برای ایجاد هر یک از این پایگاه های داده بر روی پلت فرم شما استفاده می شود. به عنوان مثال، دستور:

کارکنان DATABASE را ایجاد کنید

یک پایگاه داده خالی به نام "کارمند" در DBMS خود ایجاد می کند. پس از ایجاد پایگاه داده، قدم بعدی ایجاد جدول هایی است که حاوی داده ها هستند. یکی دیگر از دستور CREATE را می توان برای این منظور استفاده کرد. دستور:

CREATE TABLE personal_info (first_name char (20) null، last_name char (20) not null، employee_id int not null)

یک جدول با عنوان "personal_info" را در پایگاه داده کنونی ایجاد می کند. در مثال، جدول شامل سه ویژگی است: first_name، last_name و employee_id همراه با برخی از اطلاعات اضافی.

استفاده کنید. دستور USE به شما اجازه می دهد که پایگاه داده ای را که می خواهید با DBMS خود کار کنید مشخص کنید. به عنوان مثال، اگر شما در حال حاضر در پایگاه داده فروش کار می کنید و می خواهید برخی از دستورات را که بر پایگاه داده های کارکنان تاثیر می گذارد، آنها را با دستور SQL زیر وارد کنید:

استفاده از کارکنان

مهم است که همیشه قبل از صدور دستورات SQL که داده ها را دستکاری می کنند، آگاه باشید از پایگاه داده ای که در آن کار می کنید.

ALTER هنگامی که یک جدول در یک پایگاه داده ایجاد کرده اید، ممکن است بخواهید تعریف آن را تغییر دهید. دستور ALTER اجازه می دهد تا شما را به تغییر ساختار یک جدول بدون حذف و بازسازی آن. نگاهی به فرمان زیر:

ALTER TABLE personal_info اضافه کردن پول معاشقه خالی

این مثال یک ویژگی جدید به جدول personal_info اضافه می کند - حقوق و دستمزد کارمند. استدلال "پول" مشخص می کند که حقوق و دستمزد کارمند با استفاده از قالب و دلار و سنت ذخیره می شود. در نهایت، کلمه کلیدی "null" به پایگاه داده می گوید که برای این فیلد مناسب نیست برای هر کارمند داده شده.

قطره قطره فرمان نهایی زبان تعریف داده، DROP، ما را قادر می سازد تمام اشیاء پایگاه داده را از DBMS ما حذف کنیم. به عنوان مثال، اگر ما می خواهیم جداول جداگانه ای که ما ایجاد کردیم، به طور دائمی حذف کنیم، از دستور زیر استفاده می کنیم:

جدول DROP personal_info

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

کارمندان DROP DATABASE

از این فرمان با دقت استفاده کنید. دستور DROP تمام اطلاعات داده ها را از پایگاه داده خود حذف می کند. اگر میخواهید سوابق فردی را حذف کنید، از دستور DELETE از زبان دستکاری داده استفاده کنید.

دستورات زبان دستکاری داده ها

زبان دستکاری داده ها (DML) برای بازیابی، قرار دادن و اصلاح اطلاعات پایگاه داده مورد استفاده قرار می گیرد. این دستورات توسط تمام کاربران پایگاه داده در طول عملیات روزمره پایگاه داده مورد استفاده قرار می گیرند.

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

وارد کردن مقادیر personal_info ('bart'، 'simpson'، 12345، 45000 $)

توجه داشته باشید که چهار مقدار مشخص شده برای ضبط وجود دارد. این ها به ویژگی های جدول در ترتیب آنها تعریف شده است: first_name، last_name، employee_id و حقوق و دستمزد.

انتخاب کنید. دستور SELECT فرماندهی رایج ترین در SQL است. این اجازه می دهد تا کاربران پایگاه داده برای بازیابی اطلاعات خاص خود را از یک پایگاه داده عملیاتی بازیابی کنند. نگاهی به چند نمونه، دوباره با استفاده از جدول personal_info از پایگاه داده کارمند.

دستور زیر نشان داده شده تمام اطلاعات موجود در table personal_info را بازیابی می کند. توجه داشته باشید که ستاره به عنوان یک علامت در SQL استفاده می شود. این به معنای واقعی کلمه "انتخاب همه چیز از جدول personal_info" است.

انتخاب * از personal_info

به علاوه، کاربران ممکن است مایل باشند ویژگی هایی را که از پایگاه داده بازیابی می شوند محدود کنند. به عنوان مثال، بخش منابع انسانی می تواند یک لیست از نام های آخر همه کارکنان شرکت را درخواست کند. دستور SQL زیر تنها آن اطلاعات را بازیابی می کند:

SELECT last_name FROM personal_info

Clause WHERE می تواند برای محدود کردن سوابق مورد استفاده برای کسانی که معیارهای مشخص را برآورده می کنند استفاده شود. مدیر عامل ممکن است علاقه مند به بررسی سوابق پرسنل تمام کارکنان با درآمد بالا باشد. دستور زیر تمامی اطلاعات موجود در personal_info را برای پرونده هایی که ارزش حقوق و دستمزد بیشتر از 50،000 دلار دارند بازیابی می کند:

SELECT * FROM personal_info WHERE حقوق> 50000 دلار

به روز رسانی. دستور UPDATE می تواند مورد استفاده برای تغییر اطلاعات موجود در یک جدول باشد، به صورت فله یا به صورت جداگانه. فرض بر این است که این شرکت به کارمندان خود اجازه می دهد که سالانه 3 درصد افزایش قیمت زندگی خود را به دست آورند. دستور SQL زیر را می توان برای سرعت اعمال این به تمام کارکنان ذخیره شده در پایگاه داده استفاده کرد:

UPDATE personal_info SET salary = salary * 1.03

هنگامی که کارمند جدید بارت سیمپسون عملکرد فوق العاده و فراتر از فراخوانی وظیفه را نشان می دهد، مدیریت تمایل دارد تا دستاوردهای ستاره ای خود را با افزایش 5000 دلار به رسمیت بشناسد. از WHERE clause می توان برای برداشتن بارت برای این افزایش استفاده کرد:

UPDATE personal_info SET salary = حقوق و دستمزد + 5000 $ WHERE employee_id = 12345

حذف. در نهایت، بیایید نگاهی به دستور DELETE کنیم. شما می بینید که نحو این فرمان شبیه دستورات دیگر DML است. متاسفانه، آخرین گزارش درآمد شرکت ما کاملا انتظارات را برآورده نمی کند و بارت ضعیف شده است. دستور DELETE با یک جمله WHERE می تواند برای حذف رکورد خود از جدول personal_info استفاده شود:

DELETE FROM personal_info WHERE employee_id = 12345

پیوندها

اکنون که مبانی SQL را آموخته اید، وقت آن رسیده است تا یکی از قدرتمندترین مفاهیم که زبان ارائه می دهد، عبارت - JOIN باشد. یک بیانیه ی JOIN به شما امکان می دهد داده ها را در جداول چندگانه ترکیب کنید تا داده های بزرگ زیادی را پردازش کنید. این اظهارات جایی است که قدرت واقعی یک پایگاه داده در آن قرار دارد.

برای کشف استفاده از یک عملیات JOIN پایه برای ترکیب داده ها از دو جدول، با استفاده از جدول PERSONAL_INFO و اضافه کردن یک جدول اضافی به ترکیب ادامه دهید. فرض کنید شما یک جدول به نام DISCIPLINARY_ACTION که با عبارت زیر ایجاد شده است:

CREATE TABLE disciplinary_action (action_id int not null، employee_id int not zero، comment char (500))

این جدول حاوی نتایج اقدامات انضباطی بر کارکنان شرکت است. متوجه خواهید شد که هیچ اطلاعاتی در مورد کارمند به غیر از شماره کارکنان وجود ندارد. آسان است تصور کنید بسیاری از سناریوهایی که ممکن است بخواهید اطلاعات را از جداول DISCIPLINARY_ACTION و PERSONAL_INFO ترکیب کنید.

فرض کنید شما مسئولیت ایجاد یک گزارش را داده اید که اقدامات انضباطی علیه تمام کارکنانی را که حقوق و دستمزد بیش از 40،000 دلار دارند، لیست می کند. استفاده از عملیات JOIN در این مورد ساده است. ما می توانیم این اطلاعات را با استفاده از دستور زیر بازیابی کنیم:

SELECT personal_info.first_name، personal_info.last_name، disciplinary_action.comments FROM personal_info، disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

کد دو جدول را مشخص می کند که ما می خواهیم به clause FROM بپیوندیم و سپس یک عبارت در WHERE قرار می دهیم تا نتایج را به پرونده هایی که با شناسه های کارمند مطابقت دارند محدود کنیم و معیارهای ما را از حقوق و دستمزد بیش از 40،000 دلار برآورده کنیم.