設定するデータ型 | SQL文で使用するデータ型 | 意味 |
---|---|---|
短いテキスト | TEXT(n), VARCHAR(n) | 文字列や計算対象としない数字。フィールドサイズにて255文字まで格納可能な文字数を設定できる |
長いテキスト | LONGTEXT, LONGCHAR | 256文字以上になる長い文字列 |
数値型(長整数型) | INTEGER,INT,LONG | -2,147,483,648〜2,147,483,647の整数データ |
数値型(整数型) | SMALLINT,SHORT | -32,768〜32,767の整数データ |
数値型(単精度浮動小数点) | SINGLE,REAL | -3.40E+38〜3.40E+38の浮動小数点データ |
数値型(倍精度浮動小数点) | DOUBLE,FLOAT | -1.79E+308〜1.79E+308の浮動小数点データ |
日付、時刻 | DATETIME | 日付や時刻のデータ |
オートナンバー型 | AUTOINCREMENT | レコードを新規追加する度に固有の番号が自動入力されるデータ |
数値型とは…数量や重量など計算対象となる数字。数値型は、フィールドサイズと組み合わせることで実質、それぞれ別のデータ型になります。
CREATE TABLE テーブル名 (フィールド名 データ型,…);
DROP TABLE テーブル名;
CREATE TABLE テーブル名 (フィールド名 データ型 PRIMARY KEY,…);
※主キーにしたいフィールドの、データ型を指定した後ろに、半角スペースを入れて、「PRIMARY KEY」と入れる
CONSTRAINT 主キー名 PRIMARY KEY (フィールド名1,フィールド名2,…)
INSERT INTO テーブル名 (フィールド名1,フィールド名2,…)
VALUES(追加する値1,追加する値2,…);
文字列を値として入力する際は、「’(シングルクォーテーション)」で囲みます
「WHERE」句の後も「抽出条件」とだけ書きましたが、ここも基本的には
フィールド名を使って「フィールド名=○○」というような指定をします
複数の条件を入れる際は「AND」や「OR」を使用。
UPDATE テーブル名 SET フィールド名=更新する値
WHERE 抽出条件;
VBAの変数と似ている部分は、例えばAとBの文字列を
結合した値でCフィールドを更新する場合、「SET C=A & B」とする
SELECT フィールド名 FROM テーブル名
WHERE 抽出条件
ORDER BY フィールド名 [ASC|DESC];
フィールド名の後ろに何も書かないか「ASC」と入れると「昇順」に、「DESC」と入れると「降順」になります
1.フィールド名を指定せず「*」
SELECT COUNT(*)
FROM テーブル名;
2.COUNT関数の引数で、フィールド名を指定する
SELECT COUNT(フィールド名)
FROM テーブル名;
SELECT文などで、抽出結果が式の結果であったり、複数のテーブルを結合する際のテーブル名などには、別名(エイリアス名)を付けることが出来る
[別名をつけたい式やフィールド名、またはテーブル名] AS 別名
「AS」と書いて、「別名」を入れる
SELECT グループ化するフィールド名,集計式
FROM テーブル名
WHERE 抽出条件
GROUP BY グループ化するフィールド名;
「GROUP BY」の後ろにグループ化するフィールド名を指定するのですが、同じものを、必ずSELECTの後ろにも書かないといけません。
「GROUP BY」で集計した結果を抽出条件としたい場合は「HAVING」
※この場合は「WHERE」句で指定するわけではない
SELECT フィールド名 INTO 新しいテーブル名
FROM テーブル名
WHERE 抽出条件;
「FROM」の前に「INTO 新しいテーブル名」と入れるだけ
※他のデータベースでは似たような機能を使う場合、「CREATE VIEW」を使ってビューと呼ばれるものを作成する必要がある
「INSERT INTO」ステートメントの「VALUES」句の代わりに「SELECT」ステートメントを繋げて指定する
INSERT INTO 追加先テーブル名
SELECT フィールド名(式、リテラル値)
FROM 追加元テーブル名
WHERE 抽出条件;
※SELECTの抽出結果の値が、必ず追加先テーブルのフィールドの数とそのデータ型に、合致しないといけない
この関数はSQLの標準ではなく、使えるのは、Microsoft社製のデータベースのみ(Accessの他にSQLSeverがある)となります。
IIF(評価する式,[真の場合の値または式],[偽の場合の値または式])
最初の引数には「’yyyy’」「生年月日」フィールドを使って、「2020年4月1日」を基準に何歳かを出しますので、次の引数には「生年月日」を、最後の引数には「#2020/4/1#」を
入れています。
DATEDIFF(計算に使用する時間単位,日付1,日付2)
SELECT 取得フィールド名
FROM 結合元テーブル名
INNER JOIN 結合先テーブル名
ON 結合元テーブルの結合キー = 結合先テーブルの結合キー;
それぞれのテーブルで、結合するキーが一致するレコードのみ抽出する結合方法
SELECT 取得フィールド名
FROM 結合元テーブル名
LEFT JOIN 結合先テーブル名
ON 結合元テーブルの結合キー = 結合先テーブルの結合キー;
結合元のテーブルのレコード全件取得に対し、結合先のテーブルは結合キーが合致するレコードのみ結合する方法です。結合キーが合致しないレコードには「NULL」が入る
SELECT 取得フィールド名
FROM 結合先テーブル名
RIGHT JOIN 結合元テーブル名
ON 結合元テーブルの結合キー = 結合先テーブルの結合キー;
左外部結合が反転した結合方法
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント