3
1

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 5 years have passed since last update.

mysql学習メモ

Last updated at Posted at 2018-03-22

sql基本

###ユーザー作成&削除、権限付与

create user "新規ユーザー名" identified by '新規パスワード'

grant "与える権限" on "データベース名"."テーブル名" to "ユーザー名"

基本操作


create database "データベース名"

show databases

use "データベース名"

select database() #現在使用中のデータベース

create table cs(number int,name varchar(10),year int) 

show tables 

desc "テーブル名"

insert into "テーブル名" ("カラム名1","カラム名2"...) values("データ1","データ2"...),("データ1","データ2"...)
  • データベース選択された場合も、他のデータベースの中身見れるselect * from データベース.テーブル名
  • ユーザー情報select user from mysql.user
  • プロンプトの文字列の変更prompt \d-\h-\u>.prompt mysql>

カラムの操作


alter table "テーブル名" modify "カラム名" "データ型" #カラムのデータ型の変更

alter table "テーブル名" add "カラム名" "データ型" #カラムの追加

alter tabel "テーブル名" add "カラム名" "データ型" first#カラム最前位置追加

alter tabel "テーブル名" add "カラム名" "データ型" after "カラム1" #カラム自由位置追加

alter table "テーブル名" modify "カラム名3" "データ型" first #カラム位置の変更

alter table "テーブル名" change "変更前カラム名" "変更後カラム名" "変更後データ型" #カラム名とデータ型の変更

alter table "テーブル名" drop "カラム名"

###主キー&一意キー

create table "テーブル名"("カラム名1","データ型1" primary key,....) #不能为空

create table "テーブル名"("カラム名1","データ型1" unique,....) #可以为空

自動連続番号&カラム構造変更

create table "テーブル名" ("カラム名1",int auto_increment primary key,....) #之后输入的时候就不用输入主键了

alter table "テーブル名" auto_increment=0 #全削除後の自動増加初期値のリセット

create table "テーブル名"("カラム名1","データ型1" default "初期値",....) #最初からデータが入っているカラムにする

alter table "テーブル名" modify "カラム名" "データ型" default "初期値"

index設定

create index "インデックス名" on "テーブル名"("カラム名") #インデックス作成

show index from "テーブル名"\G

drop index "インデックス名" on "テーブル名" #インデックスの削除  

テーブルのコピーや削除

create table "新規テーブル名" select * from "元となるテーブル名" #カラム構造とデータを丸ごとココピー・自動増加などはコピーされない。

create table "新規テーブル名" like "元となる新規テーブル名" #カラム構造だけコピーされる。自動増加などもコピーできる。

insert into "テーブル名" select * from "元となるテーブル名" #同じ構造のテーブルのデータを丸ごとコピーする。

insert into "テーブル名"("カラム名1") select "カラム名2" from  "元なるテーブル名" #特定のカラムを選択してコピーする

drop table (if exists)"テーブル名"

drop database "データベース名"

delete from "テーブル名" (where "条件")#レコードをまるごと削除

情報抽出

select "カラム名" as "エイリアス" from "テーブル名"

select "テーブル名" as "エイリアス"

concat(a,b,c) from "テーブル名" #文字結合

#right left substring repeat reverse now

select (distinct) "カラム名" from "テーブル名" where "条件" limit "表示するレコード数"
 
  (not) like "" #曖昧検索 %任意文字列 _任意一文字

  where XX is NULL
 
  case when then else end #!! 

  order by "カラム名" desc #降順

  offset "表示開始レコードのシフト数"

  group by "カラム名" (having "条件") #このカラム名の下の重複した項目をグループ化

  where "カラム名" (not) in('値1','値2')

###データの編集

update "テーブル名" set "カラム名" = "設定する値" where "条件"

insert into "存在するテーブル名" select * "テーブル名" where "条件"

###複数のテーブルを利用

select "カラム名1" from "テーブル名1" union select "カラム名2" from "テーブル名2"
  
  union all #重複を省くことをさける

# 内部結合

select "カラム名" from "テーブル1" join "結合するテーブル2" on "テーブル1のカラム名"="テーブル2のカラム名" 
  
  using("共通のカラム名") #"テーブル1のカラム名"="テーブル2のカラム名"

#(左右)外部結合

select "カラム名" from "テーブル1" left join "結合するテーブル2" on "テーブル1のカラム名"="テーブル2のカラム名"

# 自己結合(順位づけ)

select "カラム名" from "テーブル名" as "エイリアス1" join "テーブル名" as "エイリアス2"

# サブクエリ

select "表示するカラム" from "テーブル名" where "カラム名" in ("selectんいよるサブクエリでカラムを抽出")

# exist と not existの利用

ビュー

select (or replace) view "ビューの名前" as select "カラム名" from "テーブル名" where "条件"

  with check option #就是使往view里插入不符合where条件的数值的时候报错

alter view "ビュー名" as select "カラム名" from "テーブル名" #ビューのカラム構造変更

drop view if exists "ビュー名"

ストアドプロシージャ

delimiter //
create procedure "ストアドプロシージャ名"("引数名","データ型")
begin
xxxx;
yyyy;
end
//
delimiter ;

call "ストアドプロシージャ名"

show create procedure "ストアドプロシージャ名" #内容表示

drop procedure "ストアドプロシージャ名"


delimiter //
create function "関数名"("引数名","データ型") return "返す値のデータ型"
begin
declare "変数名" "データ型";
"SQL文";
return "返し値 式";
end
//
delimiter ;

show create function "関数名";

drop function "関数名";

トラザクション

show create table "テーブル名" #テーブル詳細情報確認

start transaction

rollback or commit

set autocommit=0/1

select @@autocommit

ファイルを使ったやりとり

load data infile "ファイル名" into table "テーブル名" "オプション記述"

  "オプション記述": 
  field terminated by "区切り文字(デフォルトは'\t'タブ)"
  lines terminated by "改行文字(デフォルトは'\n'改行)"
  ignore "最初にスキップする行" lines "(デフォルトは0)"

select * into outfile "ファイル名" "オプション記述" from "テーブル名"

type "ファイル名" #ファイルの中身確認

source "テキストファイル名" #从文件里读sql语言

バックアップとリストア

mysqldump -u "ユーザー名" -p"password" "データベース名">"出力ファイル名"

mysqladmin -u root -p1234 create db2

mysql -u root -p1234 db2<"入力ファイル名"
3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?