開発・プログラミング

tech02

楽しく学ぶSQL入門

【楽しく学ぶSQL入門】第2章:SELECT文の基礎

システム開発の現場において、データベースから必要な情報を取得する作業は毎日のように行われます。その際、データのやり取りで中心的な役割を果たすのがSELECT文です。テーブルに蓄積されたデータから、欲しい情報だけを指定して取得する役割を持っています。 SELECT文の基本構文 コピー SELECT 列名 FROM テーブル名 [WHERE 条件式] SELECT句では、取得したい列名を設定します。複数の列を指定する場合は、カンマで区切るのがルールです。 FROM句には、データを取得する対象のテーブル名を記述しましょう。WHERE句は検索条件を指定するためのものです。SELECT句とFROM句の記述が必須であるのに対し、WHERE句は条件が必要なときにだけ書き足します。 参考サイト:MySQL 公式サイト(SELECT文について) SQLを使ってみる ① 特定の列の表示 特定の列だけを画面に表示させたい場合は、SELECT句に対象の列名を設定します。たとえば、都道府県テーブルから名称(大阪府など)のみを取得するケースがこれに該当します。 コピー SELECT name FROM pref ; name 三重県 滋賀県 京都府 ● 大阪府 兵庫県 奈良県 ② 複数の列の表示 2つ以上の列を同時に表示させたい場合は、列名同士をカンマで繋ぎます。例として、社員テーブルから姓と名の両方を同時に抜き出す設定を見てみましょう。 コピー SELECT name1, name2 FROM employee ; name1 name2 開発 太郎 山田 次郎 佐藤 花子 鈴木 一郎 ③ 全件走査 対象のテーブルにあるすべての列を表示させたいとき、ひとつずつ手作業で列名を入力するのは骨が折れますよね。そんなときに重宝するのが*(アスタリスク)。これひとつを置くだけで、全列を指定したときとまったく同じ結果を一瞬で得られます。例として、社員テーブルのデータを丸ごと取得してみましょう。 コピー SELECT * FROM employee ; employee_id group_id name1 name2 sex_id age birthday email tel 1 2 開発 太郎 2 48 1978/09/07 taro_kaihatsu@example.com 09027109628 2 2 山田 次郎 1 29 1997/03/13 jiro_yamada@example.com 08063486793 3 1 佐藤 花子 1 23 2003/08/14 hanako_sato@example.com 09087044388 ④ 別名 SELECT文で列名やテーブル名を出力する際、指定した名称の後ろに「AS」を添えることで、一時的な別名(エイリアス)を定義できます。ちなみに、このASという記述自体は省略してスペースを空けるだけでも機能します。例)社員テーブルの姓と名と年齢を取得する。 コピー SELECT name1 AS 姓, name2 AS 名, age AS 年齢 FROM employee ; 姓 名 年齢 開発 太郎 48 山田 次郎 29 佐藤 花子 23 ※ただし、Oracle DBを使う場合はちょっとした注意が必要。テーブルに別名を与える際、ASを使うとエラーになってしまう独自ルールが存在します。 参考サイト:Oracle 公式サイト(SELECT文について) PICK UP あわせて読みたいSQL基礎知識 【楽しく学ぶSQL入門】第1章:SQLの基礎 【楽しく学ぶSQL入門】第3章:データの制限 【楽しく学ぶSQL入門】第4章:検索結果の加工 【楽しく学ぶSQL入門】第5章:単一行関数とデータ型

楽しく学ぶSQL入門

【楽しく学ぶSQL入門】第1章:SQLの基礎

システム開発の現場で、データの管理や操作のために日夜使い倒されている必須スキル──それがSQL。まずは、あらゆる開発の土台とも言えるSQLの基本概念から、一歩ずつ紐解いていきましょう。 データベースとは? 検索や情報の書き換え、分析といったデータ管理を目的に、あらゆる情報を扱いやすい形で蓄積した仕組みのこと。 身近な例で言えば、紙の電話帳や会員名簿も立派なデータベースの一種です。 デジタル(IT)の世界においては、ハードディスクなどの電子媒体にファイル形式で安全に保存・ストックされた仕組み全般を指します。 RDB(Relational Database)について データの保存形式や管理スタイルの違いによって、データベースにはいくつかのタイプが存在します。 その中で、現在のシステム開発において主流となっているのが、複数の「表(テーブル)」を組み合わせてデータを管理するリレーショナルデータベース(RDB : Relational Database)という仕組み。 RDBの基本構造 1つのデータベースには複数の表が含まれ、これらをテーブル(table)と呼びます。 管理しやすいよう、それぞれの表に固有の「テーブル名」を与えるのが基本。 表自体は、縦の列である列(column)と横の行である行(row)の組み合わせ。 「1行」が顧客1人分などのデータ1件に対応し、「列」はそのデータの要素(名前や年齢など)を表す。 SPORTNO SPORTNAME 01 野球 02 サッカー 03 バレー 04 バスケ 05 ラグビー SQL(Structured Query Language)とは? 一言で表現するなら、データベースへ命令を送るための専用言語。 これを使うことで、データの検索だけでなく、新しい情報の登録、書き換え(更新)、削除まで自由自在にコントロールできます。 データそのものを操作するだけでなく、新しいテーブルやデータベースの器自体を作る役割も担っています。 DBMS(Database Management System)について 私たちが書いたSQL文は、直接ファイルへ届くわけではありません。間に入って命令を仲介してくれるデータベース管理システム(DBMS : Database Management System)という専用ソフトへ送られます。 DBMSがSQLを読み解き、ファイルの中身を検索したり書き換えたりする実務を裏で代行してくれるわけです。 ちなみに、先ほど触れた「複数の表(RDB)」を専門に扱うDBMSを特にRDBMSと呼びます。大企業向けの有償製品から、誰でも無料で使えるオープンソースのものまで世界中で幅広く公開されています。 ※代表的なRDBMS 有料ライセンス:Oracle Database, Db2, SQL Server オープンソース(無料):MySQL, MariaDB, PostgreSQL, SQLite, H2 Database 参考サイト:MySQL 公式サイト(MySQL 8.4 Reference Manual) SQLを使ってみる ① データを検索する コピー SELECT * FROM employee; ② データを登録する コピー INSERT INTO employee (employee_id, group_id, name1, name2, sex_id, age, birthday, email, tel) VALUES (31, 1, ‘テスト’, ‘太郎’, 1, 24, ‘1994-04-24’, ‘test_taro@example.com’, ‘08000001111’); ③ データができたことを確認する コピー SELECT * FROM employee; ④ データを更新する コピー UPDATE employee SET name1 = ‘〇’, name2 = ‘〇’ WHERE employee_Id = 31; ※〇に自分の名前を書いてみよう! ⑤ データが更新できたことを確認する コピー SELECT * FROM employee WHERE employee_Id = 31; ⑥ データを削除する コピー DELETE FROM employee WHERE employee_Id = 31; ⑦ データが削除できたことを確認する コピー SELECT * FROM employee WHERE employee_Id = 31; PICK UP あわせて読みたいSQL基礎知識 【楽しく学ぶSQL入門】第2章:SELECT文の基礎 【楽しく学ぶSQL入門】第3章:データの制限 【楽しく学ぶSQL入門】第4章:検索結果の加工

ローカル開発環境構築

windowsでxamppを使ってECCUBE4の開発環境を構築します。 1.xamppのインストール 1-1.xamppのダウンロードサイトより、xamppのインストーラを取得します。 https://www.apachefriends.org/download.html 1-2.任意の場所で実行します。 1-3.nextを選択 1-4.nextを選択 1-5.任意のインストール先を入力し、nextを選択 1-6.チェックを外して、nextを選択 1-7.チェックを外して、nextを選択 1-8.しばらく待機 1-9.Finishを選択 1-10.理解できる言語を選択 2.ECCUBE4のインストール準備 2-1.公式サイトのダウンロードページからパッケージを取得(https://www.ec-cube.net/download/) 2-2. 1-5で選択したフォルダ\htdocs配下に展開する 2-3. ecucbe-4.0.3をeccubeにリネーム 2-4.「C:\インストール先\php\php.ini」のextension=intlのコメントアウトをを外す 同じようにmax_execution_timeを120へ変更 「C:\インストール先\apache\conf\httpd.conf」をエディタでひらき mod_vhost_alias.soのコメントアウトを取る。 「C:\インストール先\apache\conf\extra\httpd-vhosts.conf」をエディタでひらき、下記を追加 <VirtualHost *:80> ServerAlias *.local VirtualDocumentRoot “C:/インストール先/htdocs/%1” <Directory “c:/インストール先/htdocs/*/”> order deny,allow Require all granted Options Indexes FollowSymLinks ExecCGI IncludesNoExec </Directory> </VirtualHost> <VirtualHost *:443> ServerAlias *.local VirtualDocumentRoot “C:/インストール先/htdocs/%1” SSLEngine on SSLCertificateFile “conf/ssl.crt/server.crt” SSLCertificateKeyFile “conf/ssl.key/server.key” CustomLog “C:/インストール先/apache/logs/ssl_request.log” \ “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b” </VirtualHost> 「C:\Windows\System32\drivers\etc\hosts」をエディタでひらき、下記を追加する # eccube4.local 127.0.0.1 eccube.local 3データベース作成 3-1.Apache,MySQLを起動する 3-2.MySQLのAdminボタンを押して、phpmyadminの画面を表示 3-3.左上のNewを選択し、任意のデータベース名で作成する。 3-4.ユーザを作成する SQLタブを押し、 CREATE USER ‘testuser’@’localhost’ IDENTIFIED BY ‘IOlf29fs’; –上記の場合、ユーザ名:testuser、パスワード:IOlf29fsとなります を入力し、実行ボタンを押す。 緑のマークが出て、「0行の返答がありました」と出てたらOK 3-5.権限を付与する SQLタブを押し、 GRANT ALL ON testdb.* TO ‘testuser’@’localhost’; –上記の場合、ユーザ名:testuser、サーバ名:testdbとなります を入力し、実行ボタンを押す。 緑のマークが出て、「0行の返答がありました」と出てたらOK 4.ECCUBE4インストール 4-1.https://localhost/eccube/をブラウザで開く 下記の画面が開いたら、次へ進むを選択 4-2.下記の画面が開いたら、次へ進むを選択 4-3.下記の画面が開いたら、入力して、次へ進むを選択 全て任意ですが、設定した値をメモしておいてください。 メールの設定はローカル環境のメールサーバ設定に合わせておいてください。 4-4. 3,データベースで設定した値を入れて、次へ進むを選択 4-5.次へ進むを選択 4-6.管理画面を表示を選択 4-7. 4-3で設定した管理画面のID,PWを入力してログイン 4-8.下記のような管理画面が開けばOKです 4-9. フロント画面を表示する(https://eccube.local/) 表示されればOKです。 今回はローカル環境構築のみでしたが 実装について 本番サーバの構築について など少しずつ記事を更新していく予定です。

