MySQL 構文構成の概要
Apr 14, 2021 am 09:54 AM#私は最近数週間 MySQL を学習しています。このブログは MySQL の基本的な構文を整理することに専念しています。
まず、MySQL の 3 つの最も基本的なステートメントを見てみましょう。例: 以下の講師テーブルで給与が 80,000 を超える教師の名前を検索したいです。
関連する無料学習の推奨事項: mysql ビデオ チュートリアル
1 2 3 |
|
クエリ結果は次のようになります。これら 3 つのステートメントは MySQL で最も重要な 3 つのステートメントであり、基本的にすべてのクエリはこれら 3 つのステートメントから分離できません。ただし、複雑なクエリに対応したい場合は、より多くのステートメントをサポートする必要があります。
distinct: 結果の重複を排除します 1
2
3
/*用法如下,假如我想在上表instructor中,找出所有系的名字,可以发现在dept_name中,有的系是出现了一次以上,
因此要对系的名字进行去重*/
select distinct dept_name
from instructor; -- 这里不需要限定条件,因此不用where语句
ログイン後にコピー
1 2 3 |
|
*: 現在のテーブルのすべてのキーを示します。いわゆるキーは実際には行フィールドです。テーブルの ID (講師テーブルの ID 、名前、dept_name など)1
2
3
/*类似上一个例子,我想找出instructor表中salary大于80000的教师,并显示这些老师的所有信息*/
select *
from instructor
where salary > 80000; -- 其实不加分号也行,分号表示执行到此结束,接下来的语句不执行
ログイン後にコピー
1 2 3 |
|
複数の条件をフィルターする場合 (たとえば、講師を検索したい場合)給与が 80,000 を超えるコンピュータ部門の教師、つまり I も指定する必要があります。 給与が 80,000 を超えるコンピュータ部門の教師を見つけるには、and ステートメント ## を使用する必要があります。 #1
2
3
4
5
select *
from instructor
where salary > 80000
and
dept_name =
'Comp. Sci.'
;
/*同样有and语句就有or语句,or表示或,即满足一个条件即可。比如我想找出工资小于60000或者大于80000的教师*/
select *
from instructor
where salary > 80000
or
salary
ログイン後にコピー
次に、複数のテーブル間のクエリを開始します。これが次に行うことです。まずキーの基本的な概念を追加しましょう。キーとは何かについてはすでに説明しました。ここでは主キー (主キーとも呼ばれます) について説明します。主キーは、特定のレコードを一意に決定するキーを表します。たとえば、キャンパス内で私たちを識別できる唯一の方法は学生証であり、たとえ学校内で私と同じ名前の人がいたとしても、学生証によって身分を区別できます。名前が主キーではないことがわかりますが、名前が重複すると、その名前で生徒を一意に識別できなくなります。 1 2 3 4 5 |
|
これは教師のテーブルです。ID キーは教師の ID を表し、course_id はコース ID を表し、semester はコースが開始される学期を表します。教師が教えているコースを調べて、教師の名前と course_id を表示します。
1 2 3 4 5 6 |
|
それでは、自然結合、つまり自然なつながりについて話しましょう。変更操作は非常に簡単です。つまり、2 つのテーブルに等しい主キーを持つレコードを保存します。2 つのテーブルに複数の同一のキーがある場合は、保存する前に、それぞれの同一の主キーが同じであることを確認する必要があります。
1 2 3 4 5 |
|
テーブルの列が大幅に増加していることがわかります。実際、2 つのテーブルのキーが統合されています。自然なつながりについてまだ完全に理解していない場合は、別の例を挙げてみましょう。たとえば、学生テーブル ['Xu Xiaoming, No. 1', 'Huang Xiaoshan, No. 2'] があります。主キーは学生番号です。また、得点表
['No. 1、中国語: 87、数学: 98'、'No. 2、中国語: 94、数学: 82'] もあり、学生番号がこのテーブルの主キーでもあります。テーブル。生徒の表を印刷したい場合は、2 つの表を自然に接続するだけで済みます。自然な接続プロセス中に、同じ学習記録が 1 つのレコードに統合され、最終的には
['No. 1、Xu Xiaoming] になります。 、中国語:87、数学:98」、「No.2、黄暁山、中国語:94、数学:82」]。実は、自然接続はデカルト積を最適化したものであり、デカルト積を自分で理解することができます。
1
SELECT
'dd'
;SELECT 10*20;SELECT NOW(),UNIX_TIMESTAMP();
ログイン後にコピー実はここで注目していただきたいのですが、select ステートメントの後のキーが結果のキー名になります。 . これを知ってください フォローアップは、名前変更作業に非常に役立ちます。たとえば、今の例では、
1 |
|
と似ています。 1
2
/*通过concat函数来连接那么和dept_name*/
SELECT NAME,CONCAT(NAME,
' : '
,dept_name)FROM instructor;
ログイン後にコピー
1 2 |
|
キー名だけでなく、そのキーを持つレコードも結合されます。
1
2
3
4
5
/*比如刚刚那个例子*/
SELECT NAME,CONCAT(NAME,
' : '
,dept_name)
as
'name+dept'
FROM instructor;
/*或者给表改名*/
SELECT NAME
FROM instructor
as
i
WHERE i.salary > 70000; -- 注意改名后,要想引用该表的键,要加上引用符号:.
ログイン後にコピー
1 2 3 4 5 |
|
讲了这么就查询,这里讲一下创建表:create table。其实这个命令一般用的很少,我更喜欢用鼠标点击来创建表,而不是敲代码来创建。
1 2 |
|
刚刚例子中出现了like,其实like还可以用于字符匹配
1 2 3 4 5 |
|
order by:对结果表中的键进行排序,默认是升序,即记录从上往下逐个递增
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
有没有想过为什么order by要在where语句后面呢?因为order by语句时针对结果表的,where语句之后才有结果表,这也与我之前强调MySQL查询结果一切都是表!哪怕这个表只有一个键甚至一条记录!
between and:选择区间内的记录
1 2 3 4 |
|
当我们对查询多个条件时,有时候可以通过键匹配
1 2 3 4 |
|
下一篇博客将重点介绍多个表之间的查询,这也是重中之重,难点之一!
更多相关免费学习推荐:mysql教程(视频)
以上がMySQL 構文構成の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?
