MySql基礎操作大全加案例01

【數據庫MySql】
作用:
    存數據
    譬如:
        1、你的開房記錄
        2、銀行卡信息
        3、身份證信息

    數據庫包括
        1、庫
        2、表
        3、字段
        4、數據行

【關係型數據庫和非關係型數據庫】

    關係型數據庫;
        MySQL
        Oracle
        SqlServer

    非關係型數據庫
        mongDB
        redis
【Sql分類】

    DDL
        create(創建) drop(刪除) alter(修改)
    DML
        insert(插入) update(修改) delete(刪除)
    DQL(重點)
        select

    DCL
        grant(授權) revoke(跟授權相反)

    DTL (事務)
        bengin(開始) commit(提交) rollback(回滾)


    如果你在輸入mysql -uroot -p 提示你不是內部命令的時候配置你的環境變量
    C:\wamp64\bin\mysql\mysql5.7.9\bin

【數據連接】
    第一種方式(推薦)
    msyql -uroot -p
    密碼:如果沒有密碼直接回車


    退出
        quit

    第二種進入數據庫的方式

    mysql -uroot -pkungezuishuai 不推薦使用

    第三種方式
    mysql -hlocalhost -uroot -p

    清空dos命令
    cls

    \h 幫助命令

    \g 執行當前命令 直接分號一樣

    \c 結束當前的命令

    【查看數據庫】
        show databases

    【創建庫】
        create database 庫名
    【刪除庫】
        drop database 庫名
    【查看你當前所在的庫】
        select database();

    創建表之前一定要選擇庫
    【查看當前庫下面有哪些表】
    show tables;
    【創建表】   
    create table 表名(字段1 類型(長度) , 字段2 類型(長度)...........)
    【刪除表】
    dorp table 表名
    【查看錶結構】
    desc 表名
    【查看建表語句】
    show create table 表名
    【修改表字段的值】
    alter table 表名 modify 字段(長度)
    【修改表字段】
    alter table 表名 change 你的表的原來的字段 你要修改成爲的字段名 類型(長度)
    【刪除表字段】
    alter table 表名 drop 你要刪除的字段
    【插入新的字段】
    alter table 表名 add 你要添加的字段
    【插入字段順序的問題】
    after 在誰誰之後插入
    alert table 表名 add 你要插入的字段 類型(長度) after 在哪個字段後面

    first 插入最前面
    alert table 表名 add 你要插入的字段 類型(長度) first


    【修改表名字】
    alter table 原來的表名字 rename 新的表名字
    【修改表字段順序】
    alter table 表名 modify 原來的字段 first 或者 after 在哪個字段後面

    【數據類型】

        整型
            tinyint
            int

        浮點類型
            float(m, d)
            double(m, d)

        字符串類型 (重點)
            text

            char 定長
            varchar 不定長
        面試題常考

    數據庫裏面一般就存時間戳 時間戳 就是整型的數字  int 就可以

    【索引】
        1、主鍵名索引
            alter table 表名 add primary key(你要給哪個字段添加)

        2、唯一索引
            alter table 表名 add unique(你要給哪個字段添加)

        3、普通索引
            alter tale 表名 add index(你要給哪個字段添加);

        4、全文索引 整型不能用
            alert table 表名 add fulltext(你要給哪個字段添加);

    【插入數據】

        第一種插入數據的方式

            insert into 表名 values(值1,值2,值3........)
            insert into bbs_user values(2,'程冠希',123,1,0,1234,1231231,260,'河南');
        第二種插入數據的方式(推薦使用)
            insert into 表名 (字段1 , 字段2 , 字段3 。。。。) values(值1,值2,值3.。。。。)
            mysql> insert into bbs_user(username,password,province,price) values('謝霆鋒','123456','香港',300);

        第三種插入方式(多條數據插入。批量插入數據)
            insert into 表名(字段1,字段2,字段3.。。。。) values(值1,值2,值3.。。。),(值1,值2,值3.。。。),(值1,值2,值3.。。。)......
            mysql> insert into bbs_user(username , password , price , province) values('張柏芝','456',500 , '澳門'),('鍾欣桐','6666',100,'香港'),('候飛洋','3333',1,'北京');

             AUTO_INCREMENT  如果你設置了自動增長,每次會在原來的基礎上加1

             默認值:如果你設置了默認值,你插入數據的時候沒有填值,會用的你 默認值 你填了用你的值

    【刪除數據】   
        注意:你在做刪除操作的時候謹慎在謹慎,一般情況下不刪除數據,一般做僞刪除(假刪除)-》修改  

        刪除的時候一定要加上條件,測試你的sql語句確定沒有問題再刪除

        delete from 表名 where 條件

        mysql> delete from bbs_user where price>1 and price <500;
        Query OK, 7 rows affected (0.01 sec)

        mysql> select * from bbs_user;
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        | id | username  | password | sex  | status | ctime | rip  | price | province |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        |  4 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        |  6 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        |  7 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        |  9 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 10 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        | 12 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 13 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        | 15 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 16 | 張柏芝    | 456      | NULL |      1 |  NULL | NULL |   500 | 澳門     |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
    【修改數據】
        update set 表名 原來的字段 = 你想要的值 where 條件

        注意:條件一定要加上

        mysql> update bbs_user set price = 600 where id = 10;
        Query OK, 1 row affected (0.00 sec)
        Rows matched: 1  Changed: 1  Warnings: 0

        mysql> select * from bbs_user;
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        | id | username  | password | sex  | status | ctime | rip  | price | province |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        |  4 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        |  6 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        |  7 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        |  9 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 10 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   600 | 澳門     |
        | 12 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 13 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        | 15 | 候飛洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 16 | 張柏芝    | 456      | NULL |      1 |  NULL | NULL |   500 | 澳門     |
        +----+-----------+----------+------+--------+-------+------+-------+----------+

    【重點中的重點】--查詢

        * 號一般情況不用  在工作當做或者開發過程中 如果你想用什麼數據就查詢某個特指的字段

        1、根據你特指的某一個字段去進行查詢
        select 字段1,字段2,字段3 from 表名
        mysql> select username,sex,status from bbs_user;
        +-----------+------+--------+
        | username  | sex  | status |
        +-----------+------+--------+
        | 張柏芝    | NULL |      0 |
        | 候飛洋    | NULL |      0 |
        | 張柏芝    | NULL |      0 |
        | 候飛洋    | NULL |      0 |
        | 張柏芝    | NULL |      0 |
        | 候飛洋    | NULL |      0 |
        | 張柏芝    | NULL |      0 |
        | 候飛洋    | NULL |      0 |
        | 張柏芝    | NULL |      1 |
        +-----------+------+--------+
        2、去除重複值的查詢方式
            select distinct(你要去重的哪一個字段) from 表名
            mysql> select distinct(username) from bbs_user;
            +-----------+
            | username  |
            +-----------+
            | 程冠希    |
            | 謝霆鋒    |
            | 張柏芝    |
            | 鍾欣桐    |
            | 候飛洋    |
            +-----------+
            5 rows in set (0.00 sec)

        3、配合where條件來使用
        select 字段1,字段2,字段3 from 表名 where 條件

        mysql> select * from bbs_user where price >300;
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        | id | username  | password | sex  | status | ctime | rip  | price | province |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        |  4 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        |  7 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        | 10 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        | 13 | 張柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳門     |
        | 16 | 張柏芝    | 456      | NULL |      1 |  NULL | NULL |   500 | 澳門     |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        5 rows in set (0.00 sec)

        4、查詢在什麼什麼區間分爲之內 between and

        select * from 表名
        mysql> select username , age from bbs_user where age between 20 and 30;
        +-----------+------+
        | username  | age  |
        +-----------+------+
        | 程冠希    |   30 |
        | 張柏芝    |   20 |
        | 鍾欣桐    |   23 |
        | 鍾欣桐    |   30 |
        | 候飛洋    |   23 |
        +-----------+------+
        5、查詢配合or的用法
        mysql> select 字段1 , 字段2.。。 from 表名 where 條件1>500 or 條件2 > 30;
        +-----------+-------+
        mysql> select username , price from bbs_user where price>500 or age > 30;
        +-----------+-------+
        | username  | price |
        +-----------+-------+
        | 張柏芝    |   550 |
        | 鍾欣桐    |   100 |
        | 候飛洋    |   400 |
        | 候飛洋    |   444 |
        | 張柏芝    |   500 |
        | 張柏芝    |   119 |
        +-----------+-------+
        6、不等於
        mysql> select count(*) username from bbs_user where age != 23;
            +----------+
            | username |
            +----------+             ||
            |       14 |
            +----------+
            mysql> select count(*) username from bbs_user where age <> 23;
            +----------+
            | username |
            +----------+
            |       14 |
            +----------+
        7、在什麼什麼裏面查詢 (通過in可以做嵌套查詢 一會再說????)

        mysql> select username , age from bbs_user where age in(30,23);
        +-----------+------+
        | username  | age  |
        +-----------+------+
        | 程冠希    |   30 |
        | 鍾欣桐    |   23 |
        | 鍾欣桐    |   30 |
        | 候飛洋    |   23 |
        +-----------+------+
        4 rows in set (0.00 sec)

        8、模糊查詢 like    like 什麼情況下使用索引 ???

        select * from 表名 where 字段 like ‘%’
        mysql> select * from bbs_user where province like '河%';
    +----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
    | id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
    +----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
    |  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
    |  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
    |  9 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   444 | 河北      |   44 |
    +----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
    3 rows in set (0.00 sec)
        mysql> select * from bbs_user where province like '%南%';
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
2 rows in set (0.00 sec)
mysql> select * from bbs_user where province like '_南';
+----+-----------+----------+------+--------+-------+---------+-------+----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province | age  |
+----+-----------+----------+------+--------+-------+---------+-------+----------+------+
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南     |   10 |
+----+-----------+----------+------+--------+-------+---------+-------+----------+------+
1 row in set (0.00 sec)
mysql> select * from bbs_user where province like '_南_';
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
1 row in set (0.00 sec)
        9、配合and使用  
        mysql> select * from bbs_user where price > 200 and price <300;
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
2 rows in set (0.00 sec)

        or ||
        and &&

        like什麼情況下使用索引???

        10、排序 升序
        select * from 表名 order by(字段) (如果說你後面什麼都不加的情況下默認是升序)
         ||
        select * from 表名 order by (字段) asc;
        mysql> select * from bbs_user order by age asc;
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  3 | 謝霆鋒    | 123456   | NULL |      0 |  NULL |    NULL |   300 | 香港      |    1 |
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
| 13 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳門      |   12 |
| 14 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   18 |
| 15 | 候飛洋    | 3333     | NULL |      1 |  NULL |    NULL |   110 | 北京      |   19 |
|  7 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 深圳      |   20 |
|  8 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   23 |
| 12 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   120 | 北京      |   23 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
| 11 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   30 |
| 16 | 張柏芝    | 456      | NULL |      1 |  NULL |    NULL |   119 | 澳門      |   33 |
|  4 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   550 | 澳門      |   40 |
|  9 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   444 | 河北      |   44 |
|  5 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   50 |
| 10 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳門      |   56 |
|  6 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   400 | 北京      |  100 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+

    11、降序
        select * from 表名 order by(字段) desc
         mysql> select * from bbs_user order by(age) desc;
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  6 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   400 | 北京      |  100 |
| 10 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳門      |   56 |
|  5 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   50 |
|  9 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   444 | 河北      |   44 |
|  4 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   550 | 澳門      |   40 |
| 16 | 張柏芝    | 456      | NULL |      1 |  NULL |    NULL |   119 | 澳門      |   33 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
| 11 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   30 |
|  8 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   23 |
| 12 | 候飛洋    | 3333     | NULL |      0 |  NULL |    NULL |   120 | 北京      |   23 |
|  7 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 深圳      |   20 |
| 15 | 候飛洋    | 3333     | NULL |      1 |  NULL |    NULL |   110 | 北京      |   19 |
| 14 | 鍾欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   18 |
| 13 | 張柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳門      |   12 |
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
|  3 | 謝霆鋒    | 123456   | NULL |      0 |  NULL |    NULL |   300 | 香港      |    1 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
16 rows in set (0.00 sec)

    12、取出來幾條數據

    select 字段1,字段2.。。 from 表名 limit 05  這是5叫做偏移量

    //只有通過它纔可以實現分頁

    第一頁

        select * from 表名 limit 0,5;

    第二頁
        select * from 表名 limit 55、
    第三頁
        105
    第四頁
        155

        $limit = (n-1*偏移量 , 5

        select * from bbs_user limit $limit;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章