صفحه شخصی مجید ابراهیمی

گزارش هفته آخر کارآموزی

1.  مقدمه

2.  شناسه ها در MySQL

3.  انواع داده ستون ها

      1-3 انواع عددی
      2-3 انواع تاریخ و زمان
      3-3 انواع رشته ای

4.  دستورات SQL

1-4 ایجاد بانک اطلاعاتی

2-4 حذف بانک اطلاعاتی

3-4 بازکردن بانک اطلاعاتی

4-4 خروج از MySQL

5-4 ایجاد جدول

 

 

 

 

 

 

1- مقدمه

در هفته چهارم کارآموزی من با شی گرایی در PHPو مفهوم بانک های اطلاعاتی و نصب MySQLآشنا شدم. هدف من در این هفته از کارآموزی یادگیری مقدمات MySQLو SQLو ارتباط PHPبا MySQLاست.

 

 

2- شناسه ها در MySQL


شناسه ها عناصری هستند که در سیستم مدیریت بانک اطلاعاتی وجود دارند.
سه نوع شناسه معروف در MySQLعبارتند از :

·  بانک های اطلاعاتی

·  جدول ها

·  ستون ها (فیلد ها)

 

     بانک های اطلاعاتی در MySQLمانند دایرکتوری در ساختار فایل هستند ، و جدول ها مانند فایل های داخل دایرکتوری می      باشند. یعنی ، وقتی در MySQLیک بانک اطلاعاتی به نام testایجاد می کنید ، یک دایرکتوری به نام testدر مسیر mysqldataایجاد می شود. وقتی جدول هایی را برای بانک اطلاعاتی testایجاد می کنید ، این جدول ها مثل فایل ها در پوشه testایجاد می شوند. اگر سیستم عامل مورد استفاده ، نسبت به حروف نام دایرکتوری و فایل حساس باشد ، اسامی بانک اطلاعاتی و جدول ها نیز نسبت به حروف حساس خواهند بود. اسامی فیلد ها (ستون ها) نسبت به حروف حساس نیست.

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

 

 

 

3- انواع داده ستون ها

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

 

در MySQLسه نوع داده وجود دارد که عبارتند از :

·  نوع داده عددی

·   نوع داده تاریخ و زمان

·   نوع داده رشته ای

 

هر کدام از این سه نوع به چند دسته تقسیم می شوند که اندازه های مختلفی دارند. یک قاعده کلی در مورد انتخاب نوع فیلد این است که کوچکترین نوع متناسب با داده ها انتخاب شوند. به عنوان مثال ، اگر نوع عددی صحیح برای ذخیره داده ها کافی است ، از نوع اعشاری استفاده نشود. برای بعضی از انواع داده ها می توان حداکثر طول را مشخص کرد.

 

 

1-3 انواع عددی

 

انواع عددی ، اعداد صحیح یا اعشاری هستند. برای اعداد اعشاری می توان تعداد ارقام بعد از اعشار را مشخص کرد. اگر mرا طول عدد و dرا تعداد ارقام اعشار در نظر بگیریم ، dمی تواند حداکثر برابر 30 باشد. در مورد اعداد صحیح می توان مشخص کرد که آیا بدون علامت باشند یا خیر. برای هر یک از انواع عددی می توان صفت zerofillرا مشخص کرد. وقتی فیلد هایی با این صفت نمایش داده می شوند ، قبل از آن ها صفر قرار می گیرد. اگر ستونی را با صفت zerofillمشخص کنید ، بطور خودکار بدون علامت در نظر گرفته می شود.

 

انواع عددی صحیح و اعشاری را در جدول های زیر مشاهده می کنید :

 

انواع داده صحیح

نوع

شرح

TINYINT[(m)]

اعداد صحیح خیلی کوچک، mتعداد ارقام است.

BIT

مثل TINYINT

BOOL

مثل TINYINT

SMLLINT[(m)]

اعداد صحیح کوچک

MEDIUMINT[(m)]

اعداد صحیح متوسط

INT[(m)]

اعداد صحیح معمولی

