今日のトピックは「基本的なSQLクエリの実行方法」です。SQL(Structured Query Language)は、データベース管理システムでデータの操作や管理を行うための標準的な言語です。
SQLを使用することで、データの検索、挿入、更新、削除などの操作を簡単に行うことができます。
目次
基本概念の説明
SQLクエリ
SQLクエリは、データベースに対して命令を実行するための文です。基本的なSQLクエリには、データの取得(SELECT
)、データの挿入(INSERT
)、データの更新(UPDATE
)、データの削除(DELETE
)があります。
データベース
データベースは、構造化されたデータの集合であり、SQLを使って操作されます。リレーショナルデータベース(RDBMS)が最も一般的で、テーブルとしてデータを格納します。
各言語での基本的なSQLクエリの実行例
Python:
import sqlite3
# データベースに接続(または新規作成)
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# テーブルの作成
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
# データの挿入
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('山田太郎', 30))
conn.commit()
# データの取得
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
# データベース接続の終了
conn.close()
C#:
using System;
using System.Data.SQLite;
class Program
{
static void Main()
{
// データベースに接続
using (var connection = new SQLiteConnection("Data Source=example.db"))
{
connection.Open();
// テーブルの作成
string createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
using (var command = new SQLiteCommand(createTableQuery, connection))
{
command.ExecuteNonQuery();
}
// データの挿入
string insertQuery = "INSERT INTO users (name, age) VALUES (@name, @age)";
using (var command = new SQLiteCommand(insertQuery, connection))
{
command.Parameters.AddWithValue("@name", "山田太郎");
command.Parameters.AddWithValue("@age", 30);
command.ExecuteNonQuery();
}
// データの取得
string selectQuery = "SELECT * FROM users";
using (var command = new SQLiteCommand(selectQuery, connection))
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"{reader["id"]}, {reader["name"]}, {reader["age"]}");
}
}
}
}
}
C++:
#include <iostream>
#include <sqlite3.h>
int main() {
sqlite3* db;
sqlite3_open("example.db", &db);
// テーブルの作成
const char* createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
sqlite3_exec(db, createTableQuery, 0, 0, 0);
// データの挿入
const char* insertQuery = "INSERT INTO users (name, age) VALUES ('山田太郎', 30)";
sqlite3_exec(db, insertQuery, 0, 0, 0);
// データの取得
const char* selectQuery = "SELECT * FROM users";
sqlite3_stmt* stmt;
sqlite3_prepare_v2(db, selectQuery, -1, &stmt, 0);
while (sqlite3_step(stmt) == SQLITE_ROW) {
std::cout << sqlite3_column_int(stmt, 0) << ", "
<< sqlite3_column_text(stmt, 1) << ", "
<< sqlite3_column_int(stmt, 2) << std::endl;
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main(String[] args) {
try {
// データベースに接続
Connection connection = DriverManager.getConnection("jdbc:sqlite:example.db");
Statement statement = connection.createStatement();
// テーブルの作成
String createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)";
statement.execute(createTableQuery);
// データの挿入
String insertQuery = "INSERT INTO users (name, age) VALUES ('山田太郎', 30)";
statement.execute(insertQuery);
// データの取得
String selectQuery = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(selectQuery);
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + ", " + resultSet.getString("name") + ", " + resultSet.getInt("age"));
}
// データベース接続の終了
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
JavaScript:
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('example.db');
// テーブルの作成
db.run('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)');
// データの挿入
db.run('INSERT INTO users (name, age) VALUES (?, ?)', ['山田太郎', 30]);
// データの取得
db.all('SELECT * FROM users', [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.id, row.name, row.age);
});
});
// データベース接続の終了
db.close();
各言語の解説
言語 | データベース接続方法 | SQLクエリの実行方法 |
---|---|---|
Python | sqlite3.connect('example.db') | cursor.execute(query) |
C# | new SQLiteConnection(connectionString) | new SQLiteCommand(query, connection).ExecuteNonQuery() |
C++ | sqlite3_open("example.db", &db) | sqlite3_exec(db, query, 0, 0, 0) |
Java | DriverManager.getConnection(connectionString) | statement.execute(query) |
JavaScript | new sqlite3.Database('example.db') | db.run(query) またはdb.all(query, callback) |
まとめ
今日は、基本的なSQLクエリの実行方法について学びました。SQLを使用することで、データベースに保存されているデータを効率的に操作することができます。
次回は、より高度なSQLクエリや、複数のテーブルを使用したデータの結合方法について学んでいきましょう。
コメント
コメント一覧 (1件)
[…] 3-3-1. 基本的なSQLクエリの実行 […]