目次
SQL
構造化照会言語(構造化照会言語)は、データベースの操作言語です。SQLステートメントを使用して、データベース内のデータテーブルを簡単に操作できます。
SQLステートメントの分類
- DDL:データ定義言語
- データベースオブジェクト(データベース、テーブル、列など)を定義するために使用されます。
- キーワード:create drop alter truncate
- DML:データ操作言語
- データベーステーブルのデータを追加、削除、および変更するために使用されます
- キーワード:挿入削除更新
- DQL:データクエリ言語
- データベースを照会するための言語
- キーワード:選択
- DCL:データ制御言語
- データベースのアクセス権とセキュリティレベルを定義し、ユーザーを作成するために使用されます
- キーワード:GRANT REVOKE
- TCL:トランザクション制御言語
- データベースのトランザクション操作を制御するために使用されます
- キーワード:COMMIT SAVAPOINT ROLLBACK
DDLステートメント
DDLステートメントを使用してデータベースを操作します:ライブラリの作成、ライブラリの表示、ライブラリの変更、ライブラリの削除
DDLステートメントを使用してデータベーステーブルを操作します。テーブル表示テーブルの作成テーブルの削除テーブルの削除操作
DDLステートメントを使用してデータベーステーブルの列を操作します:列の追加、列の変更、列の削除
DDLステートメントオペレーティングデータベース
//创建数据库
CREATE DATABASE 数据库名;
//判断是否存在并创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名
//创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
//查看数据库
SHOW Database
//查看某个数据库的定义信息
SHOW CREATE DATABASE 数据库名
//修改数据库(修改字符集)
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
//删除数据库
DROP DATABASE 数据库名
//使用数据库
//查看正在使用的数据库
SELECT DATABASE();
//使用/切换数据库
USE 数据库名
DDLステートメント操作データテーブル
//创建表
CREATE TABLE 表名 (
字段名1 字段类型1,
字段名2 字段类型2…
);
//查看表
SHOW TABLES;
//查看表结构
DESC 表名;
//查看创建表的SQL语句
SHOW CREATE TABLE 表名;
//快速创建一个相同的表
CREATE TABLE 新表明 LIKE 旧表名
//删除表
DROP TABLE 表名;
//表存在则删除
DROP TABLE IF EXISTS 表名;
//修改表
//表中添加列
ALTER TABLE 表名 ADD 列名 类型;
//修改列类型
ALTER TABLE 表名 MODIFY 列名 新的类型;
//修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
//删除列
ALTER TABLE 表名 DROP 列名;
//修改表名
RENAME TABLE 表名 TO 新表名;
//修改字符集
ALTER TABLE 表名 character set 字符集;
DMLステートメント
増加する
//插入全部字段
INSERT INTO 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1, 值2, 值3);
//或者
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
//注意:不写字段名的情况下,values后面值的顺序要和数据内字段的定义顺序要保持一致。
//注意:
//值与字段必须对应 ,个数相同,类型相同
//值的数据大小必须在字段的长度范围内
//除了数值类型外,其他的字段类型的值必须使用引号引起(建议单引号)
//如果要插入空值,可以不写字段,或者插入null
//批量插入数据
INSERT INTO 表名
(字段名1, 字段名2, ...)
VALUES
(值1, 值2, ...),
(值3, 值4, ...);
削除
//不带条件的删除数据
DELETE FROM 表名;
//带条件的删除
DELETE FROM 表名 WHERE 字段名=值;
変化する
//不带条件的修改
UPDATE 表名 SET 字段名=值;
//带条件的修改
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
DQLステートメント
//简单查询
Select * from 表名
//查询某列数据
select 字段名1, 字段名2 ...from 表名
//别名查询
select 字段名1 as 别名,字段名2 as 别名 ... from 表名
//查询结果参与运算
select 列名1+固定值 from 表名
select 列名1+列名2 from 表名
重複する値とnull値の処理を削除します:
//重複する値
をクリアします
//フィールド名をクリアするためのキーはDISTINCTです// selectステートメントは1つの個別のみを持つことができ
、テーブルからselect selectdistinctフィールド名の後にのみ書き込むことができます- IFNULL(式1、式2):式1の値がnullの場合、式2の結果が返されます。式1の値がnullでない場合、式1の結果が返されます。
DQL文の強化
- 変数がnull(フィールドがnull)であるかどうかを判別します
- 列名がnullであるテーブル名から*を選択します
- 比較演算子
- >より大きい<より小さい<=以下> =以上
- = <>に等しい!=等しくない
- 列名比較演算子の比較値であるテーブル名から*を選択します
- 論理演算子
- および(&&):複数の条件が同時に満たされる
- または(||):複数の条件の1つが満たされている
- ない(!):満足していない
- 条件1論理演算子条件2であるテーブル名から*を選択します。
- 範囲
- in:inの 各データは条件として使用され、条件が満たされている限り表示されます
- SELECTフィールド名FROMテーブル名WHEREフィールドin(データ1、データ2 ...);
- between ... and ..:範囲条件を満たすデータ、ヘッダー、および終了を表すために使用されます
- 値1と値2の間の条件であるテーブル名から*を選択します
- キーワードのように:ファジークエリを示し、次のワイルドカードルールを満たすデータが表示されます
- %:0個以上の文字(任意の文字)を表します
- _:文字を表します
//查询姓马的学生 select * from student where name like "马%"; //查询姓马的且为两个字符的学生 select * from student where name like "马_" //查询姓名含有马的学生 select * from student where name like"%马%"
- 並べ替え(ORDER BY)
- 単一列の並べ替え
SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
- ASC:昇順、デフォルト値
- DESC:降順
- コンビネーションソート
- 最初に最初のフィールドで並べ替えます。最初のフィールドが同じ場合は、2番目のフィールドで並べ替えます。
-
SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
- 集計関数(選択後にフィールド名に書き込まれます)
- count:指定された列のレコード数をカウントします。NULLのレコードはカウントされません。
- sum:指定した列の数値合計を計算します。数値タイプでない場合、計算結果は0です。
- max:指定した列の最大値を計算します
- min:指定した列の最小値を計算します
- avg:指定された列の平均値を計算します。数値タイプでない場合、計算結果は0です。
select 聚合函数(字段名) from 表名
- グループ化
- GROUP BYは、グループ化フィールドの結果の同じコンテンツをグループとして扱い、各グループの最初のデータを返します。グループ化の目的は、数量をカウントすることです。一般的なグループ化機能と集計機能は一緒に使用されます。
- SELECTフィールド1、フィールド2 ... FROMテーブル名GROUPBYグループ化フィールド[HAVING条件];
- 持っていることとどこにあるかの違い
- パケットフィルターのデータに対して実行した。
- グループ化する前にデータをフィルタリングする場所
- 集計関数は、
- 集約関数は、どこの背後でも使用できません
制限ステートメント
制限的な意味での制限。役割制限は、クエリを制限するためのレコードの数です。
- limitの構文フォーマット:
- LIMITは、長さをオフセット。または制限長
- オフセットはスキップされたレコードの数を指します(学名:オフセット)。デフォルトは0です。
- 長さは、表示する必要のあるレコードの総数を指します
//跳过前面2条,取6条数据 SELECT * FROM student3 LIMIT 2,6;
データベースの制約:
- プライマリキーの制約:PRIMARY KEY
- レコードを一意に識別するために使用され、各テーブルは1つのプライマリキーのみを持つことができます
- 一意の制約:UNIQUE
- 一意性、このフィールドの値を繰り返すことはできません
- 空でない制約:NOT NULL
- フィールドがnull値にならないように制限します
- デフォルト値:DEFAULT
- テーブルにデータを追加する場合、フィールドのデータは指定されず、デフォルトで設定値が表示されます