INTEGER[(m)]

مثل INT

BIGINT[(m)]

اعداد صحیح بزرگ

 

 

 

انواع عددی اعشاری (pدقت، mطول و dارقام اعشار را مشخص می کند)

نوع

شرح

FLOAT(p)

اعشاری دقت معمولی و مضاعف

FLOAT[(m,d)]

اعشاری دقت معمولی که معادل FLOAT(4)است.

DOUBLE[(m,d)]

اعشاری دقت مضاعف که معادل FLOAT(8)است.

DOUBLE PRECISION[(m,d)]

مثل قبلی

REAL[(m,d)]

مثل قبلی

DECIMAL[(m,d)]

عدد اعشاری که بصورت کاراکتری ذخیره می شود و بازه آن به mبستگی دارد.

NUMBERIC[(m,d)]

مثل قبلی

DEC[(m,d)]

مثل قبلی

 

 

 

 

2-3 انواع تاریخ و زمان

 

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

 

انواع داده تاریخ و زمان

نوع

شرح

DATE

تاریخ که بصورت yyyy-mm-ddنمایش داده می شود.

TIME

زمان که بصورت hh:mm:ssنمایش داده می شود.

DATETIME

زمان و تاریخ که بصورت قبلی نمایش داده می شود.

 

 

 

3-3 انواع رشته ای

 

انواع رشته ای سه دسته اند :

 

 دسته اول متن معمولی اند که با CHARو VARCHARمشخص می شوند. CHARمتنی با طول ثابت و VARCHARمتنی با طول متغیر را مشخص می کند. یعنی در متن هایی که از نوع CHARهستند، اگر تعداد کاراکترها کمتر باشد با فضای خالی پر می شوند.

 

دسته دوم از نوع TEXTو BLOBهستند که در اندازه های مختلفی می باشند. این ها به ترتیب برای متن های طولانی تر یا داده های باینری به کار می روند. انواع BLOBمی توانند هر چیزی ، از جمله تصویر و صوت را ذخیره کنند. در واقع، این دو ستون یکسان هستند ولی TEXTنسبت به حروف حساس است. ولی BLOBاین طور نیست.

 

دسته سوم از نوع رشته ای، SETو ENUMهستند. SETمشخص می کند که مقادیر این ستون باید از مجموعه خاصی از مقادیر بیایند. ستون می تواند حاوی بیش از یک مقدار باشد. حداکثر 64 مقدار را می توانید در یک مجموعه معین داشته باشید. ENUMیک نوع شمارشی است. خیلی شبیه به SETاست، با این تفاوت که ستونی از این نوع فقط می تواند یک مقدار از مقادیر مشخص شده یا NULLرا بپذیرد. در نوع شمارشی می توانید 65535 مقدار را داشته باشید.

 

انواع داده رشته ای در جدول های زیر آمده است :

 

انواع رشته ای معمولی

نوع

شرح

CHAR(m)

رشته طول ثابت با طول m

CHAR

مثل CHAR[1]

VARCHAR

رشته طول متغیر

VARCHAR(m)

رشته طول متغیر

 

 

 

انواع رشته ای TEXTو BLOB

نوع

شرح

TINYBLOB

فیلد BLOBکوچک

TINYTEXT

فیلد TEXTکوچک

BLOB

فیلد BLOBبا اندازه نرمال

TEXT

فیلد TEXTبا اندازه نرمال

MEDIUMBLOB

فیلد BLOBبا اندازه متوسط

MEDIUMTEXT

فیلد TEXTبا اندازه متوسط

LONGBLOB

فیلد BLOBبزرگ

LONGTEXT

فیلد TEXTبزرگ

 

 

 

انواع رشته ای SETو ENUM

نوع

شرح

ENUM(‘v1’,’v2’,…)

این نوع ستون ها فقط یکی از مقادیر مذکور یا NULLرا می پذیرند.

SET(‘v1’,’v2’,…)

این نوع ستون ها، مجموعه ای از مقادیر یا NULLرا می پذیرند.

 

 

 

 

 

