LoginSignup
1
4

More than 3 years have passed since last update.

MySQL 基礎

Posted at

DOM途中で飽きたので、MySQLやる。
これ終わったらFlaskでなんか作る

MySQLとは?

  • Webアプリケーションでよく使われるデータベース
  • オープンソースのリレーショナルデータベース・マネジメントシステム

MySQL公式

データベースってなんや

  • 検索や蓄積が容易に出来るように整理されたデータの集まり。

データベース関連の用語

  • 1アプリケーションに対して、1つのデータベースを作成する。
  • テーブルをいう入れ物をDBの中に作って、そこにデータを格納していく。

    • エクセルの表みたいな感じでデータを管理
  • フィールド:カラムのこと

    • カラムの名前はカラム名
  • レコード:行のこと

    • データを管理しやすいようにレコードにはidを振る。
  • クエリ: MySQLサーバーに対して投げるコマンド

    • 大文字でも小文字でも区別されない

SQlって?

  • データベース、テーブル、フィールドやレコードを扱う言語
  • なんかの略ではない。

DBを操作していくよ!!

データベースの作成

mysql
create database name;

データベースの削除

mysql
drop database name;

選択されているデータベースの確認

mysql
select database();
use databasename;  //これでデータベース変える

テーブル作るよ

テーブル名: users
カラム名:id, name, age

SQL
create table users users(id int unsinged, name varchar(32), age int); //テーブル作成    
desc users; //表示

unsighnedってなんやね?
こんなんでてきた。

SQL
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id    | int(10) unsigned | YES  |     | NULL    |       |
| name  | varchar(32)      | YES  |     | NULL    |       |
| age   | int(11)          | YES  |     | NULL    |       |
+-------+------------------+------+-----+---------+-------+

これで削除

SQL
drop table users;

 データの挿入は?

SQL
insert into users (id ,name ,age) values (1, 'sato', 20);
insert into users (id ,name ,age) values (4, 'takahashi', null); // 未設定はnull

これで呼び出す。
select * from users;

SQL
+------+-----------+------+
| id   | name      | age  |
+------+-----------+------+
|    1 | sato      |   20 |
|    2 | suzuki    |   20 |
|    3 | yamada    |   31 |
|    4 | takahashi | NULL |
+------+-----------+------+

テーブル作成時のidカラムに関する設定

  • auto_increment
    • MySQLが連番を振ってくれる。
  • nut null
    • nullを許可しないよ!
  • PRIMARY KEY
    • nullじゃない。
    • 重複しないことが保証される。
    • 1テーブルで1カラムだけ指定できる。
  • default 1
    • デフォルトで1がはいるよ。
MySQL
mysql> create table users(id int unsigned auto_increment not null primary key, 
    -> name varchar(32),
    -> age int not null default 1);

いろいろぶっこんだデータ

SQL
mysql> select * from users;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | sato      |   18 |
|  2 | suzuki    |   22 |
|  3 | takahashi |   29 |
|  4 | tanaka    |   30 |
|  5 | ito       |   19 |
|  6 | watanabe  |   20 |
|  7 | yamamoto  | NULL |
+----+-----------+------+

名前とageだけとってくる

SQL
mysql> select name, age from users;                                                                                                                                                        
+-----------+------+
| name      | age  |
+-----------+------+
| sato      |   18 |
| suzuki    |   22 |
| takahashi |   29 |
| tanaka    |   30 |
| ito       |   19 |
| watanabe  |   20 |
| yamamoto  | NULL |
+-----------+------+

条件指定で持ってくる

SQL
mysql> select * from users where id = 1;
+----+------+------+
| id | name | age  |
+----+------+------+
|  1 | sato |   18 |
+----+------+------+

idが1,2,3のどれか

SQL
mysql> select * from users where id in (1, 2, 3);
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | sato      |   18 |
|  2 | suzuki    |   22 |
|  3 | takahashi |   29 |
+----+-----------+------+

idが1,2,3以外

SQL
mysql> select * from users where id not in (1, 2, 3);                                                                                                                                      
+----+----------+------+
| id | name     | age  |
+----+----------+------+
|  4 | tanaka   |   30 |
|  5 | ito      |   19 |
|  6 | watanabe |   20 |
|  7 | yamamoto | NULL |
+----+----------+------+

パターンマッチ

Like文

select * from users where name like 's%'; // %は0文字以上の任意の文字列
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | sato   |   18 |
|  2 | suzuki |   22 |
+----+--------+------+

 更新

SQL
update users set age = 40 where id = 1 ;

mysql> select * from users;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | sato      |   40 |
|  2 | suzuki    |   22 |
|  3 | takahashi |   29 |
|  4 | tanaka    |   30 |
|  5 | ito       |   19 |
|  6 | watanabe  |   20 |
|  7 | yamamoto  | NULL |
+----+-----------+------+

削除

delete from users where id=1;
1
4
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
1
4