کتابخانه‌ی استاندارد · پایگاه داده

مای اس کیو ال db/mysql

اتصال به MySQL و MariaDB.

واردسازی دیتابیس.مای اس کیو ال
در این صفحه
  1. گونه‌ها
  2. روال‌ها

این بسته از کتابخانه‌ی کارخواه MySQL (libmysqlclient یا libmariadb) استفاده می‌کند که باید روی سیستم نصب باشد؛ نمونه‌ها برای همین فقط بررسی می‌شوند و اجرا نمی‌شوند. برای متن فارسی پس از اتصال تنظیم کدینگ را با utf8mb4 صدا بزنید.

گونه‌ها

پایگاه داده Database

ساختار پایگاه داده
یک اتصال MySQL.
نامانگلیسیگونهتوضیح
handlehandleتهی*اشاره‌گر کتابخانه.
db-mysql-Client.salam
واردسازی دیتابیس
واردسازی دیتابیس.مای اس کیو ال

روال ریشه:
    اگر وارونه مای اس کیو ال.در دسترس():
        سرچاپ "کتابخانه‌ی MySQL نصب نیست"
        برگشت
    پایان
    _ := مای اس کیو ال.آماده سازی کتابخانه()
    _ := مای اس کیو ال.آماده سازی نخ()
    سرچاپ مای اس کیو ال.نسخه کلاینت()
    پ := مای اس کیو ال.بازکردن("127.0.0.1"، "app"، "s3cret"، "shop"، ۳۳۰۶)
    اگر وارونه مای اس کیو ال.معتبر(پ):
        سرچاپ مای اس کیو ال.کدخطا(پ)، مای اس کیو ال.خطا(پ)
        برگشت
    پایان
    سرچاپ مای اس کیو ال.نسخه سرور(پ)، مای اس کیو ال.پینگ(پ)
    _ := مای اس کیو ال.تنظیم کدینگ(پ، "utf8mb4")
    _ := مای اس کیو ال.انتخاب پایگاه داده(پ، "shop")
    نام := مای اس کیو ال.اسکیپ(پ، "O'Brien")
    _ := مای اس کیو ال.اجرا(پ، "INSERT INTO customers (name) VALUES ('" + نام + "')")
    سرچاپ مای اس کیو ال.شناسه آخرین درج(پ)، مای اس کیو ال.ردیف های تحت تاثیر(پ)، مای اس کیو ال.تعداد تغییرات(پ)

    _ := مای اس کیو ال.ثبت خودکار(پ، نادرست)
    _ := مای اس کیو ال.شروع تراکنش(پ)
    _ := مای اس کیو ال.اجرا(پ، "UPDATE products SET stock = stock - 1 WHERE id = 7")
    اگر مای اس کیو ال.پرسمان عدد(پ، "SELECT stock FROM products WHERE id = 7") < ۰:
        _ := مای اس کیو ال.بازگردانی(پ)
    وگرنه:
        _ := مای اس کیو ال.ثبت تراکنش(پ)
    پایان

    ناپایا ن := مای اس کیو ال.پرسمان(پ، "SELECT id, name, price, note FROM products")
    اگر مای اس کیو ال.پرسمان معتبر(ن):
        سرچاپ مای اس کیو ال.تعداد ستون(ن)، مای اس کیو ال.تعداد ردیف(ن)، مای اس کیو ال.نام ستون(ن، ۱)
        تا مای اس کیو ال.بعدی(ن):
            سرچاپ مای اس کیو ال.عدد صحیح(ن، ۰)، مای اس کیو ال.متن(ن، ۱)، مای اس کیو ال.عدد اعشار(ن، ۲)، مای اس کیو ال.عدد صحیح۶۴(ن، ۰)، مای اس کیو ال.خالی است(ن، ۳)
        پایان
        مای اس کیو ال.پایان(ن)
    پایان
    سرچاپ مای اس کیو ال.پرسمان متن(پ، "SELECT VERSION()")

    ا := مای اس کیو ال.اتصال(پ)
    سرچاپ ا.نوع()، دیتابیس.پرسمان عدد(ا، "SELECT COUNT(*) FROM products")
    سرچاپ پ.نوع()، پ.پینگ()، پ.نقل قول("x'y")
    ر := پ.پرسمان("SELECT name FROM customers")
    تا ر.بعدی():
        سرچاپ ر.متن(۰)
    پایان
    _ := ر.بستن()
    مای اس کیو ال.بستن(پ)
    مای اس کیو ال.پایان نخ()
    مای اس کیو ال.پایان کتابخانه()
    _ := مای اس کیو ال.بازکردن کامل("localhost"، "app"، "s3cret"، "shop"، ۰، "/tmp/mysql.sock"، ۰ برگردان طبیعی۶۴)
