20200813-mysqlデータベースクエリ

20200813-mysqlデータベースクエリ

1.テーブルデータを削除する

(where条件なしで削除)
自動インクリメント現在の値は引き続き元の状態で実行され
(テーブルテーブル名を切り捨て)、
すべてのテーブルが削除され、自動インクリメントは初期値に復元されて再起動します

2.データベースサービスを再起動した後、(net mysqlを停止/開始)

ENGINE = INNODBとENGINE = MYISAMの違い
です。INNODB
テーブルの場合、自動インクリメント列は初期値から始まります。MYISAMテーブルの場合、自動インクリメントは、以前の自動インクリメントデータに基づいてまだ重いです
。INNODBデータはメモリに格納されます、MYISAMはファイルに保存される
ため、再起動後にメモリ内のデータは消去されますが、ファイル内のデータは消去されません

3. DQLデータクエリステートメント(使用頻度が高い、複雑な構文、複数の関数)

ユーザー名とパスワードに基づいて、ユーザーがデータベースに存在するかどうかを照会します。
コア構文:select * from table name;
*表しますすべての列の照会を表します(低効率)
#query指定された列(学生番号名)
// SELECT列名、列名からの表名;

#为查询的列或表取别名
// SELECT 列名 别名,列名 别名 from 表名 别名;

#select不会修改原表里面的列名,update修改的是原表的内容
select只会修改呈现给用户的信息。


#as as、クエリ結果の新しい名前を取得SELECT CONCAT( 'name:'、studentname)AS new name FROM student;

#查看哪些同学参加了考试(学号)--去除重复,项默认是ALL
//select distinct studentno from result;(所有行都出来了)
·distinct 去掉重复项;

#select查询中可以使用表达式
//select version();
//select 100*3 as 计算结果;

#学员考试成绩集体提升1分
//select studentno,studentresult+1 as 提分后 from student
#满足条件的查询(where) 模糊查询
//select studentno,studentresult
 form result

ここで、studentresult> = 95およびstudentresult <= 100;

#精确查询
//select studentno,studentresult
 form result

ここで、studentno = 1000;

#除了1000号同学,我要其他同学的考试成绩
//select studentno,studentresult
 form result

ここで、studentno!= 1000;

#模糊查询 between and\ like \ in \ null
 #查询姓李的同学的学号、姓名

#組み合わせで使用するのと同じように:%(0から任意の数の文字)_(1文字)
//
生徒の生徒名を選択します



学生番号とLiの姓の学生の名前を照会ます(名前に単語が1つしかない)// 学生から学生番号、学生名を選択します

#查询姓李的同学的学号、姓名(名字中只有两个字)

//
学生
名を '李_ _'のようにする学生から、studentno、studentname 選択します

#查询含有'文'的同学的学号、姓名(名字中只有两个字)

//
学生
名を '%文%'とする学生から、studentno、studentname 選択します; //多くのアプリケーション

#生徒の名前に%_を含む生徒の名前をクエリ
ます。エスケープ文字が必要です
。//
生徒の生徒選択します生徒
'%%%'のようになります。

//
学生
名を '%_%'のようにする学生から、studentno、studentname 選択します

//
学生からStudentno、studentname 選択します。
'%:_%'のようなStudentnameは ':'をエスケープします。


#Fuzzy クエリまたは同じ関数// select studentno、studentresult
フォームの結果
where in(1000,1002,1003,1004 );
乱数を生成
// select * from student
where studentno in(select round(rand()* 2 + 1011));

// studentno、studentresult
フォームの結果を選択しますwhere where
( 'Beijing'、 'Nanjing'、 'Suzhou'、 ' Yangzhou ');

#null空


生年月日が(またはでない)= nullの
学生をクエリます= nullこの記述は間違っています//
生年月日が(ない)nullである学生から生徒名を選択します

#区别字符串与null


自宅の住所が書かれていない学生のクエリ//
アドレス= ''または住所がnullの学生から学生名を選択;

#连接クエリ
#内部結合内部結合:2つのテーブルのクエリ結果の共通部分をクエリします
外部結合外部結合:
#左と右結合左/右結合
・左結合:左テーブルをベンチマークとして使用し、右テーブルを1つずつ一致させます。上記
は、左のテーブルのレコードを返し、右のテーブルはnullで埋められます
・右結合:右のテーブルがベンチマークとして使用され、左のテーブルが1つずつ照合され
、右のテーブルのレコードが返され、左のテーブルはnullで埋められます

#自连接#
同等の接続非同等の接続

#試験に参加した学生の情報を照会し
ますselect * from student;
select * from result;
#Thinking:
(1)Analyzing the column that can be Inserted the column from the two tables student、result、join the query
(2)define the one one to useクエリを接続しますか?-内连接
#内
联// select student.studentno、studentname、subjectno、subjctresult
form student as s- 最初のテーブルの
内部結合の結果はrとして
--2 番目のテーブルのs.StudentNo = r.StudentNo --twoテーブル間の主キーと外部キーの関係

#左连
//選択student.studentno、studentname、subjectno、subjctresultの
形態学生sと--reference テーブルは
Rとして結果を結合左
s.StudentNo = r.StudentNoに
studentresultがヌルである(右表の空の部分をチェックアウト)
[注の順序を変更することはできません]
#Equivalentに他なら
//ケースフィールド
とき値
、操作
そう動作終了

#右
连// select student.studentno、studentname、subjectno、subjctresult
form Student as s
right join result as r-基標準表
on s.StudentNo = r.StudentNo


同等の接続は内部接続と同等です// select student.studentno、studentname、subjectno、subjctresult
form student、result
where s.StudentNo = r.StudentNo

#非等值连接 左表m行,右表n行

合計m * n行を返す

#union :联合并去重

union all:ユニオンは重複排除しません

おすすめ

転載: blog.csdn.net/qq_42005540/article/details/107983524