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、クエリー時に「定数列」
  • を追加
    mysql> select id,name,'hello' from student;
    +------+---------+-------+
    | id   | name    | hello |
    +------+---------+-------+
    |    1 | xiaocai | hello |
    |    1 | xiaobai | hello |
    +------+---------+-------+
    
  • 4、クエリー時の連結カラム(連結カラムは数値タイプのフィールドのみを連結)
  • 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 |
    +------+---------+------+
    
  • 5、問合せ時に重複項目を除去
  • 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、複雑なクエリー
  • と問い合わせ:and(と)or(または)SELECT*FROM student WHERE id=2 AND NAME='xiaobai';

  • 数値サイズクエリー
  • >   <   >=  <=  =  <>(   )     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';
  • 判空条件
  • 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が「小」で始まる
    id    name    age
    5     25
    7     25
    
    SELECT*FROM student WHERE NAME LIKE'_を検索おかずすべてのnameが「任意の字の後に料理の字が続く」
    id  name    age  
    5       25   
    6       26   
    
    であることを検索します.
  • 集約クエリー(集約関数を使用したクエリー)
  • 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をクエリする.
    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   
    
  • クエリーソート(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;
    id  name     age  
    4            41   
    3            33   
    6        26   
    7        25   
    5        25   
    1   xiaocai  25   
    2   xiaobai  21   
    
  • パケットクエリ(groupby)
  • グループを分けて学生の年齢を調べ、もう1行を加えて各年齢の人数SELECT age AS'年齢'を表示し、COUNT(*)FROM student GROUP BY age;
        count(*)  
    21      1         
    25      3         
    26      1         
    33      1         
    41      1         
    
  • パケットクエリー後のフィルタリングパケットクエリー学生の年齢と同じ年齢の個数をクエリーし、年齢が22より大きい
  • SELECT age,COUNT(age)AS'同年齢個数'FROM student GROUP BY age HAVING age>22;
    age          
    25   3                   
    26   1                   
    33   1                   
    41   1                   
    
  • havingは一般にgroupbyの後について、記録グループ選択の一部を実行して動作する.
  • whereは、すべてのデータを実行して動作します.