Advertisement
Guest User

Untitled

a guest
Mar 1st, 2018
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.47 KB | None | 0 0
  1. conn = psycopg2.connect( host=hostname, user=username, password=password, dbname=database)
  2.  
  3. # Делаем SELECT запрос к базе данных, используя обычный SQL-синтаксис
  4. cursor.execute("SELECT Name FROM Artist ORDER BY Name LIMIT 3")
  5. # Получаем результат сделанного запроса
  6. results = cursor.fetchall()
  7. results2 =  cursor.fetchall()
  8. print(results)   # [('A Cor Do Som',), ('Aaron Copland & London Symphony Orchestra',), ('Aaron Goldberg',)]
  9. print(results2)  # []
  10.  
  11. # Делаем INSERT запрос к базе данных, используя обычный SQL-синтаксис
  12. cursor.execute("insert into Artist values (Null, 'A Aagrh!') ")
  13. # Если мы не просто читаем, но и вносим изменения в базу данных - необходимо сохранить транзакцию
  14. conn.commit()
  15. # Проверяем результат
  16. cursor.execute("SELECT Name FROM Artist ORDER BY Name LIMIT 3")
  17. results = cursor.fetchall()
  18. print(results)  # [('A Aagrh!',), ('A Cor Do Som',), ('Aaron Copland & London Symphony Orchestra',)]
  19.  
  20. cursor.execute("""
  21.  SELECT name
  22.  FROM Artist
  23.  ORDER BY Name LIMIT 3
  24. """)
  25.  
  26. cursor.execute("""
  27.     insert into Artist values (Null, 'A Aagrh!');
  28.     insert into Artist values (Null, 'A Aagrh-2!');
  29. """)
  30. # sqlite3.Warning: You can only execute one statement at a time.
  31.  
  32. cursor.execute("""insert into Artist values (Null, 'A Aagrh!');""")
  33. cursor.execute("""insert into Artist values (Null, 'A Aagrh-2!');""")
  34.  
  35. cursor.executescript("""
  36. insert into Artist values (Null, 'A Aagrh!');
  37. insert into Artist values (Null, 'A Aagrh-2!');
  38. """)
  39.  
  40. # C подставновкой по порядку на места знаков вопросов:
  41. cursor.execute("SELECT Name FROM Artist ORDER BY Name LIMIT ?", ('2'))
  42. # И с использованием именнованных замен:
  43. cursor.execute("SELECT Name from Artist ORDER BY Name LIMIT :limit", {"limit": 3})
  44.  
  45. # Обратите внимание, даже передавая одно значение - его нужно передавать кортежем!
  46. # Именно по этому тут используется запятая в скобках!
  47. new_artists = [
  48.     ('A Aagrh!',),
  49.     ('A Aagrh!-2',),
  50.     ('A Aagrh!-3',),
  51. ]
  52. cursor.executemany("insert into Artist values (Null, ?);", new_artists)
  53.  
  54. cursor.execute("SELECT Name FROM Artist ORDER BY Name LIMIT 3")
  55. print(cursor.fetchone())    # ('A Cor Do Som',)
  56. print(cursor.fetchone())    # ('Aaron Copland & London Symphony Orchestra',)
  57. print(cursor.fetchone())    # ('Aaron Goldberg',)
  58. print(cursor.fetchone())    # None
  59.  
  60. # Использование курсора как итератора
  61. for row in cursor.execute('SELECT Name from Artist ORDER BY Name LIMIT 3'):
  62.         print(row)
  63. # ('A Cor Do Som',)
  64. # ('Aaron Copland & London Symphony Orchestra',)
  65. # ('Aaron Goldberg',)
  66.  
  67. try:
  68.     cursor.execute(sql_statement)
  69.     result = cursor.fetchall()
  70. except sqlite3.DatabaseError as err:      
  71.     print("Error: ", err)
  72. else:
  73.     conn.commit()
  74.  
  75. with psycopg2.connect("dbname='habr'") as conn:
  76.     with conn.cursor() as cur:
  77.  
  78. import sqlite3
  79. def dict_factory(cursor, row):
  80.     d = {}
  81.     for idx, col in enumerate(cursor.description):
  82.         d[col[0]] = row[idx]
  83.     return d
  84.  
  85. con = sqlite3.connect(":memory:")
  86. con.row_factory = dict_factory
  87. cur = con.cursor()
  88. cur.execute("select 1 as a")
  89. print(cur.fetchone()["a"])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement