計算機科学のブログ

SQL - SQLite - Python - ALTER文 - 過去の書き換え - 便利な文列関数

Head First SQL ―頭とからだで覚えるSQLの基本Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 5章(ALTER文 - 過去の書き換え)、p.225(エクササイズ - 気軽にやってみよう)の解答を求めてみる。

schema8_0.sql

select substring('テキサス州サンアントニオ', 6, 3);

schema8_1.sql

select upper('uSa');

schema8_2.sql

select lower('spaGHEtti');

schema8_3.sql

select ltrim(' ドッグフード ');

schema8_4.sql

select rtrim(' キャットフード ');

schema8_5.sql

select length('テキサス州サンアントニオ');

コード

sample8.py

#! /usr/bin/env python3
import sqlite3

con = sqlite3.connect('sample.db')
cur = con.cursor()

for i in range(6):
    print(i)
    with open(f'schema8_{i}.sql') as f:
        cur.execute(f.read())
    if (d := cur.description) is not None:
        print([t[0] for t in d])
    for row in cur.fetchall():
        print(row)

cur.close()
con.close()

入出力結果(Terminal, Zsh)

% ./sample8.py
0
["substring('テキサス州サンアントニオ', 6, 3)"]
('サンア',)
1
["upper('uSa')"]
('USA',)
2
["lower('spaGHEtti')"]
('spaghetti',)
3
["ltrim(' ドッグフード ')"]
('ドッグフード ',)
4
["rtrim(' キャットフード ')"]
(' キャットフード',)
5
["length('テキサス州サンアントニオ')"]
(12,)
%