天天看點

MySQL 常見的sql指令

注意事項: 

1、sql 使用單引号來環繞文本值(大部分資料庫系統也接受雙引号)。如果是數值,請不要使用引号。

一、資料庫

        1、建立資料庫

              CREATE DATABASE lesson ;

              建立一個名字為lesson的資料庫 

        2、删除資料庫

           drop database lesson ;

二:表

        1、建立表

           CREATE TABLE `mydb`.`it` (

            `id` INT NOT NULL,

            `name` VARCHAR(45) NULL,

            PRIMARY KEY (`id`)

          );

      在名字為mydb的資料庫中建立一個表,表的名字叫it.

      表中有兩個字段 : id  , name 。 其中主鍵為 id 

      2、删除表

         DROP TABLE `mydb`.`it`;

          資料庫名: mydb

        表名     : it 

     3、修改表的名字

        RENAME TABLE student TO user ;

        把student表的名字改為user

    4、複制表

        create table table2 select * from user ;

        通過複制user表,來建立一個新表table2

三:增加資料

     1、往表裡插入資料

             INSERT INTO `mydb`.`user` (`id`, `name`, `age`) VALUES ('2', 'lisid', '25');

             mydb : 資料庫名

             user  : 表名

             id ,name ,  age :代表三個字段

             VALUES  :字段對應的資料

四:删除資料

        1、條件删除(删除一行資料)

         DELETE FROM user WHERE  id=1  ; 

          删除id = 1 的所有資料  (删除id =1 的這一行)

 五、更新資料

          1、更新一個字段的值     

             UPDATE `mydb`.`user` SET `age`='22' WHERE `id`='1';

             資料名: mydb

             表名  : user

             字段  : age

             篩選條件 : id = 1 ;

             在mydb資料庫,user表中,把id = 1 的這一行的 age 屬性值修改為 22

         2、更新多個字段的值

              UPDATE `mydb`.`user` SET `name`='奶茶妹妹', `age`='18' WHERE `id`='2'; 

              在mydb資料庫,user表中,把id = 2 的這一行的 name屬性值修改為 奶茶妹妹 , age 屬性值修改為 22 

