sql.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # -*- coding: utf-8 -*-
  2. """
  3. SQL
  4. ===
  5. It is a collection of strings to avoid to repeat the code. ::
  6. >>> SELECT.format(cols=', '.join(['cat', 'area']), tname='table')
  7. 'SELECT cat, area FROM table;'
  8. >>> SELECT_WHERE.format(cols=', '.join(['cat', 'area']),
  9. ... tname='table', condition='area>10000')
  10. 'SELECT cat, area FROM table WHERE area>10000;'
  11. """
  12. #
  13. # SQL
  14. #
  15. CREATE_TAB = "CREATE TABLE {tname}({coldef})"
  16. DROP_TAB = "DROP TABLE {tname}"
  17. #ALTER TABLE
  18. ADD_COL = "ALTER TABLE {tname} ADD COLUMN {cname} {ctype};"
  19. DROP_COL = "ALTER TABLE {tname} DROP COLUMN {cname};"
  20. DROP_COL_SQLITE = ';\n'.join([
  21. "CREATE TEMPORARY TABLE {tname}_backup({coldef})",
  22. "INSERT INTO {tname}_backup SELECT {colnames} FROM {tname}",
  23. "DROP TABLE {tname}",
  24. "CREATE TABLE {tname}({coldef})",
  25. "INSERT INTO {tname} SELECT {colnames} FROM {tname}_backup",
  26. "CREATE UNIQUE INDEX {tname}_cat ON {tname} ({keycol} )",
  27. "DROP TABLE {tname}_backup",
  28. ])
  29. RENAME_COL = "ALTER TABLE {tname} RENAME COLUMN {old_name} TO {new_name};"
  30. CAST_COL = "ALTER TABLE {tname} ALTER COLUMN {col} SET DATA TYPE {ctype};"
  31. RENAME_TAB = "ALTER TABLE {old_name} RENAME TO {new_name};"
  32. INSERT = "INSERT INTO {tname} VALUES ({values})"
  33. #SELECT
  34. SELECT = "SELECT {cols} FROM {tname};"
  35. SELECT_WHERE = "SELECT {cols} FROM {tname} WHERE {condition};"
  36. SELECT_ORDERBY = "SELECT {cols} FROM {tname} ORDER BY {orderby};"
  37. #UPDATE
  38. UPDATE = "UPDATE {tname} SET {new_col} = {old_col};"
  39. UPDATE_WHERE = "UPDATE {tname} SET {values} WHERE {condition};"
  40. UPDATE_COL_WHERE = "UPDATE {tname} SET {new_col} = {old_col} WHERE {condition};"
  41. # GET INFO
  42. PRAGMA = "PRAGMA table_info({tname});"