<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 使用 Ruby 獲取 SQLite 元數據 > 原文: [http://zetcode.com/db/sqliteruby/meta/](http://zetcode.com/db/sqliteruby/meta/) 元數據是有關數據庫中數據的信息。 SQLite 中的元數據包含有關我們存儲數據的表和列的信息。 SQL 語句影響的行數是元數據。 結果集中返回的行數和列數也是元數據。 可以使用`PRAGMA`命令獲取 SQLite 中的元數據。 SQLite 對象可能具有屬性,即元數據。 最后,我們還可以通過查詢 SQLite 系統`sqlite_master`表來獲取特定的元數據。 ```ruby #!/usr/bin/ruby require 'sqlite3' begin db = SQLite3::Database.open "test.db" pst = db.prepare "SELECT * FROM Cars LIMIT 6" puts pst.columns puts pst.types puts pst.column_count rescue SQLite3::Exception => e puts "Exception occurred" puts e ensure pst.close if pst db.close if db end ``` 在上面的示例中,我們獲得了預備語句的列名,列類型和列數。 ```ruby puts pst.columns puts pst.types puts pst.column_count ``` 這三種方法返回預備語句的列名,列類型和列數。 ```ruby $ ./cols_fields.rb Id Name Price INTEGER TEXT INT 3 ``` 輸出顯示三個列名稱:`Id`,`Name`和`Price`。 類型是`INTEGER`,`TEXT`和`INT`。 以下示例顯示如何檢索特定 SQL 命令產生的更改數量。 ```ruby #!/usr/bin/ruby require 'sqlite3' begin db = SQLite3::Database.new ":memory:" db.execute "CREATE TABLE Friends(Id INTEGER PRIMARY KEY, Name TEXT)" db.execute "INSERT INTO Friends(Name) VALUES ('Tom')" db.execute "INSERT INTO Friends(Name) VALUES ('Rebecca')" db.execute "INSERT INTO Friends(Name) VALUES ('Jim')" db.execute "INSERT INTO Friends(Name) VALUES ('Robert')" db.execute "INSERT INTO Friends(Name) VALUES ('Julian')" db.execute "DELETE FROM Friends WHERE Id IN (3, 4, 5)" n = db.changes puts "There has been #{n} changes" rescue SQLite3::Exception => e puts "Exception occurred" puts e ensure db.close if db end ``` 我們在內存中創建一個`Friends`表。 在最后一個 SQL 命令中,我們刪除三行。 我們使用`changes`方法來獲取上一次 SQL 操作完成的更改數量。 ```ruby db.execute "DELETE FROM Friends WHERE Id IN (3, 4, 5)" ``` 在此 SQL 語句中,我們刪除三行。 ```ruby n = db.changes puts "There has been #{n} changes" ``` 我們找出上一條 SQL 語句完成的更改數量。 ```ruby $ ./changes.rb There has been 3 changes ``` 示例輸出。 在下一個示例中,我們將找到有關`Cars`表的一些數據。 ```ruby #!/usr/bin/ruby require 'sqlite3' begin db = SQLite3::Database.open "test.db" stm = db.prepare "PRAGMA table_info('Cars')" rs = stm.execute rs.each do |row| puts row.join "\s" end rescue SQLite3::Exception => e puts "Exception occurred" puts e ensure stm.close if stm db.close if db end ``` 在此示例中,我們發出`PRAGMA table_info(tableName)`命令以獲取有關`Cars`表的一些元數據信息。 ```ruby stm = db.prepare "PRAGMA table_info('Cars')" rs = stm.execute ``` `PRAGMA table_info(Cars)`命令為 Cars 表中的每一列返回一行。 結果集中的列包括列順序號,列名稱,數據類型,該列是否可以為`NULL`以及該列的默認值。 ```ruby rs.each do |row| puts row.join "\s" end ``` 我們遍歷結果集并打印數據。 ```ruby $ ./table_info.rb 0 Id INTEGER 0 1 1 Name TEXT 0 0 2 Price INT 0 0 ``` 示例的輸出。 接下來,我們將打印`Cars`表中的 5 行及其列名。 ```ruby #!/usr/bin/ruby require 'sqlite3' begin db = SQLite3::Database.open "test.db" rows = db.execute2 "SELECT * FROM Cars LIMIT 5" rows.each do |row| puts "%3s %-8s %s" % [row[0], row[1], row[2]] end rescue SQLite3::Exception => e puts "Exception occurred" puts e ensure db.close if db end ``` 我們將`Cars`表的五行打印到控制臺。 現在,我們也包括列的名稱。 記錄與列名對齊。 ```ruby rows = db.execute2 "SELECT * FROM Cars LIMIT 5" ``` `execute2`方法執行給定的 SQL 語句。 返回的第一行是列的名稱。 ```ruby rows.each do |row| puts "%3s %-8s %s" % [row[0], row[1], row[2]] end ``` 數據被檢索,格式化并打印到終端。 ```ruby $ ./column_names.rb Id Name Price 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 ``` 輸出。 在與元數據有關的最后一個示例中,我們將列出`test.db`數據庫中的所有表。 ```ruby #!/usr/bin/ruby require 'sqlite3' begin db = SQLite3::Database.open "test.db" rows = db.execute <<SQL SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;" SQL rows.each do |row| puts row end rescue SQLite3::Exception => e puts "Exception occurred" puts e ensure db.close if db end ``` 該代碼示例將當前數據庫中的所有可用表打印到終端。 ```ruby rows = db.execute <<SQL SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;" SQL ``` 表名稱是從`sqlite_master`表中檢索的。 ```ruby $ ./list_tables.rb Cars Friends Images ``` 這些是我們系統上的表。 在 SQLite Ruby 教程的這一部分中,我們使用了數據庫元數據。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看