====== Technical Reference ====== ===== Command Line Access ===== Our postgres server can be accessed from the command line via ''psql'' (the PostgreSQL interactive terminal): $ psql -h postgres -U username -d dbname \\ where ''username'' is name of your CS account and ''dbname'' is the name of your database. You will be prompted to enter your password. You should enter your Linux CS account password, not your Vassar password. For more information about the ''psql'' command see: https://www.postgresql.org/docs/11/app-psql.html For example: mlsmith@mote:~$ psql -h postgres -U mlsmith -d university Password for user mlsmith: psql (10.10 (Ubuntu 10.10-0ubuntu0.18.04.1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. university=# \\ From within ''psql'' there, a few useful commands are: \dt -- to display metadata for the tables in the database \d tablename -- to display metadata for a particular table in the database \? -- to display help on psql command line options \h -- to display help on SQL commands \q -- to quit out of psql and return to the linux prompt ($) \\ For example: university=# \dt List of relations Schema | Name | Type | Owner --------+------------+-------+--------- public | advisor | table | mlsmith public | classroom | table | mlsmith public | course | table | mlsmith public | department | table | mlsmith public | instructor | table | mlsmith public | prereq | table | mlsmith public | section | table | mlsmith public | student | table | mlsmith public | takes | table | mlsmith public | teaches | table | mlsmith public | time_slot | table | mlsmith (11 rows) university=# \d instructor Table "public.instructor" Column | Type | Collation | Nullable | Default -----------+-----------------------+-----------+----------+--------- id | character varying(5) | | not null | name | character varying(20) | | not null | dept_name | character varying(20) | | | salary | numeric(8,2) | | | Indexes: "instructor_pkey" PRIMARY KEY, btree (id) Check constraints: "instructor_salary_check" CHECK (salary > 29000::numeric) Foreign-key constraints: "instructor_dept_name_fkey" FOREIGN KEY (dept_name) REFERENCES department(dept_name) ON DELETE SET NULL Referenced by: TABLE "advisor" CONSTRAINT "advisor_i_id_fkey" FOREIGN KEY (i_id) REFERENCES instructor(id) ON DELETE SET NULL TABLE "teaches" CONSTRAINT "teaches_id_fkey" FOREIGN KEY (id) REFERENCES instructor(id) ON DELETE CASCADE university=# \\ The other useful--and cool--thing you can do from inside ''psql'' is issue SQL commands. For example: university=# select * from instructor; id | name | dept_name | salary -------+------------+------------+---------- 10101 | Srinivasan | Comp. Sci. | 65000.00 12121 | Wu | Finance | 90000.00 15151 | Mozart | Music | 40000.00 22222 | Einstein | Physics | 95000.00 32343 | El Said | History | 60000.00 33456 | Gold | Physics | 87000.00 45565 | Katz | Comp. Sci. | 75000.00 58583 | Califieri | History | 62000.00 76543 | Singh | Finance | 80000.00 76766 | Crick | Biology | 72000.00 83821 | Brandt | Comp. Sci. | 92000.00 98345 | Kim | Elec. Eng. | 80000.00 (12 rows) university=#