1.学生テーブルを作成する
1.MySQL に入る
WIN + R コマンド入力
mysql -u root -p と入力します
パスワードを入力してmysqlに入ります
2.
表示データベースに入ります。
既存のデータベースを照会する
データベースを選択
データベース名を使用
学生テーブルを作成する
create table stu(
id int ,-- 数値
名前 varchar(10),-- 名前
性別 char(1),-- 性別
誕生日 日付,-- 誕生日
スコア double(5,2),-- スコア
メール varchar(64) ,-- メールボックス
tel varchar(20),-- 携帯電話番号
ステータス tinyint-- status
);
2.クエリ機能を実現する
1.すべてのデータをクエリする
stu から * を選択します。
2. 指定された列にデータを追加します。 INSERT INTO テーブル名 (列名 1、列名 2、...) VALUES (値 1、値 2、...);
INSERT INTO stu (id, NAME)
VALUES
(1, 'Zhang San');
3. データの変更 UPDATE テーブル名 SET カラム名 1=値 1, カラム名 2=値 2,... [WHERE 条件]
-- 馬の性別を女性に変更
update stu set sex = 'female' where name = '馬運';
-- Zhang San の誕生日を 1999-12-12 に変更し、数学の点数を 99.99 に変更します。
update stu set Hire_date = '1999-12-12', math = '99.99' where name = '马运';
-- 注: update ステートメントが where 条件を追加しない場合、テーブル内のすべてのデータが変更されます。
4. データ削除 DELETE FROM テーブル名 [WHERE 条件];
-- 張三の記録を削除
stu where name = 'Zhang San' から削除します。
4. 条件クエリ
-- 1. 20 歳以上の学生の情報を照会する
select * from stu where age > 20;
-- 2. 年齢が 20 歳以上の学生の情報を照会する
select * from stu where age >=20;
-- 3. 年齢が 20 歳以上で 30 歳以下の学生の情報を照会する
select * from stu where age > =20 && age <=30;
select * from stu where age > =20 and age <=30;
select * from stu where age between 20 and 30;
-- 4. 入学日が '1998-09-01' から '1999-09-01' の間の学生情報をクエリします。
select *from stu where Hire_date between '1998-09-01' と '1999-09-01';
-- 5. 年齢が 20 歳の学生の情報を照会する
select * from stu where age = 20;
-- 6. 年齢が 20 歳以上の学生の情報を照会する
select *from stu where age != 20;
select * from stu where age <> 20;
-- 7. 年齢が 20 歳、22 歳、または 55 歳の学生の情報をクエリします。
select *from stu where age = 20 or age = 22 or age =55;
select * from stu where age in (20,22,55);
-- 8. 英語の点数が null の生徒の情報を問い合わせる
-- 注意: = != は null 値の比較には使用できません。使用する必要はありません
select * from stu where english = null; -- いいえ
select * from stu where English is null;
select * from stu where English is null;
5.ファジークエリ
-- ======================
/*
ワイルドカード:
(1)_: 単一の任意の文字を表す
(2)%: 任意の数の文字を表す
* /
-- 1. 姓が「馬」の学生情報を問い合わせる
select * from stu where name like '马%';
-- 2. 2文字目が「花」の生徒の情報を問い合わせる
select * from stu where name like '_Flower%';
-- 3. 名前に「德」が含まれる学生の情報を問い合わせる
select * from stu where name like '%德%';
6. クエリの並べ替え
並べ替えクエリ:
* 構文: SELECT フィールド リスト FROM テーブル名 ORDER BY 並べ替えフィールド名 1 [並べ替え方法 1]、並べ替えフィールド名 2 [並べ替え方法 2] ...; * 並べ替え方法: * ASC: 昇順 (既定
値
)
* DESC : 降順ソート
-- 1. 年齢の昇順で並べ替えられた学生情報のクエリ
select *from stu 年齢順;
-- 2. 生徒の情報を照会し、数学の点数の高い順に並べ替えます
select *from stu order by age desc;
-- 3. 学生情報を照会し、数学の点数が高い順に並べ替え、数学の点数が同じ場合は英語の点数が高い順に並べ替える
select *from stu order by math desc,english asc;
7. グループ化機能
SELECT フィールド一覧 FROM テーブル名 [WHERE グループ前条件限定] GROUP BY グループフィールド名 [HAVING グループ後条件フィルター]…;
-- 1. 男子学生と女子学生の数学の平均点を問い合わせる
性別による stu グループから sex,avg(math) を選択します。
注: グループ化後、クエリされるフィールドは集計関数とグループ化関数のみであり、他のフィールドをクエリしても意味がありません
-- 2. 男子学生と女子学生の数学の平均点と、それぞれの数値をクエリします。
stu グループから性別、平均 (数学)、カウント (*) を選択します。
-- 3. 男子学生と女子学生の数学の平均点とそれぞれの数値を問い合わせる 要件: 数学の点数が 70 点未満の学生はグループに参加しない
stu から性別、平均 (数学)、カウント (*) を選択します。
-- 4. 男子学生と女子学生の数学の平均点とそれぞれの数を照会する. 要件: 数学の点数が 70 点未満の学生はグループに参加せず、グループ化後の人数が 1 人を超える. .
select sex,avg(math),count(*) from stu where math > 70 group by sex with count(*) > 1 ;
8. ページング クエリ:
SELECT フィールド リスト FROM テーブル名 LIMIT 開始インデックス、クエリ エントリ数
* 開始インデックス: 0 から開始
-- 1. クエリを 0 から開始し、3 つのデータをクエリする
stu limit 0,3 から * を選択します。
-- 2. 1 ページあたり 3 つのデータを表示し、最初のページのデータをクエリします。
stu limit 0,3 から * を選択します。
-- 3. 1 ページあたり 3 つのデータを表示し、2 ページ目のデータをクエリします。
stu limit 3,3 から * を選択します。
-- 4. 1 ページに 3 つのデータを表示し、3 ページ目のデータをクエリします。
stu limit 6,3 から * を選択します。
-- 開始インデックス = (現在のページ番号 - 1) * 各ページに表示されるアイテムの数