پایان

نوع Kind

روال نوع(): رشته
نام موتور پایگاه داده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

معتبر Ok

روال معتبر(): منطقی
سالم است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پینگ Ping

روال پینگ(): منطقی
اتصال زنده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

اجرا Exec

روال اجرا(sql: رشته): صحیح
دستوری را اجرا می‌کند؛ صفر یعنی موفق.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پرسمان Query

روال پرسمان(sql: رشته): dyn db.Rows
پرسمانی را اجرا می‌کند و ردیف‌ها را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

شروع تراکنش Begin

روال شروع تراکنش(): dyn db.Tx
تراکنشی آغاز می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

شناسه آخرین درج LastInsertId

روال شناسه آخرین درج(): صحیح۶۴
شناسه‌ی آخرین ردیف درج‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تعداد تغییرات Changes

روال تعداد تغییرات(): صحیح۶۴
شمار ردیف‌هایی که آخرین دستور تغییر داد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

خطا Error

روال خطا(): رشته
آخرین پیام خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نقل قول Quote

روال نقل قول(s: رشته): رشته
رشته را با نقل‌قول و گریز امن برای SQL برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بستن Close

روال بستن(): صحیح
می‌بندد و آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نتیجه Result

ساختار نتیجه
نتیجه‌ی یک پرسمان.
نامانگلیسیگونهتوضیح
handlehandleتهی*اشاره‌گر نتیجه.
rowrowتهی*ردیف جاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

معتبر Ok

روال معتبر(): منطقی
سالم است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بعدی Next

روال بعدی(): منطقی
به ردیف بعدی می‌رود؛ اگر ردیفی نماند، نادرست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تعداد ستون ColumnCount

روال تعداد ستون(): صحیح
شمار ستون‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نام ستون ColumnName

روال نام ستون(col: صحیح): رشته
نام ستون.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نوع ستون ColumnType

روال نوع ستون(col: صحیح): صحیح
گونه‌ی مقدار ستون در ردیف جاری، یکی از ثابت‌های نوع ... در دیتابیس.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

خالی است IsNull

روال خالی است(col: صحیح): منطقی
مقدار ستون تهی است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

متن Text

روال متن(col: صحیح): رشته
مقدار ستون به شکل متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

عدد صحیح Int

روال عدد صحیح(col: صحیح): صحیح
مقدار ستون به شکل عدد صحیح.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

عدد صحیح۶۴ Int64

روال عدد صحیح۶۴(col: صحیح): صحیح۶۴
مقدار ستون به شکل عدد ۶۴ بیتی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

عدد اعشار Float

روال عدد اعشار(col: صحیح): اعشار۶۴
مقدار ستون به شکل اعشاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بستن Close

روال بستن(): صحیح
می‌بندد و آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تراکنش Txn

ساختار تراکنش
یک تراکنش.
نامانگلیسیگونهتوضیح
handlehandleتهی*اشاره‌گر اتصال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

معتبر Ok

روال معتبر(): منطقی
سالم است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

اجرا Exec

روال اجرا(sql: رشته): صحیح
دستوری را اجرا می‌کند؛ صفر یعنی موفق.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پرسمان Query

روال پرسمان(sql: رشته): dyn db.Rows
پرسمانی را اجرا می‌کند و ردیف‌ها را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

ثبت تراکنش Commit

روال ثبت تراکنش(): صحیح
تراکنش را ثبت می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بازگردانی Rollback

روال بازگردانی(): صحیح
تراکنش را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

روال‌ها

در دسترس Available

روال در دسترس(): منطقی
کتابخانه‌ی کارخواه MySQL در دسترس است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نسخه کلاینت ClientVersion

روال نسخه کلاینت(): رشته
نسخه‌ی کتابخانه‌ی کارخواه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نسخه سرور ServerVersion

روال نسخه سرور(db: پایگاه داده): رشته
نسخه‌ی سرور.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بازکردن Open

روال بازکردن(host: رشته، user: رشته، pass: رشته، dbname: رشته، port: صحیح): پایگاه داده
به سرور وصل می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بازکردن کامل OpenFull

روال بازکردن کامل(host: رشته، user: رشته، pass: رشته، dbname: رشته، port: صحیح، socket: رشته، flags: طبیعی۶۴): پایگاه داده
با سوکت یونیکس و پرچم‌های اتصال وصل می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

معتبر Ok

روال معتبر(db: پایگاه داده): منطقی
اتصال برقرار است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بستن Close