4 - دستورات SQL

 

SQLیک زبان ساخت یافته است که برای دستیابی به سیستم های مدیریت بانک اطلاعاتی رابطه ای به کار می رود. SQLبرای ذخیره داده ها در بانک اطلاعاتی و بازیابی آن ها استفاده می شود. دستورات SQLدر بانک های اطلاعاتی مثل MySQL، Oracle، SQL Serverو ... قابل استفاده است. SQLمربوط به MySQLبا SQLاستاندارد اندکی تفاوت دارد و ممکن است در آینده به عنوان استاندارد MySQLمحسوب شوند.

 

 

1-4 ایجاد بانک اطلاعاتی

 

برای ایجاد بانک اطلاعاتی با دستورات SQL، از دستور create databaseبصورت زیر استفاده می کنیم :

 ;نام بانک اطلاعاتیcreate database

نام بانک اطلاعاتی یک شناسه است که روش نام گذاری آن را توضیح دادیم. به عنوان مثال برای ایجاد یک بانک اطلاعاتی به نام studentبصورت زیر عمل می کنیم :

Create database student ;

این دستور یک بانک اطلاعاتی به نام studentرا ایجاد می کند. توجه کنید که انتهای دستور به ;ختم شده است.

 

 

 

2-4 حذف بانک اطلاعاتی

 

برای حذف بانک اطلاعاتی از دستور drop databaseبصورت زیر استفاده می کنیم :

drop database dname ;

dnameنام بانک اطلاعاتی است که باید حذف شود. هنگام استفاده از این دستور، دقت کافی داشته باشید، زیرا موجب حذف تمام جدول ها و اطلاعات موجود در بانک اطلاعاتی می شود.

 

 

 

3-4 بازکردن بانک اطلاعاتی

 

برای کارکردن با بانک اطلاعاتی باید آن را باز کنید. برای این منظور از دستور useبصورت زیر استفاده می شود :

 

 ;نام بانک اطلاعاتیuse

نام بانک اطلاعاتی مشخص می کند از کدام بانک اطلاعاتی می خواهید استفاده کنید.

به عنوان مثال دستور زیر بانک اطلاعاتی studentرا باز می کند :

>use student ;

 

در پاسخ به این دستور پیام زیر ظاهر می شود :

Database changed

معنایش این است که دستور useبا موفقیت اجرا شده است.

 

(برای صرفه جویی، در هنگام ارائه مثالهایی در مورد اجرای دستورات SQL، نام و مسیر فعلی را ذکر نمی کنیم، بلکه فقط به استفاده از علامت < اکتفا می کنیم.)

 

 

 

4-4 خروج از MySQL

 

روش ورود به محیط MySQLو اجرای دستورات SQLرا دیدید. برای اینکه از این محیط خارج شوید، از دستور quitبصورت زیر استفاده می کنیم :

quit ;

 

اکنون پیام Byeرا خواهید دید که به معنای خروج از محیط MySQLاست.

 

 

 

5-4 ایجاد جدول

 

پس از اینکه بانک اطلاعاتی ایجاد شد، باید بتوانید جدول هایی را در آن ایجاد کنید. برای ایجاد جدول، از دستور create tableبصورت زیر استفاده می شود :

 

مثال :

Create table tname

(field 1 datatype,

 field 2 datatype,

 …

 field n datatype

);

 

در این دستور tnameنام جدول، field 1تا field nاسامی فیلد های (ستون های) جدول و datatypeنوع هر فیلد است. صفات دیگری نیز وجود دارن که می توان برای فیلد های جدول در نظر گرفت. به عنوان مثال صفت NULLیا NOT NULLرا برای فیلدی در نظر می گیریم :

Field 1 int unsigned not null

 

معنایش این است که field 1از نوع intبدون علامت است و در هیچ سطری از جدول، این فیلد نمی تواند تهی باشد. اگر به جای not nullاز nullاستفاده کنیم، معنایش این است که این فیلد می تواند خالی باشد.

 

