簡體   English   中英

要在帶有psycopg2的python中使用部門名稱顯示部門ID?

[英]To display department ID using department name in python with psycopg2?

在python中使用psycopg2時,我試圖通過插入為原始查詢來使用部門名稱獲取新員工詳細信息的部門ID。 但是,我找不到這個問題的任何解決方案。 這個問題有什么解決方案可以幫助我完成任務嗎?

這是我的員工數據庫: 在此處輸入圖片說明

這是我的python代碼:

import datetime

import psycopg2.extras
conn = psycopg2.connect(database="emp", user="postgres",
                        password="12345", host="127.0.0.1", 
port="5432")

cur = conn.cursor(cursor_factory = psycopg2.extras.RealDictCursor)

emp_name = str(input("Enter new employee name: "))

while True:
    gender = str(input("Type your gender: "))
    if gender == 'M' or gender == 'F':
        break

hire_date = input("Enter hire date(YYYY-MM-DD): ")
year, month, day = map(int, hire_date.split('-'))
hiredate = datetime.date(year, month, day)

salary = str(int(input("Enter your salary: ")))

deptname = str(input("Enter department name: "))

cur.execute("INSERT INTO employee(emp_name, gender, hire_date, salary,
 deptid) VALUES(%s, %s, %s, %s)",(emp_name, gender,hire_date, salary))

cur.execute("SELECT * FROM employee ORDER BY emp_no DESC LIMIT 1 WHERE 
  deptname = %(deptname)s", {'deptname': deptname})

rows = cur.fetchall()

print( '\n'.join( str( row ) for row in rows ) )

print( "Created successfully!" )
conn.commit()
conn.close()

如果只想使用deptid,請使用它。

 cur.execute('''SELECT d.deptid FROM department d 
        WHERE d.deptname =  %(deptname)s''', {'deptname': deptname})

如果您想要該部門所有員工的詳細信息

 cur.execute('''SELECT e.* FROM employee e JOIN department d 
               ON  d.deptid = e.deptid 
        WHERE d.deptname =  %(deptname)s''', {'deptname': deptname})

通過以下查詢可以使用部門名稱顯示部門ID:

deptname = str(input("Enter department name: "))

cur.execute("SELECT deptid FROM department WHERE department.deptname = %("
            "deptname)s", {'deptname': deptname})
deptid = cur.fetchone()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM