受講料が最大70%OFF 受講料が最大70%OFF

SQLのテーブルのカラムについてまとめています。

SQLのカラム操作をするサンプルコード集

サンプルには、MySQLのサンプルデータベースEmployeesを使用しています。

カラムの追加はalter table

サンプルデータベースemployeesテーブルのコピーを作り、alter tableにてdept_noとdept_nameという2つのカラムを追加している例です。

最後に、show columnsでカラム追加したテーブルのカラム情報を確認しています。

mysql>create table employees_copy
like employees;
Query OK, 0 rows affected (0.11 sec)

mysql>alter table 
	employees_copy 
add 
	dept_no char(4)
	NOT NULL;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>alter table 
	employees_copy 
add 
	dept_name varchar(40)
	NOT NULL;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>show columns from employees_copy;
+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| emp_no     | int           | NO   | PRI | NULL    |       |
| birth_date | date          | NO   |     | NULL    |       |
| first_name | varchar(14)   | YES  |     | NULL    |       |
| last_name  | varchar(16)   | NO   |     | NULL    |       |
| gender     | enum('M','F') | NO   |     | NULL    |       |
| hire_date  | date          | NO   |     | NULL    |       |
| dept_no    | char(4)       | NO   |     | NULL    |       |
| dept_name  | varchar(40)   | NO   |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

【関連記事】
MySQLのカラム追加 サンプルコード集 一括で複数追加する方法は? 

複数のカラムの値を取得するには、カンマで区切ってカラム名を指定

select文で、複数のカラムの値を取得するにはカンマで区切ってカラムを複数指定します。

SELECT employees.emp_no, first_name, last_name, dept_name FROM `employees` 
left join dept_emp on employees.emp_no = dept_emp.emp_no
left join departments on dept_emp.dept_no = departments.dept_no
limit 10;

+--------+------------+-----------+--------------------+
| emp_no | first_name | last_name | dept_name          |
+--------+------------+-----------+--------------------+
|  10001 | xGeorgi    | Facello   | Development        |
|  10002 | Bezalel    | Simmel    | Sales              |
|  10003 | Parto      | Bamford   | Production         |
|  10004 | Chirstian  | Koblick   | Production         |
|  10005 | Kyoichi    | Maliniak  | Human Resources    |
|  10006 | Anneke     | Preusig   | Development        |
|  10007 | Tzvetan    | Zielinski | Research           |
|  10008 | Saniya     | Kalloufi  | Development        |
|  10009 | Sumant     | Peac      | Quality Management |
|  10010 | Duangkaew  | Piveteau  | Production         |
+--------+------------+-----------+--------------------+
10 rows in set (0.13 sec)

【関連記事】
SQL select文のサンプル集 結合、ソート、別テーブル生成の記述方法は?

カラム情報を取得するには show columns(MySQL)

show columnsで対象テーブルのカラム情報を取得できます。このコマンドはMySQL独自のもので、Oracleなどはシステムテーブルに対してselectを発行する必要があります。

SHOW columns 
FROM employees;

+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| emp_no     | int           | NO   | PRI | NULL    |       |
| birth_date | date          | NO   |     | NULL    |       |
| first_name | varchar(14)   | YES  |     | NULL    |       |
| last_name  | varchar(16)   | NO   |     | NULL    |       |
| gender     | enum('M','F') | NO   |     | NULL    |       |
| hire_date  | date          | NO   |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

【関連記事】
MySQL テーブル一覧取得 全カラム情報も取得するには? 

複数カラムの条件指定には、inを使う

冗長になりがちな複数カラムの条件指定は、複数のカラム条件をカッコとカンマで区切り、配列のように指定するとスッキリ記述できます。

以下の例では、部署番号d001で部署名Marketing もしくは、部署番号d004で部署名Productionのデータを抽出しています。パッと見て条件が理解できるためコードの視認性も抜群です。

SELECT * FROM `departments` 
where (dept_no,dept_name) in ( ("d001","Marketing"), ("d004","Production") )
+---------+------------+
| dept_no | dept_name  |
+---------+------------+
| d001    | Marketing  |
| d004    | Production |
+---------+------------+
2 rows in set (0.00 sec)

【関連記事】
SQL in句のサンプルコード集 複数カラムの指定方法とは?

まとめ

ポテパンダの一言メモ
  • カラム追加はalter database
  • カラム情報取得はデータベースエンジンにより方法が異なる。MySQLではshow columns
  • 複数カラムの条件指定は、inを使って簡潔に記述することができる

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。