私は毎回 SQL Sever を使って直接データベースを設計することに慣れていますが、SQL ステートメントにはあまり注意を払いません。今回のコンピュータ室連携版の再構築を機会に、SQL ステートメントを使用してデータベースを設計してみました。同時にSQL文の基本的な使い方も理解できました。
SQL文には9種類あり、その機能分類により大きく4種類に分けられます。
1. クエリ文:select ---- 最も一般的データベース内で使用されるステートメント
2. データ定義: 作成、削除、変更----データベース、データテーブルおよびテーブル内のフィールドに対して実行される操作
3. データ操作: 挿入、更新、削除-- --特定のデータに対する伝説の「追加、削除、変更、確認」操作
4. データ制御: 権限の付与、取り消し----権限の定義と削除
1データベースの作成
create database RechargeSystem on primary --主文件组 ( /*数据文件的具体描述*/ name='RechargeSystem_data', --主数据文件的逻辑名称 filename='G:\RechargeSystem\RechargeSystem_data.mdf', --主数据文件的物理名称 size=5mb, --初始大小 maxsize=100mb, --增长最大值 filegrowth=15% --主数据文件增长率 ) log on ( /*日志文件的具体描述*/ name='RechargeSystem_log', filename='G:\RechargeSystem\RechargeSystem_log.ldf', size=2mb, filegrowth=1mb )
オペレーティング システムを学習している場合は、これらの定義ステートメントにあまり馴染みがないでしょう。データベース グループ ファイルもファイルの一種であり、論理名 (つまり、ファイル) が必要です。名前) と物理名 (実際にディスクに保存されているアドレス)、ファイル サイズなど。利点と欠点などの詳細については、Baidu 百科事典: ログ ファイル
2. 基本的なテーブル操作
-------------------------------------------------------------------------------------------------------------------------------------------- create table <基本表名> ---建立表格 (<列名 类型 not null>, primary key(列名,列名),--主键约束 foreign key (<列名>) references tableName(<列名>),--外键约束); -------------------------------------------------------------------------------------------------------------------------------------------- alter table <表名> add <列名><数据类型> --添加列
確立されたテーブルのプライマリ外部キーを設定できます:
alter table <表名> add primary key(<列名>,<列名>) alter table<表名> add foreign key(<列名>) references tableName(<列名>)
カラムの削除: alter table<テーブル名>drop <カラム名>[cascade| [restrict] --restrict は、列のビューと制約もセクター化します
---------------------------- -------------------- ------------------------------ -------------------- ------------------------------ --------------------
drop table 3. クエリ ステートメント: 従来のクエリ ステートメントは次のとおりです: select * from datatable この組み合わせ関係は、複数のテーブルからクエリされることに注意してください。 M:N の関係で対応する関係を見つけます。
この関係は、ロジックが複雑なユーザーには推奨されず、特に検索エラーが発生しやすくなります。 ---------------------------------------------- --- --------------------------------------------------- --- --------------------------------------------------- --- SQLクエリステートメントは、簡単なクエリを使用するための基本的な集計関数も提供します: カウント(*)------------------------------------------------------------------------------------------------------------------------------------------------------------------ - タプル番号、つまり合計列数を計算します (<列名>)------ --値の列の合計(数値型) avg (<最大値>) ---------------平均(数値である必要があります) max (<列名>)------------- ---最大値 min(<列名>)---------- ------------最小値 例: T_studentからselect count (distinct s#)、distinctを追加した後、複数の生徒番号が繰り返し出現する場合、1つとしてのみ計算できます ------------------------------------------------------ ------------------------ ------------------------ ------------------------ ------------------ 完全な意味構造: - ---- ----------------グループ条件を満たさない情報は除外されます <列名[asc|desc]>で並べる ---- -- --------------Asc昇順、desc降順 ---------------------- - ------------------------------------------------- - ------------------------------------------------- - ----------------- 特別なクエリ要件: 1. 比較演算: <,<=,>,>=,!= 2. マッチング操作: %---0 個以上の文字で構成される文字に一致し、「_」は単一の文字に一致します 3. Null 値は Null です 4. 集約されたリソースの比較 : in 、some、any、all 5. セットが空でないかどうか: 終了 --- 空でない場合は true、それ以外の場合は false 6. 重複したタプルがあるかどうかセット: 一意 ---- ----true として繰り返し、それ以外の場合は false ---------------------------- -------- -------------------------------------- -------- -------------------------------------- -------- ------- 4. データ操作ステートメント 挿入: <テーブル名> (<列名>、<列名>) ..)values('Value', 'Value') 削除: <テーブル名> where 条件から削除 変更: <テーブル名> set 5. 埋め込み SQL の使用法よく使用される実行ビュー、ストアド プロシージャなどを実行するための exec を追加します。 [概要] 知識とは常にこのようなものであり、学習するたびに、特にそれを使用した後は、異なる結果が得られます。さまざまな方法の違いを比較してみます。データベース ビュー、ストアド プロシージャ、セキュリティ設定の次の比較検討を楽しみにしています。
上記は、MySQL SQL 基本ステートメントの大規模なコレクションの内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。
[cascade|restrict] -- 制約がある場合は、テーブルを削除します。
select TB1.column1,TB1.column2
from TB1
where TB1.column1 in(select column1
from TB2
where TB2.column2="特定值");