Каков наилучший способ запуска простых сценариев SQL в базе данных (предпочтительно вне зависимости от реализации DBM)?

Итак, для иллюстрации, используя ваш лучший/предлагаемый способ, я хотел бы увидеть скрипт, который создает несколько таблиц с именами из массива ['cars_table', 'ice_cream_t'], удаляет все элементы с id=5 в таблице, и выполняет соединение между двумя таблицами и печатает результат, отформатированный каким-то приятным образом.

  1. Я слышал о Python и PL/SQL для этого.
  2. Ruby/Datamapper кажется очень привлекательным
  3. Java + JDBC, возможно
  4. Другие?

Некоторые из них в основном используются в полном приложении или в рамках. Я бы хотел, чтобы они использовались просто в сценариях.

1
Verhogen 26 Ноя 2009 в 11:25

2 ответа

Ruby/Sequel в настоящее время является моим любимым оружием.

Короткий пример с сайта:

require "rubygems"
require "sequel"

# connect to an in-memory database
DB = Sequel.sqlite

# create an items table
DB.create_table :items do
  primary_key :id
  String :name
  Float :price
end

# create a dataset from the items table
items = DB[:items]

# populate the table
items.insert(:name => 'abc', :price => rand * 100)
items.insert(:name => 'def', :price => rand * 100)
items.insert(:name => 'ghi', :price => rand * 100)

# print out the number of records
puts "Item count: #{items.count}"

# print out the average price
puts "The average price is: #{items.avg(:price)}"
4
Mladen Jablanović 26 Ноя 2009 в 12:02
Есть также datamapper и activerecord :D
 – 
knoopx
26 Ноя 2009 в 12:05
1
Sequel немного отличается, потому что вам не нужно создавать классы моделей. Может быть удобно и проще в небольших сценариях или в случаях, когда вам не нужна какая-то пользовательская логика для каждой модели.
 – 
Mladen Jablanović
26 Ноя 2009 в 13:09

С помощью SQL DDL (язык определения данных), который может выполняться независимо от базы данных, если вы будьте осторожны.

Примеры есть в статье в Википедии: http://en.wikipedia.org/wiki/Data_Definition_Language

0
Robert Harvey 26 Ноя 2009 в 11:28