基本的なSQLクエリの実行方法

sql-queries

今日のトピックは「基本的な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クエリの実行方法
Pythonsqlite3.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)
JavaDriverManager.getConnection(connectionString)statement.execute(query)
JavaScriptnew sqlite3.Database('example.db')db.run(query)またはdb.all(query, callback)

まとめ

今日は、基本的なSQLクエリの実行方法について学びました。SQLを使用することで、データベースに保存されているデータを効率的に操作することができます。

次回は、より高度なSQLクエリや、複数のテーブルを使用したデータの結合方法について学んでいきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

コメントする

目次