六:查詢資料

         1、查詢

              SELECT * FROM mydb.user;

           從mydb資料庫中查詢user表裡面的所有資料

        2、單屬性查詢

           SELECT name  FROM user ;

             從user表中查詢所有的name屬性值 

       3、多屬性查詢

            SELECT name , age  FROM user ;

           從user表中查詢所有的name 和 age 的屬性值 

      4、條件查詢 where

           SELECT name , age , id  FROM user where id = 2 ;

           從user表中查詢id等于2的所有name、age、id 的屬性值,注意id的類型是整型,是以2不用加單引号

         SELECT name , age , id  FROM user where name = 'tom' ;

         從user表中查詢 name 值等于‘tom’ 的所有name、age、id 的屬性值,注意name的類型是字元型,‘tom’加單引号

         SELECT * FROM `user` WHERE id > 5  ;

         從user表中查詢 id 值 大于 5 的所有name、age、id 的屬性值 

         所有的邏輯運算符都支援: 大于 >  、  小于 <  、 大于等于 >=  、 小于等于 <=  、 等于 =  、 不等  !=   (或者 <>) 

         SELECT * FROM `user` WHERE id BETWEEN 3 AND 8  ;

         user : 表名

         id    : 字段名

         between : 操作符   作用是選取介于兩個值之間的資料範圍 

         從user表中查詢 id值在3(包含3) 到 (包含8)之間的所有name、age、id 的屬性值 。 也就是 id 大于等于3, 小于等于8之間。

         SELECT * FROM `user` WHERE age in ( 12 , 18 )  ;

         age  : 字段名

         in    : 操作符   作用是為查詢條件規定多個值

         從user表中查詢出年齡為12歲和18歲的人所有資訊。 相當于并集。

     5、模糊查詢  like

          SELECT * FROM student WHERE phone LIKE '1825%'

         student : 表名

         phone   : 字段名 代表手機号

         LIKE     : 模糊查詢

         %        : 代表任意一個或多個字元 , 可比對任意類型和長度的字元。

         從student表中查出以1825開頭的手機号

          SELECT * FROM student WHERE phone LIKE '182%' AND `name` LIKE 'zhang%'   ;

         student : 表名

         name   :  字段名  代表名字

         從student表中查出以182開頭的手機号并且 名字是以zhang開頭的所有資訊

         SELECT * FROM student WHERE phone LIKE '1825110114_'

         _         :  代表一個字元

        從student表中查出以1825110114開頭的手機号

        SELECT * FROM student WHERE phone LIKE '%114%' ;

        student : 表名

       %        : 代表任意一個或多個字元 , 可比對任意類型和長度的字元。

         從student表中查出手機号包含114的所有資訊

       SELECT * FROM student WHERE phone LIKE '%114\%'  ;

       student : 表名

        phone   : 字段名 代表手機号

        LIKE     : 模糊查詢

        %        : 代表任意一個或多個字元 , 可比對任意類型和長度的字元。

        從student表中查出以114%結尾的手機号 , 第一個 % 代表通配符 , \% 代表% 字元,沒有通配符的功能

     6、數量限制查詢 limit 

        select * from user order by id limit 3 , 5 ;

         從user表中查詢 從3開始(包括3),數量為5 條資料。也就是3、4、5、6、7 條資料

         注意5代表的是查詢的數量

     7、單字段排序查詢   order by  

          * order by  語句用于根據指定的列對結果集進行排序。

        * order by  語句預設按照升序對記錄進行排序。

           select * from  mydb.`user` order by age ;

         mydb : 資料庫名

         user  : 表名

         age   : 排序字段

         從user表中查詢所有的資訊,查詢結果按照 age 字段排序。(預設升序)

         select * from  mydb.`user` order by age DESC ;  

         從user表中查詢所有的資訊,查詢結果按照 age 字段降序排序。

      8、多字段排序查詢   order by 

            select * from  mydb.`user` order by age DESC , `name` ;  

          mydb  :資料庫

          user   :表名

          age    :年齡

          name  :名字

          從user表中查詢所有的資訊,查詢結果按照 age 降序排序。如果年齡相同,就按照name,升序排序 。 

      9、求總 count()

         SELECT COUNT( name ) FROM `user`   ;

         name : 字段名,代表名字

         user  :  表名

         從user表中查詢 name 值得數目,不計 null 值。

         SELECT COUNT( * ) FROM `user` ;

         查詢user表中的記錄數

         SELECT COUNT( DISTINCT `name` ) FROM `user` ;

         查詢user表中name字段不同值的數目,相當于去重。

     10、求最大值 max() 和 最小值 min()

           *MIN 和 MAX 也可用于文本列,以獲得按字母順序排列的最高或最低值。

           SELECT MAX( id ) FROM `user` ;

         從user表中查詢 id 字段的最大值

         SELECT MIN( id ) FROM `user` ;

         從user表中查詢 id 字段的最小值

     11、求和 sum()  

          SELECT SUM( id ) FROM `user` ;

          id     : 字段名

          user : 表名

          查詢user表中 id 值的和

    12、求平均值  avg() 

         SELECT AVG( id ) FROM `user` ;

         id     : 字段名

         查詢user表中 id 值的平均數

     13、顯示所有資料庫

          SHOW DATABASES;

     14、顯示所有的表

         SHOW TABLES;

七:視圖

         1、視圖的基本概念

            http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559596.html

         2、建立一個視圖

              CREATE VIEW myview as SELECT * FROM mydb.`user` ;

            myview :視圖的名字

            mydb    :資料庫的名字

            user     :  表的名字

            查詢user表的所有資料,作為視圖myview的資料 

       3、删除視圖

          drop view myview ;

          myview : 視圖的名字