<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 模式定義語言 > 原文: [http://zetcode.com/db/sqlalchemy/schema/](http://zetcode.com/db/sqlalchemy/schema/) 在 SQLAlchemy 教程的這一部分中,我們描述了 SQLAlchemy 的模式定義語言。 SQLAlchemy 模式元數據是一個描述和檢查數據庫模式的綜合系統。 數據庫元數據支持 SQLAlchemy 的查詢和對象映射操作的核心。 元數據是有關數據庫中數據的信息。 例如有關存儲數據的表和列的信息。 ## `Table` `Table`類用于表示數據庫表。 `schema.py` ```py #!/usr/bin/python # -*- coding: utf-8 -*- from sqlalchemy import (create_engine, Table, Column, Integer, String, MetaData) meta = MetaData() cars = Table('Cars', meta, Column('Id', Integer, primary_key=True), Column('Name', String), Column('Price', Integer) ) print "The Name column:" print cars.columns.Name print cars.c.Name print "Columns: " for col in cars.c: print col print "Primary keys:" for pk in cars.primary_key: print pk print "The Id column:" print cars.c.Id.name print cars.c.Id.type print cars.c.Id.nullable print cars.c.Id.primary_key ``` 在示例中,我們使用架構定義語言來描述一個簡單的表。 ```py from sqlalchemy import (create_engine, Table, Column, Integer, String, MetaData) ``` `Table`,`Column`,`Integer`,`String`和`MetaData`是表定義所需的類。 ```py meta = MetaData() ``` `MetaData`是`Table`對象的容器,以及到引擎或連接的可選綁定。 ```py cars = Table('Cars', meta, Column('Id', Integer, primary_key=True), Column('Name', String), Column('Price', Integer) ) ``` 我們創建`Cars`表的元數據定義。 該表具有三列,由`Column`類定義。 列的數據類型由`Integer`和`String`類定義。 ```py print cars.columns.Name print cars.c.Name ``` 我們訪問`Name`列。 這些列可通過`columns`或`c`屬性使用。 ```py for col in cars.c: print col ``` 在此`for`循環中,我們打印表的所有列名。 ```py for pk in cars.primary_key: print pk ``` 我們在表中打印主鍵。 ```py print cars.c.Id.name print cars.c.Id.type print cars.c.Id.nullable print cars.c.Id.primary_key ``` 在這里,我們打印`Id`列的四個屬性:其名稱,類型,是否可為空以及是否具有主鍵。 ```py $ ./schema.py The Name column: Cars.Name Cars.Name Columns: Cars.Id Cars.Name Cars.Price Primary keys: Cars.Id The Id column: Id INTEGER False True ``` 這是示例的輸出。 ## `reflect()`方法 `reflect()`方法為數據庫中可用但尚未出現在`MetaData`中的任何表自動在`MetaData`對象中創建`Table`條目。 `schema_reflect.py` ```py #!/usr/bin/python # -*- coding: utf-8 -*- from sqlalchemy import (create_engine, Table, Column, Integer, String, MetaData) eng = create_engine("mysql://testuser:test623@localhost/testdb") meta = MetaData() meta.reflect(bind=eng) for table in meta.tables: print table ``` 在示例中,我們使用`reflect()`方法來打印數據庫中的所有表名。 ```py meta = MetaData() meta.reflect(bind=eng) ``` `reflect()`方法綁定到創建的引擎。 `MetaData`充滿了`Table`對象。 ```py for table in meta.tables: print table ``` 可通過`tables`屬性訪問`Table`對象,該屬性是`Table`對象的字典。 表名是字典的鍵。 ```py $ ./schema_reflect.py Images Cars Books Testing Authors ``` 這是示例的輸出。 ## 檢查器 檢查器執行低級數據庫模式檢查。 使用`inspect()`方法創建一個檢查器。 `schema_inspector.py` ```py #!/usr/bin/python # -*- coding: utf-8 -*- from sqlalchemy import create_engine, inspect eng = create_engine("mysql://testuser:test623@localhost/testdb") insp = inspect(eng) print insp.get_table_names() print insp.get_columns("Cars") print insp.get_primary_keys("Cars") print insp.get_schema_names() ``` 在示例中,我們使用檢查器進行了一些元數據反射。 ```py insp = inspect(eng) ``` 檢查器對象是使用`inspect()`方法創建的。 該方法以引擎為參數。 ```py print insp.get_table_names() ``` `get_table_names()`獲取可用表的名稱。 ```py print insp.get_columns("Cars") ``` `get_columns()`獲取`Cars`表的列的名稱。 ```py print insp.get_primary_keys("Cars") ``` `get_primary_keys()`獲取`Cars`表的主鍵。 ```py print insp.get_schema_names() ``` `get_schema_names()`返回所有模式名稱。 ```py $ ./schema_inspector.py [u'Authors', u'Books', u'Cars', u'Images', u'Testing'] [{'default': None, 'autoincrement': False, 'type': INTEGER(display_width=11), 'name': u'Id', 'nullable': False}, {'default': None, 'type': TEXT(), 'name': u'Name', 'nullable': True}, {'default': None, 'autoincrement': False, 'type': INTEGER(display_width=11), 'name': u'Price', 'nullable': True}] [u'Id'] ['information_schema', 'testdb'] ``` 這是示例的輸出。 SQLAlchemy 教程的這一部分專門用于架構元數據。
                  <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>

                              哎呀哎呀视频在线观看