mysql-基礎操作(一)
6241 ワード
1、データベース管理1、接続データベースmysql-u root-p 2、すべてのデータベースshow databasesを表示します. 3、データベースcreate database xiaocai default character set utf 8を作成します.--デフォルトの文字セットを指定してデータベースを作成する 4、データベース文字セットshow create database xiaocaiを表示する. 5、データベースdrop database xiaocaiを削除する. 6、データベース文字セットalter database xiaocai default character set gbkを修正する. 7、あるデータベースuse xiaocaiを使用する. 8、データベース内のすべてのテーブルshow tablesを表示します. 9、テーブルcreate table student(id int、name varchar(20)、age int)の作成; 10、表構造desc studentを表示する. 11、テーブルdrop table studentを削除する. 12、フィールドalter table student add column gender varchar(2)を追加する. 13、フィールドalter table student drop column genderを削除する. 14、フィールドタイプalter table student modify column name varchar(100)を変更する. 15、フィールド名alter table student change column name nickname varchar(10)を変更する. 16、表名alter table student rename to userを変更する.
2、添削1、挿入データinsert into student values(1,'xiaocai',25);フィールドinsert into student(id,name)values(2,'xiaobai');指定データ を挿入する.2、修正データupdate student set age=21;全体的にupdate student set age=25 where id=1を変更します.--条件修正update student set age=22、name='xiaobaicai'where id=2;複数のフィールド を変更3、データdelete from studentを削除します.--delete from student where id=2を全体的に削除します.--条件削除
truncate table student; -- 全体削除1)条件付きで削除できない2)つまりテーブルのデータを削除できる、テーブルの制約を削除できる3)truncate tableで削除したデータをロールバックできないdeleteとは異なる:delete from:全テーブル削除可能1)条件付きで削除できる2)テーブルのデータのみを削除でき、テーブルの制約を削除できない3)delete fromで削除したデータをロールバックできる(トランザクション)
3、調べる1、テーブル全体のselect*from studentをクエリーします. 2、クエリー指定列select id、name from student;idとnameのフィールド のみ必要 3、クエリー時に「定数列」 を追加4、クエリー時の連結カラム(連結カラムは数値タイプのフィールドのみを連結) 5、問合せ時に重複項目を除去
select distinct (age) from student; -- 同じだ
3、複雑なクエリー と問い合わせ:and(と)or(または)SELECT*FROM student WHERE id=2 AND NAME='xiaobai';
数値サイズクエリー 判空条件 is null is not null ='' <>'' SELECT * FROM student WHERE NAME IS NULL; SELECT * FROM student WHERE NAME IS NULL OR NAME = '';
ファジイクエリlike %:任意の文字を表す _ : 1文字 を表す
SELECT*FROM student WHERE NAME LIKE'小%';すべてのnameが「小」で始まる 集約クエリー(集約関数を使用したクエリー) sum()合計 avg()平均 max()最大 min()最小 count()関数統計の数nullを含まないデータ SELECT SUM(age)AS'年齢の和'FROM student;SELECT MIN(age)AS'最小年齢'FROM student;SELECT AVG(age)AS'平均年齢'FROM student;SELECT COUNT(NAME)AS'すべての学生nameが空でない個数(NULLでもよい)'FROM student; ページングクエリ『limit開始行、クエリ数行』 開始行0から始まる'(現在のページ-1)*各ページに何個表示するか' ページング:各ページに表示される の数
SELECT*FROM student LIMIT(現在のページ-1)*各ページに何件表示され、各ページに何件表示されますか.例えば、1ページあたりのクエリ数は3であり、1ページ目のSELECT*FROM student LIMIT 0,3をクエリする. クエリーソート(order by) asc:シーケンス、シーケンス.数値:増分、アルファベット:自然順序(a-z) desc:逆シーケンス、逆シーケンス.数値:減算、アルファベット:自然逆シーケンス(z-a) SELECT * FROM student ORDER BY age DESC; -- 年齢逆転検索『年齢逆転、年齢が同じ場合id逆転』ソートSELECT*FROM student ORDER BY age DESC、id DESC; パケットクエリ(groupby) グループを分けて学生の年齢を調べ、もう1行を加えて各年齢の人数SELECT age AS'年齢'を表示し、COUNT(*)FROM student GROUP BY age; パケットクエリー後のフィルタリングパケットクエリー学生の年齢と同じ年齢の個数をクエリーし、年齢が22より大きい SELECT age,COUNT(age)AS'同年齢個数'FROM student GROUP BY age HAVING age>22; havingは一般にgroupbyの後について、記録グループ選択の一部を実行して動作する. whereは、すべてのデータを実行して動作します.
2、添削
truncate table student; -- 全体削除1)条件付きで削除できない2)つまりテーブルのデータを削除できる、テーブルの制約を削除できる3)truncate tableで削除したデータをロールバックできないdeleteとは異なる:delete from:全テーブル削除可能1)条件付きで削除できる2)テーブルのデータのみを削除でき、テーブルの制約を削除できない3)delete fromで削除したデータをロールバックできる(トランザクション)
3、調べる
mysql> select id,name,'hello' from student;
+------+---------+-------+
| id | name | hello |
+------+---------+-------+
| 1 | xiaocai | hello |
| 1 | xiaobai | hello |
+------+---------+-------+
mysql> select * from student;
+------+---------+------+------+---------+
| id | name | age | math | english |
+------+---------+------+------+---------+
| 1 | xiaocai | 25 | 88 | 60 |
| 2 | baicai | 21 | 10 | 20 |
+------+---------+------+------+---------+
2 rows in set (0.00 sec)
mysql> select id,name,(math+english) as 'sum' from student;
+------+---------+------+
| id | name | sum |
+------+---------+------+
| 1 | xiaocai | 148 |
| 2 | baicai | 30 |
+------+---------+------+
mysql> select * from student;
+------+----------+------+------+---------+
| id | name | age | math | english |
+------+----------+------+------+---------+
| 1 | xiaocai | 25 | 88 | 60 |
| 2 | baicai | 21 | 10 | 20 |
| 3 | qingcai | 21 | 66 | 77 |
| 3 | dabaicai | 21 | 44 | 87 |
+------+----------+------+------+---------+
4 rows in set (0.00 sec)
mysql> select distinct age from student;
+------+
| age |
+------+
| 25 |
| 21 |
+------+
select distinct (age) from student; -- 同じだ
3、複雑なクエリー
> < >= <= = <>( ) between and ( >= <=)
SELECT * FROM student WHERE age >23; SELECT * FROM student WHERE age >22 AND age <26; SELECT * FROM student WHERE age BETWEEN 23 AND 26; SELECT * FROM student WHERE NAME <> 'xiaocai'; SELECT*FROM student WHERE NAME LIKE'小%';すべてのnameが「小」で始まる
id name age
5 25
7 25
SELECT*FROM student WHERE NAME LIKE'_を検索おかずすべてのnameが「任意の字の後に料理の字が続く」id name age
5 25
6 26
であることを検索します.SELECT*FROM student LIMIT(現在のページ-1)*各ページに何件表示され、各ページに何件表示されますか.例えば、1ページあたりのクエリ数は3であり、1ページ目のSELECT*FROM student LIMIT 0,3をクエリする.
id name age
1 xiaocai 25
2 xiaobai 21
3 33
ページあたりのクエリー数は3で、2ページ目のSELECT*FROM student LIMIT 3,3をクエリーします.id name age
4 41
5 25
6 26
id name age
4 41
3 33
6 26
7 25
5 25
1 xiaocai 25
2 xiaobai 21
count(*)
21 1
25 3
26 1
33 1
41 1
age
25 3
26 1
33 1
41 1