1つは、SQLの概要です
構造化クエリ言語(構造化クエリ言語
)SQLは、リレーショナルデータベースの標準言語であり、強力な機能を備えたユニバーサルリレーショナルデータベース言語でもあります。その機能には、クエリだけでなく、データベーススキーマの作成、データベースデータの挿入と変更、Aが含まれます。データベースのセキュリティ整合性の定義や制御などの一連の機能。
2、SQL機能
1.包括的で統一された
非关系模型(层次模型,网状模型)的数据语言
(1)模式数据定义语言(Schema Data Defintion Language 模式DDL)
(2)外模式数据定义语句(Subschema Data Defintion Language 外模式DDL)
(3)数据存储有关的描述语言(Data Definition Language)
(4) 数据操纵语言(Data Manipulation Language DML)
SQLは、データ定義言語、データ操作言語、およびデータ制御言語の機能を統合します。SQLは統一された言語スタイルを持ち、次の一連の運用要件を含む、データベースライフサイクルのすべてのアクティビティを独立して完了できます。
- リレーショナルパターンの定義と変更、削除、ビューの定義と削除、データの挿入、データベースの構築。データベース内のデータをクエリして更新します。
- データベースの再構築と保守。
- データベースのセキュリティ、整合性制御、およびトランザクション制御。
- 埋め込みSQLと動的SQL定義。
これは、データベースアプリケーションシステムの開発に適した環境を提供します。特にデータベースシステムの運用開始後は、データベースの運用に影響を与えることなく、いつでも必要に応じて段階的にモードを変更できるため、システムのスケーラビリティが向上します。
注意:さらに、リレーショナルモデル内のエンティティとエンティティ間の関係はすべて関係によって表されます。このデータ構造の統一により、データ演算子の統一がもたらされます。検索、挿入、削除、更新などの各操作に必要なのは、情報表現の多様性による非リレーショナルシステムの運用上の複雑さを克服する演算子。たとえば、DBTGメッシュデータベースシステムでは、2つの挿入演算子が必要です。STOREはデータベースにレコードを格納するために使用され、CONNECTは値にレコードを挿入するために使用されます(値はメッシュデータベース内のレコードに接続する方法です)データ間の接続を確立します。
2.非常に非手続き的
非リレーショナルデータモデルのデータ操作言語は「手続き型」言語です。「手続き型」言語で特定のリクエストを完了するには、アクセスパスを指定する必要があります。SQLを使用してデータ操作を実行する場合、「実行方法」を指定せずに「実行すること」を提示するだけでよいため、アクセスパスを理解する必要はありません。アクセスパスの選択とSQL操作プロセスは、システムによって自動的に完了します。これにより、ユーザーの負担が大幅に軽減されるだけでなく、データの独立性が向上します。
3.コレクション指向の操作
非リレーショナルデータモデルはレコード指向の操作モードを採用しており、操作オブジェクトはレコードです。たとえば、平均スコアが80ポイント以上のすべての学生の名前をクエリするには、ユーザーは条件を満たす学生レコードを1つずつ見つける必要があります(通常、特定のプロセス、つまり、どのパスをたどるかを説明します。サイクルの仕方など)。SQLは複合操作モードを採用しています。操作オブジェクトと検索結果をタプルの集合にするだけでなく、挿入、削除、更新操作のオブジェクトもタプルの集合にすることができます。
4.同じ文法構造を持つ複数の使用方法を提供します
SQLは、独立した言語であると同時に組み込み言語でもあります。独立した言語として、オンラインでの対話に独立して使用できます。ユーザーは、ターミナルキーボードでSQLコマンドを直接入力してデータベースを操作できます。埋め込み言語として、SQLステートメントを高級言語(
Cなど)に埋め込むことができます。、C ++、Java)プログラム、プログラマーがプログラムを設計するときに使用します。2つの異なる使用モードでは、SQLの文法構造は基本的に同じです。統一された文法構造でさまざまな使用方法を提供するこの方法は、優れた柔軟性と利便性を提供します。
5.シンプルな言語、習得と使用が簡単
SQLは非常に強力です。その巧妙な設計と単純な言語により、表3.2に示すように、コア機能を完了するために使用される動詞は9つだけです。SQLは話し言葉の英語に近いので、習得と使用が簡単です。
3、SQLの基本概念
4、クエリデータステートメント
1. SQL言語で、データベースのクエリに使用されるステートメント
2.SELECTステートメント。構文は次のとおりです。
SELECT 字段列表
FROM 数据源
[ WHERE 筛选条件]
[ GROUP BY 分组表达式]
[ HAVING 搜索表达式]
[ ORDER BY 排序表达式 [ASC | DESC ] ]
3.構文の説明
① 選択するこの句は、クエリに表示されるフィールド名を示すために使用され、フィールド名はコンマで区切られます。
②からこの句は、クエリに関係するデータソース、つまりデータの場所を示すために使用されます。データソースは、ベーステーブル名またはクエリ名にすることができます。
③どここの句は、クエリのフィルタ条件を示すために使用されます。そのため、WHEREの後の論理式が「true」であるレコードは、クエリに必要なレコードです。
④GROUP BYこの句は、クエリ結果セットをグループ化するために使用されます。グループ化式は、列または参照列の非集計式にすることができます。選択リストで定義された列のエイリアスを使用して、グループ化列、テキスト、 ntext、および画像タイプの列グループ化には使用できません。
⑤持っているこの句は、グループをフィルタリングするために使用されます。この句はGROUPBYとともに使用する必要があり、単独で使用することはできません。
⑥ORDER BYこの句はクエリ結果を並べ替えるために使用され、並べ替えフィールドは順序付きデータ型である必要があります。ASCは昇順(小さいものから大きいものへ)を意味し、DESCは降順(大きいものから小さいものへ)を意味し、ASCはデフォルト値です。
✓角括弧で囲まれた内容は、この項目を省略できることを示しています。
⑧SQL言語の句読点はすべて英語である必要があります。
4.オフオペレーター:
①Like演算子Like演算子
の機能は、テキストタイプのデータが指定された「パターン」と一致するかどうかを判断することです。一致すると「True」が返され、一致しない場合は「False」が返されます
。②In、NotIn演算子
In演算子「True(true)」を返す場合、「False(false)」を返さない場合、データが特定のセットに含まれるかどうかをテストするために使用されます。セットは、括弧で囲まれた定数のリストであり、コンマで区切られます。
③BetweenBetween
演算子は、「true(true)」が返され、「false
(false)」に戻らない場合に、指定された間隔のデータかどうかをテストするために使用され
ます
。④TOPnは最初に返される結果を表しますnレコード⑤DISTINCTキー単語の意味クエリ結果の重複値を削除するには
5.集計関数
注:ALLは、条件を満たすすべてのタプルを計算することを意味し、DISTINCTは、重複するタプルを削除してから計算することを意味します。ALLはデフォルト値であり、変更がない場合、システムはそれをALLと見なします。
6.FROM句
6.1内部接続
構文:表1 INNERJOIN表2ON(接続条件)
機能:2つのテーブルの自然な接続。
例:
「XXX」コースを選択した学生にクエリを実行します:学生ID、名前。
Select 选课.学号,姓名
From 学生,选课,课程
Where 学生.学号=选课.学号 And
选课.课号=课程.课号 And
课名=‘XXX’
6.2左外部接続
構文:表1 LEFT OUTERJOIN表2ON
(接続条件)注:左側の外部接続は、左側のデータソースのすべてのデータを保持します。右側のデータソースに接続可能なデータがない場合でも、右側にnull値(NULL)を入力するデータはありません。
6.3右外部接続
構文:表1 RIGHT OUTERJOIN表2ON
(接続条件)注:右外部結合は、右データソースのすべてのデータを保持します。左データソースに対応するデータがない場合、対応する値はNULLです。
6.4外部接続
構文:表1 FULL OUTERJOIN表2ON
(接続条件)はデカルト積演算に相当します
7.WHERE句
WHERE句は、タプルのフィルター条件を示すために使用されます。
構文:WHERE論理式関数:システムは、論理式の結果を「true」にするタプルを選択します。論理式では、
次の演算子を使用できます。
8.BETWEEN演算子
構文:変数[NOT]初期値と最終値の間
機能:数量が間隔[初期値、最終値]内にあるかどうかを判断するために使用されます
9.LIKE演算子
構文:文字変数[NOT] LIKE'pattern '
関数:「文字変数」の値を指定された文字列パターンと一致させ、「true」を正しく返します。
パターン:文字列とワイルドカード。ワイルドカード文字は次のとおりです。
10.注文する
OEDER BY句は、クエリ結果の並べ替えを示すために使用されます。
構文:OEDERBYソート式1 [ASC | DESC]。これは、順序付けされたタイプのフィールドのみをソートできます。
11.集計関数
12.ネストされたクエリ
いわゆるネストされたクエリとは、クエリにクエリが含まれていることです。クエリは最初に結果を見つけ、次にその結果を使用してクエリを実行します。次のメソッドを使用して、サブクエリを作成できます。
- 比較演算子を使用する
- IN述語を使用します。
- ANY、ALL述語を使用します。
- EXISTS述語を使用します。
13. ANY、ALL演算子
比較演算子を使用する場合、論理式に次の述語を使用できます
。ANY:SOMEと同じセマンティクスを持つセットのいずれか1つを表します(1つは問題なく、もう1つは問題ありません)。
たとえば、X> ANY(12、34、67)、X = 13の場合、結果は「true」になります
。ALL:セット内のすべてを意味します。
たとえば、X> ALL(12、34、67)、X = 13、結果は「false」、X = 69、結果は「true」です。
14.EXISTS演算子
EXISTS述語は、論理的存在記号です。
EXISTS述語を使用したサブクエリはデータを返しませんが、論理真理値「true」または論理偽値「false」のみを生成します。
内部クエリ結果が空でない場合、外部WHERE句は真の値を返します。内部クエリ結果が空の場合、外部WHERE句は偽の値を返します
。EXISTSから派生したサブクエリには通常、ターゲット列式Use *、 EXISTSを使用したサブクエリはtrueまたはfalseの値のみを返すため、列名を指定しても実用的な意味はありません。
5、データステートメントを挿入
1. SQL言語では、データベーステーブルにレコードを挿入するために使用されるコマンドはINSERTステートメントです。
2.文法
INSERT INTO 基本表名 [(字段列表)]
{
VALUES (值列表) | SELECT 字段列表
From 表名2 [Where <条件>] }
3.説明
①フィールドリストは、コンマで区切られた、割り当てられるフィールドの数です。フィールドリストを省略すると、テーブルのすべてのフィールドに値を割り当てる必要があります。
②値リストは、フィールドリストに対応する値のセットで、コンマで区切られています。値リストの値の数とタイプは、フィールドリストのフィールドの数とタイプに対応している必要があります。
③テーブルにデータを挿入する場合、テーブルの「必須フィールド」属性が「はい」で、デフォルト値が設定されていないフィールドを割り当てる必要があります。
④テーブルにデータを挿入する場合、「自動番号」タイプのフィールドに値を割り当てることはできません。
6、データステートメントを変更します
- SQL言語では、テーブル内のレコードのフィールド値を変更するために使用されるコマンドはUPDATEステートメントです。
- 文法
语法
UPDATE 表名
SET 列名=表达式 [,列名=表达式,…]
[ WHERE 条件表达式 ]
- 説明
列名:値が変更されるフィールドを参照します。複数のフィールドの値を一度に変更できます。条件を省略すると、テーブル内のすべてのレコードが変更されます。
7、データステートメントを削除します
- SQL言語では、テーブル内のレコードを削除するために使用されるコマンドはDELETEステートメントです。
- ステートメント
DELETE FROM 表名
[ WHERE 条件表达式 ]