بازی با psql – ایجاد جدول و درج داده (برای مبتدیان)

سلام بچه ها امروز دوباره سعی میکنم در مورد psql بنویسم! در این مقاله برای ساخت جداول و درج داده ها با psql بازی می کنیم.
من در مورد تنظیمات psql، ایجاد کاربر و پایگاه داده در پست قبلی نوشته ام، بنابراین در صورت نیاز به اطلاعات بیشتر به آن پست مراجعه کنید.
قبل از ایجاد یک جدول، باید یک پایگاه داده ایجاد کنیم و مجوزهای کاربر و غیره را تنظیم کنیم. پس بیایید قدم به قدم آنها را بررسی کنیم:D
1. ایجاد پایگاه داده
اول از همه، اجازه دهید به یک ابرکاربر “postgres” وارد شوید. و سپس اجرا کنید CREATE DATABASE <yourdatabasename>
برای ایجاد یک پایگاه داده که ما با آن بازی می کنیم.
این بار من می دوم CREATE DATABASE "Apple Records"
، به منظور ایجاد پایگاه داده به نام “Apple Records”. وقتی کارتان تمام شد، بدوید \l
برای مشاهده لیست پایگاه های داده
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------+----------+----------+---------+-------+-----------------------
Apple Records | postgres | UTF8 | C | C |
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
حالا ببینید من یک پایگاه داده به نام “Apple Records” در لیست دارم!
نکته: فاصله گذاری
اگر می خواهید از فاصله در نام استفاده کنید، از “” برای محصور کردن استفاده کنید. پسندیدن، CREATE DATABASE "Apple Records";
نکته: template1 چیست؟
در PostgreSQL، template1 یک پایگاه داده قالب از پیش تعریف شده است که به عنوان یک پایگاه داده عمل می کند نقشه برای ایجاد پایگاه داده های جدید هنگامی که یک پایگاه داده جدید ایجاد می شود، بر اساس پایگاه داده قالب مشخص شده است و template1 اغلب به عنوان الگوی پیش فرض استفاده می شود.
در این مقاله به عمق آن نمی پردازم. اما اگر علاقه مند هستید، می توانید خودتان آن را بررسی کنید.
2. مجوزهای پایگاه داده را به کاربر اعطا کنید
در مرحله بعد، مجوزهای لازم را به این پایگاه داده به کاربر koshirok بدهید (این نام کاربری من است، اما شما از نام کاربری خود که ایجاد کرده اید استفاده می کنید). اگر هنوز کاربری ندارید، لطفاً به مقاله قبلی مراجعه کرده و مورد جدید ایجاد کنید.
برای اعطای مجوز، کد زیر را اجرا کنید:
GRANT ALL PRIVILEGES ON DATABASE "Apple Records" TO <username>;
در مورد من قبلاً کاربری به نام “koshirok” دارم، بنابراین اجرا می کنم GRANT ALL PRIVILEGES ON DATABASE "Apple Records" TO koshirok;
3. با کاربر به پایگاه داده متصل شوید
در مرحله بعد، کاربر را از superuser “postgres” به کاربر جدید تغییر می دهیم. استفاده کنید \c
(c به معنای اتصال) دستور مانند زیر.
\c <databasename> <username>
یا، شما همچنین می توانید \q را به کاملا اجرا کنید و اجرا کنید.
psql -U <username> -d <databasename>
از خارج از psql. هر دو یعنی یکسان
اگر کار کرد، دیتابیس خود را از کاربر مجاز که ایجاد کرده اید متصل کرده اید. در نهایت آماده شروع ایجاد جدول هستید!
نکته: خطای طرحواره
بعد از این قسمت یک جدول ایجاد می کنید. در مورد من، هنگام اجرای دستور CREATE TABLE با خطای “ERROR: Permission Denied for schema Public” مواجه شدم.
در برخی موارد، کاربر می تواند با اجرای این دستور این مشکل را برطرف کند: GRANT CREATE ON SCHEMA public TO <username>;
از superuser “postgres”، اما من نتوانستم آن را برطرف کنم (یک پیام دریافت کردم WARNING: no privileges were granted for "public"
و دریافت همان خطا).
متأسفم که این را می گویم، اما هنوز نمی دانم دلیل آن چه بوده است – اما حداقل راه حل را با ایجاد طرحواره جدید مانند این پیدا کردم:
CREATE SCHEMA <schemaname>;
و
GRANT USAGE, CREATE ON SCHEMA <schemaname> TO <username>;
پس از این، می توانم یک جدول بدون خطا ایجاد کنم. بنابراین اگر در مرحله بعد با همان خطا مواجه شدید، این دستورات را امتحان کنید.
بیایید میز شما را بسازیم!
در این مقاله جدولی به نام ایجاد می کنم بیتلز، که همه اعضای گروه را با اطلاعات شخصی در اختیار دارد. اما قبل از آن، بیایید یک جدول و پایه ایجاد کنیم.
CREATE TABLE Beatles ( id SERIAL PRIMARY KEY, name VARCHAR(100), height DECIMAL, weight DECIMAL, instrument VARCHAR(100), birth_place VARCHAR(100), active_years VARCHAR(100) );
کلید اصلی سریال:
SERIAL یک نوع داده برای تولید خودکار اعداد متوالی است. معمولاً برای ستون های کلید اصلی استفاده می شود.
PRIMARY KEY محدودیتی است که یک ستون را به عنوان کلید اصلی تعریف می کند و منحصر به فرد است و رکورد را با استفاده از مقادیر موجود در آن ستون به طور منحصر به فرد شناسایی می کند.
VARCHAR(100):
VARCHAR یک نوع داده رشته ای با طول متغیر است. این می تواند رشته ها را تا یک طول مشخص ذخیره کند. (100) پارامتری است که حداکثر طول یک ستون VARCHAR را مشخص می کند. در این حالت تا 100 کاراکتر قابل ذخیره است.
اعشاری:
DECIMAL یک نوع داده است که یک عدد ممیز شناور با دقت ثابت را نشان می دهد. شما می توانید دقت نقطه اعشار را با تعداد ثابتی از ارقام مشخص کنید.
اکنون جدول ایجاد شده است! اما هنوز عضوی از گروه ندارد. پس بیایید INSERT
داده ها در آن
INSERT INTO Beatles (name, height, weight, instrument, birth_place, active_years)
VALUES ('John Lennon', 179, 70, 'Vocals, Guitar', 'Liverpool, England', '1960-1970'),
('Paul McCartney', 180, 68, 'Vocals, Bass', 'Liverpool, England', '1960-1970'),
('George Harrison', 178, 68, 'Vocals, Guitar', 'Liverpool, England', '1960-1970'),
('Ringo Starr', 173, 65, 'Vocals, Drums', 'Liverpool, England', '1962-1970');
همه چیز آماده است! بریم بدویم SELECT * FROM Beatles;
برای دیدن فهرست مطالب
id | name | height | weight | instrument | birth_place | active_years
----+-----------------+--------+--------+----------------+--------------------+--------------
1 | John Lennon | 179 | 70 | Vocals, Guitar | Liverpool, England | 1960-1970
2 | Paul McCartney | 180 | 68 | Vocals, Bass | Liverpool, England | 1960-1970
3 | George Harrison | 178 | 68 | Vocals, Guitar | Liverpool, England | 1960-1970
4 | Ringo Starr | 173 | 65 | Vocals, Drums | Liverpool, England | 1962-1970
من می خواستم در مورد حذف و ویرایش جدول بنویسم، اما امیدوارم بتوانم یک بار دیگر این کار را انجام دهم. ممنون که خواندید، کدنویسی مبارک 🙂