صفت مهم دیگر auto_incrementاست. اگر فیلدی را با این صفت در نظر بگیریم، معنایش این است که اگر هنگام ورود داده ها ، مقداری برای آن وارد نشود، MySQLبطور خودکار یک مقدار یکتا را برای آن تولید می کند.

 

توجه کنید که فقط یکی از فیلدها در هر جدول می تواند دارای این خاصیت باشد.

 

صفت مهم دیگری که می توان برای فیلد های جدول در نظر گرفت، انتخاب آن به عنوان کلید اصلی است. این صفت با واژه های primary keyمشخص می شود.

به عنوان مثال ، field 1را با این صفت اعلان می کنیم :

field1 int unsigned not null auto_increment primary key

 

توجه کنید که فقط یکی از فیلدها در جدول می تواند این خاصیت را داشته باشد.

 

صفت دیگر binaryاست که فقط با فیلدهایی از نوع charو varcharبه کار می رود و موجب می شود آن فیلدها نسبت به حروف حساس باشند.

 

آخرین صفتی که می توان برای فیلد های جدول در نظر گرفت ، صفت defaultاست که مقدار اولیه ای را برای فیلد در نظر می گیرد. این صفت بصورت زیر به کار می رود :

default ‘default_value’

 

default_valueمقداری است که به عنوان مقدار اولیه فیلد منظور می شود. به عنوان مثال تعریف field3را بصورت زیر در نظر بگیرید :

field3 mediumint(10) default ‘0’ not null

 

این فیلد از نوع صحیح متوسط با مقدار اولیه صفر در نظر گرفته می شودو نمی تواند تهی باشد.

 

 

 

 

مشاهده اسامی جدول های بانک اطلاعاتی

 

برای اینکه از جدول های موجود در بانک اطلاعاتی آگاهی پیدا کنیم، از دستور show tablesاستفاده می کنیم. قبل از به کارگیری این دستور، باید بانک اطلاعاتی مورد نظرتان را باز کنید :

>use student

>show tables

 

کسب اطلاعاتی راجع به جدول

 

با استفاده از دستور describeمی توانید اطلاعات مفیدی راجع به جدول ها کسب کنید. این اطلاعات شامل نام فیلد، نوع فیلد و سایر صفاتی است که در هنگام تعریف جدول تعیین کردید. این دستور بصورت زیر بکار می رود :

describe tname ;

 

وارد کردن اطلاعات در جدول

 

پس از اینکه جدول را ایجاد کردید و احتمالا تغییرات مورد نیاز را در ساختارش بوجود آوردید، می توانید اطلاعات را وارد جدول کنید. برای ورود اطلاعات به جدول از دستور insert intoبصورت زیر استفاده می شود :

Insert into table [(column1 , column2 , column3 , …)] values

(value1 , value2 , value3 , …) ;

 

در این جا منظور از columnها همان نام ستون ها است و منظور از valueها ، مقادیری است که باید در این ستون ها قرار گیرند.

 

 

بازیابی داده ها از جدول

 

برای بازیابی داده ها از جدول بانک اطلاعاتی از دستور selectاستفاده می شود. ساده ترین شکل کاربرد آن بصورت زیر است :

select item from tname ;

 

در این دستور، itemاسامی فیلد های جدول است و tnameنام جدولی است که اطلاعات آن باید بازیابی شود. اگر به جای itemاز *استفاده شود، تمام فیلد ها منظور خواهند شد.

 

به عنوان مثال ، دستورات زیر محتویات جدول booksرا نمایش می دهد :

>use student ;

>select * from books ;

 

دستور زیر فقط فیلد های isbnو titleرا از جدول booksنشان می دهد :

 

>select isbn , title from books ;

 

 

بازیابی رکوردهای خاص

 

شکل ساده ای از دستور selectرا برای انتخاب تمام رکورد ها از جدول دیدید. اکنون آن را طوری کامل می کنیم که بتوان رکورد های خاصی را از جدول بازیابی کرد.

 دستور selectبرای بازیابی رکوردهای خاص بصورت زیر به کار می رود :

 

select item from tname

where condition ;

 