SSLを知る

多くの主要ブラウザでは、SSLが導入されていないサイトを「保護されていないWebサイト」として警告表示されるようになっています。 ここではSSLとはどういうものか、導入するメリットなどを紹介していきます。 SSLって何? SSLとは、ユーザーからサイト管理者へのお問い合わせや個人情報のやり取りを暗号化し、第三者に情報を見られないようにする仕組みです。 やり取りする情報を暗号化することで、悪意を持ったユーザーが見られないようにできるだけでなく、情報の改ざんを行うこともできなくなります。 SSLが有効になっている場合、URLの「http://」部分が「https://」という表示になっています。 Google Chromeではバージョン68からHTTPのサイトをすべて「保護されていない通信」の警告表示がされています。そのため、基本的にSSLを導入することは必須になっています。 導入するには、認証局が発行するSSL証明書が必要になります。 SSL証明書の種類 SSL証明書を発行している認証局はいくつかありますが、証明レベルによって大きく3つに分かれています。 SSL証明書タイプ 信頼性 証明内容 用途 価格 ドメイン認証型(DV) 低 ドメイン使用権 個人のサイトやキャンペーンサイト 無料~低価格 企業認証型(OV) 中 ドメイン使用権運営団体の実在性 コーポレートサイトや会員制サイト 中~高価格 企業認証拡張型(EV) 高 ドメイン使用権運営団体の実在性(厳格) 金融機関やECサイト 高価格 ドメイン認証型(DV) ドメイン所有の確認のみで発行できる証明書です。 他の2つと比べると認証レベルは低いですが、発行スピードが速く、一番手軽であるところが特徴です。 価格も無料~安価なため、個人のWebサイトやキャンペーンサイトなど、一時的なサイトによく使用されています。 企業認証型(OV) ドメイン所有の他に、企業や団体の実在性が証明できる証明書です。 証明書内に企業や団体の名称が入るため、偽装されにくく、なりすましを防ぐことが出来ます。 コーポレートサイトや個人情報を入力するような会員制サイトなどで利用されています。 企業認証拡張型(EV) 企業認証型(OV)よりも審査が厳格で、認証レベルが一番高い証明書です。 この証明書が設定されているWebサイトには、アドレスバーに企業名が入り、SSLの知識がない人が見ても明らかにその企業が所有しているWebサイトであると分かるため、他の2つよりも信頼度が上がります。 金融機関や、ECサイトなどのログイン機能のあるようなWebサイトといった、高度なセキュリティを必要とするWebサイトで使用されています。 導入することのメリット サイトへの信頼性が上がる SSLを導入することで正しい企業やドメインであることが証明されるので、ユーザーに安心感を与えることができます。 検索順位が上がりやすい Googleの検索順位を決める基準としてhttpsであるかどうかが含まれています。ただし、それが大きな影響を与えるわけではなく、少しだけ考慮される程度です。 セキュリティが上がる 一度設定すればすべてのページに適用されるので、個人情報を入力するページでなくても、第三者からの攻撃を防ぐことが出来ます。

お問い合わせ

CONTACT

業務システムに関するお困りごと、WEBサイトの制作など、
まずはお気軽にお問い合わせください。

会員サイト
CONTACT
06-7178-1313
採用サイトはこちらRECRUIT