0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【データベース勉強中】初心者がSQLでハマったことと解決方法

Last updated at Posted at 2023-12-07

はじめに

これはSQL勉強中の私がSQLでハマった時の対応記録用の備忘録

「;」は忘れないこと!

SQL文の最後に「;」を忘れると一生SQLが終わらない。

mysql> show tables from alter_table
    ->
    ->
    ->
    ->
    ->
    ->

解決方法

「;」をつける

mysql> show tables from alter_table ; ←コレ

テーブルをCREATEするときはカラムを最低1つ指定すること!

テーブルを新規で作成する時にカラムを何も指定せずにcreateすると怒られる。

mysql> create table test;
ERROR 1113 (42000): A table must have at least 1 column

解決方法

実務ではカラムなしはあり得ない(テーブル定義してからCREATEするから)が、練習で作るときはとりあえず何でもいいからカラムは指定する。

mysql> create table test(id int, name varchar(10));

データ型のTEXTとCHARとVARCHARってなんや

文字列のデータ型は主に3つ(今のところ)。

  • CHAR
  • VARCHAR
  • TEXT

CHAR

CHARは「CHARacter (キャラクター)」という意味。
入るデータの桁数(バイト数)が決まっている場合に利用する。
CHAR(10)とすると、10バイト以上は追加することができなくなって、
6文字(6バイト)のデータの場合、残りは空白が4文字(4バイト)追加され10バイトにしてくれる。

VARCHAR

VARCHARは「VARiable CHARacter (ヴァリアブル キャラクター)」という意味。
CHARと違って余った場合に空白は追加されない。
VARCHAR(10)とすると10バイト以上は追加することができなくなる点は同じだが、
6文字(6バイト)のデータの場合にはそのまま6文字として登録される。
(255文字以上になった場合はTEXTにするのがよさそう!)

TEXT

CHARとVARCHARは国際標準のSQLの規格で定義されているらしい。
TEXTはMySQLやPostgreSQLなど一部のDBMSで使用できる文字列のデータ型。
文字数を指定する必要もなく柔軟に登録してくれるから便利だが、前述の「国際標準のSQLの規格」ではないため、ちゃんとしたプロジェクトならCHARとVARCHARを使うようにすること!(たぶん)

続く:point_up:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?