با استفاده از گزینه whereمی توان داده هایی را پیدا کرد که در شرایط خاصی صدق می کنند. این شرایط با عملگرهای مقایسه ای ساخته می شوند.

 

 

 

بازیابی رکورد ها بصورت مرتب شده

 

داده های جدول را می توان طوری بازیابی کرد که بر اساس فیلدی بطور صعودی یا نزولی مرتب باشند. برای این منظور از گزینه order byاستفاده می شود :

select item from tname

[where condition]

order by order_type ;

 

order_typeشامل نام فیلد و یکی از دو گزینه ascیا descاست. گزینه ascموجب مرتب سازی صعودی و گزینه descموجب مرتب سازی نزولی می شود. اگر هیچ کدام از این دو گزینه ظاهر نشود، مرتب سازی صعودی را خواهیم داشت.

 

 

دسته بندی و جمع بندی داده ها

 

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

متداول ترین آنها در جدول زیر آمده است :

 

توابع جمع بندی در MySQL

تابع

شرح

ave(column)

میانگین مقادیر یک ستون را مشخص می کند.

count(item)

اگر ستونی را مشخص کنید،تعداد مقادیر غیر صفر را در آن ستون مشخص می کند. اگر جلوی ستون از distinctاستفاده کنید،تعداد مقادیر مجزا را مشخص می کند.count(*)تمام سطرها را می شمارد.

min(column)

کوچکترین مقدار یک ستون را مشخص می کند.

max(column)

بزرگترین مقدار یک ستون را مشخص می کند.

std(column)

انحراف معیار مقادیر یک ستون را مشخص می کند.

stddev(column)

مثل std

sum(column)

مجموع مقادیر ستون را مشخص می کند.

 

 

علاوه بر جمع بندی ستون ها، می توان گروه بندی رکوردها را نیز انجام داد. این کار با گزینه group byدر دستور selectانجام می گیرد :

select items from tname

[where condition]

[order by order_type]

group by group_type ;

 

بازیابی رکورد ها از سطر خاص

 

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

select items from tname

[where condition]

[order by order_type]

[group by group_type]

Limit limit_criteria ;

 

 

حذف رکوردها از جدول بانک اطلاعاتی

 

برای حذف رکوردها از جدول بانک اطلاعاتی از دستور deleteبصورت زیر استفاده می شود.

 

delete from tname

[where condition]

[limit number]

 

tnameنام جدولی است که رکوردها باید از آن حذف شوند. با whereاز دستور selectآشنایی داریم. این گزینه برای حذف رکوردهایی به کار می رود که در شرایط خاصی صدق کنند. گزینه limitمشخص می کند چند رکورد حذف شوند. numberتعداد این رکوردها را تعیین می کند.

به عنوان مثال دستور زیر تمامی رکوردهای جدول studentرا حذف می کند :

delete from student ;

 

 

به هنگام سازی رکوردهای جدول

 

برای به هنگام سازی کردن رکوردهای جدول از دستور updateاستفاده می شود. منظور از به هنگام سازی رکوردها، هرگونه تغییری است که در داده های جدول ایجاد می شود. دقت کنید که تغییر در ساختار جدول به عنوان به هنگام سازی محسوب نمی شود. دستور updateبصورت زیر به کار می رود :

 

update tname

set column1 = exp1 , column2 = exp2 , …

[where condition]

[limit number]

 

tnameنام جدولی است که باید به هنگام سازی شود. Column1و column2و... اسامی ستون هایی هستند که مقادیر آن ها با عبارات exp1و exp2و... عوض می شود.

 

 

حذف جدول

 

برای حذف جدولی از بانک اطلاعاتی، ابتدا باید بانک اطلاعاتی را باز کنید و سپس از دستور drop tableبصورت زیر استفاده کنید :

drop table tname ;

 

[ 0 نظر ]
فارغ التحصیل رشته مهندسی کامپیوتر - نرم افزار توسعه دهنده backend توسعه دهنده android طراح سایت
صفحه اصلی
پست الکترونیک
can't open file