روال بستن(db: پایگاه داده)
اتصال را می‌بندد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پینگ Ping

روال پینگ(db: پایگاه داده): منطقی
اتصال زنده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

انتخاب پایگاه داده SelectDB

روال انتخاب پایگاه داده(db: پایگاه داده، name: رشته): صحیح
پایگاه داده‌ی جاری را عوض می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تنظیم کدینگ SetCharset

روال تنظیم کدینگ(db: پایگاه داده، charset: رشته): صحیح
کدگذاری نویسه‌ها را تعیین می‌کند؛ برای فارسی utf8mb4.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

خطا Error

روال خطا(db: پایگاه داده): رشته
آخرین پیام خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

کدخطا Errno

روال کدخطا(db: پایگاه داده): صحیح
کد آخرین خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

اجرا Exec

روال اجرا(db: پایگاه داده، sql: رشته): صحیح
دستوری را اجرا می‌کند؛ صفر یعنی موفق.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

ردیف های تحت تاثیر AffectedRows

روال ردیف های تحت تاثیر(db: پایگاه داده): صحیح۶۴
شمار ردیف‌های تغییرکرده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تعداد تغییرات Changes

روال تعداد تغییرات(db: پایگاه داده): صحیح۶۴
مثل روال بالا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

شناسه آخرین درج LastInsertId

روال شناسه آخرین درج(db: پایگاه داده): صحیح۶۴
شناسه‌ی آخرین ردیف درج‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

شروع تراکنش Begin

روال شروع تراکنش(db: پایگاه داده): صحیح
تراکنش آغاز می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

ثبت تراکنش Commit

روال ثبت تراکنش(db: پایگاه داده): صحیح
ثبت می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بازگردانی Rollback

روال بازگردانی(db: پایگاه داده): صحیح
برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

ثبت خودکار Autocommit

روال ثبت خودکار(db: پایگاه داده، enabled: منطقی): صحیح
ثبت خودکار هر دستور را روشن یا خاموش می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پرسمان Query

روال پرسمان(db: پایگاه داده، sql: رشته): نتیجه
پرسمانی را اجرا می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پرسمان معتبر QueryOk

روال پرسمان معتبر(res: نتیجه): منطقی
پرسمان نتیجه داد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

بعدی Next

روال بعدی(res &: نتیجه): منطقی
به ردیف بعدی می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پایان Finish

روال پایان(res: نتیجه)
نتیجه را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تعداد ستون ColumnCount

روال تعداد ستون(res: نتیجه): صحیح
شمار ستون‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

تعداد ردیف RowCount

روال تعداد ردیف(res: نتیجه): صحیح۶۴
شمار ردیف‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

نام ستون ColumnName

روال نام ستون(res: نتیجه، col: صحیح): رشته
نام ستون.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

متن Text

روال متن(res: نتیجه، col: صحیح): رشته
مقدار ستون به شکل متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

عدد صحیح Int

روال عدد صحیح(res: نتیجه، col: صحیح): صحیح
عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

عدد صحیح۶۴ Int64

روال عدد صحیح۶۴(res: نتیجه، col: صحیح): صحیح۶۴
عدد ۶۴ بیتی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

عدد اعشار Float

روال عدد اعشار(res: نتیجه، col: صحیح): اعشار۶۴
اعشاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

خالی است IsNull

روال خالی است(res: نتیجه، col: صحیح): منطقی
تهی است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

اسکیپ Escape

روال اسکیپ(db: پایگاه داده، s: رشته): رشته
نویسه‌های خاص رشته را برای SQL گریز می‌دهد؛ نقل‌قول‌ها را خودتان بگذارید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پرسمان عدد QueryInt

روال پرسمان عدد(db: پایگاه داده، sql: رشته): صحیح
نخستین ستون نخستین ردیف به شکل عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پرسمان متن QueryText

روال پرسمان متن(db: پایگاه داده، sql: رشته): رشته
به شکل متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

آماده سازی کتابخانه LibraryInit

روال آماده سازی کتابخانه(): منطقی
کتابخانه را آماده می‌کند؛ در برنامه‌های چندنخی پیش از هر اتصال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پایان کتابخانه LibraryEnd

روال پایان کتابخانه()
کتابخانه را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

آماده سازی نخ ThreadInit

روال آماده سازی نخ(): منطقی
نخ جاری را آماده می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

پایان نخ ThreadEnd

روال پایان نخ()
منابع نخ را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam

اتصال Conn

روال اتصال(d: پایگاه داده): dyn db.Connection
اتصال را به شکل اتصال مشترک برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-mysql-Client.salam