1. 程式人生 > >MySQL的基本使用(庫,表,資料的操作)

MySQL的基本使用(庫,表,資料的操作)

開啟MySQL:

windows中啟動服務

         net start mysql

       關閉: net stop mysql

.linux啟動服務,  預設開啟的

         service  mysql start

       關閉:    service  mysql stop

檢視資料庫版本:select version();

檢視當前時間: select now();

退出exit 或者 quit

庫的操作:

    1.展示所有的資料庫

        show databases; 

        展示所有的已經存在的資料庫

         mysql預設會有管理自己的庫,表,使用者,配置的資料庫

2.建立一個庫:

語法:create database 資料庫名  charset="utf8";

例子:create database class charset=”utf8”;

       3.刪除一個數據庫

       格式:  drop  database  資料庫名;

       例: drop  database  class

;

4.改資料庫(不建議修改資料庫名字)

5.使用某個庫:use 資料庫名

6.檢視當前使用的資料庫; select  database();

表的操作:

1.查詢當前庫中的所有的表:show tables;

2.建立一個表:

格式: create table 表名(欄位名 欄位描述,欄位名n  欄位描述,.....);

例子: create table student(id int primary key auto_increment,name varchar(20)  not null,age int default 17,address varchar(20),sex bit default 1);

3.查看錶的結構:              

1.格式: desc 表名;

      2.格式2:  show create table 表名;  檢視建立表的sql語句

4. 刪除一個表

      格式: drop table 表名;

       例: drop table  student;

5.修改表:

       1.修改表名

         格式1:  rename table 舊錶名  to 新表名;

             

              2.修改表結構

                   格式: alter table 表名  add  |  drop  |  change 

                            1.新增一個新的欄位

                                格式: alter table 表名  add 欄位名 欄位描述;

                               例: alter table people add phonenumber  varchar(20);

2.修改一個欄位

                 格式: alter table 表名  change 要修改的欄位名 新的欄位名  新的欄位型別描述;

例: alter table student change phonenumber  phone  varchar(20);

**3.開發過程中儘量的不要修改已經有資料的欄位 ,

           設計表的時候儘量設計一些預留欄位

3.刪除一個欄位

            格式: alter table 表名  drop 欄位名;

            例: alter table people drop phone;

資料的操作:

      1.增加資料:

              1.插入一條資料:

              格式: insert into 表名  values(對應的值1,對應的值2,對應的值n)

        例: insert into people values(0,"零零一",38,"平壤",1);

        注意:插入的值要與表對應欄位一一對應

        如果是自動增長的資料型別,將該值設定為 0即會自動的增長

2. 預設值插入

           格式: insert into 表名(欄位1,欄位2,欄位n,...) values(欄位1對應的值,欄位2對應的值,欄位n對應的值,....);

          例:  insert into people(name,age,sex) values("三棒子",74,0);

3. 插入多條資料

               格式:   insert into 表名  values(對應的值1,對應的值2,對應的值n),(對應的值1,對應的值2,對應的值n) ,(對應的值1,對應的值2,對應的值n)  ....; 

                    例: insert into people values(0,"零零三",66,"北京",1),(0,"零零四",55,"北京",1),(0,"零零女",67,"中南海",0),(0,"零零六",78,"北京",1),(0,"零零七",15,"東京",1);

2.刪除資料

        格式:  delete from 表名  where 條件

          例1: delete from people where id =2;

           delete from people where name ='三棒子';

          注意:刪除一條資料後,該資料後的資料對應的id不會變

3.修改資料

         格式: update 表名 set 欄位名 = 值1,欄位名2 = 值2  where 條件

       例2:  update  student set name = '金三胖胖', address = '中國' where id =1;

       4.查詢資料庫表中的所有資料:select * from 表名;

       5.查詢語句:

              1.格式1:  select 欄位名1,欄位名n,....  from 表名  where 查詢條件

       格式2:  select 欄位名1 as 別名,欄位名n,....  from 表名  where 查詢條件

* 表示顯示所有欄位的資料   

from 後面是表名,表示從那個表中查詢

where 條件  表示以某個條件進行篩選

如果沒有where條件,表示查詢所有

欄位名1 as 別名   可以給顯示的欄位名取個別名,方便檢視

 

查詢條件:

  1. 比較運算子

>   大於

 <   小於

 >=  大於等於

 <=   小於等於

 =    等於

 !=   不等於

例:查詢大於60歲的人

select *  from people where age > 60;

例:查詢不等於55歲的人

        select *  from student where age != 55;

2.邏輯運算子

             且   and

             或   or 

             非   not

              例:查詢大於55歲且小於70歲的人

              select * from people where age>55 and age < 70;

      

              例:查詢除了北京的人

          select * from people where not address = '北京';

3.模糊運算子

         格式:  ..... where 欄位名  like  '字串'

                    任意字元: % 任意多個任意字元

                           _ 一個任意字元

         

       例:查詢姓大的人

              select * from people where name  like '大%';

4.範圍運算子

           成員運算子

          格式1:  .... where 欄位名  in  (值1,值2,值3)

            是否等於 () 中的某一個值

              格式2:   ... where  欄位名  between 值1 and 值2  

 

         例:查詢住在北京或者中南海的人

           select * from people where address in  ('北京','中南海');

       5.空值判斷

         格式1:   select * from people where  欄位名 is null;

              例:將address為空的所有資料篩選出來?

             select * from people where  address is null;

 

         格式2:   select * from people where  欄位名 is not null;

                   例:將address不為空的所有資料篩選出來?

              select * from people where  address is not null;

6.運算子的優先順序

          1.以上運算子可以綜合使用

                    2. 加上()

3.聚合函式

       count(*)  統計查詢結果的數量

       max(欄位名)  統計某個欄位的最大值

       min(欄位名)  統計某個欄位的最小值

       avg(欄位名)  統計某個欄位的平均值

       sum(欄位名)  統計某個欄位的總和

 

    格式: select 聚合函式  from  表名 where 條件

    例:查詢該表總共有多少人

          select count(*)  from people;

    例:獲取人的最大年齡?

          select max(age) from people;

    例:統計年齡的平均值 ?

          select avg(age) from people;

       例:統計年齡的和

          select sum(age) from people;

4.分組 group by

     格式:  select ..... from 表名  where 條件  group by 欄位名

   

     **統計某個欄位有多少種值

    例:檢視有多少種地址 ?

        select address  from people group by address;

    例:查詢每個地址有多少人?  

          select address,count(*)  from people group by address;

  

    例:再查詢中北京有多少人 ?

        select address,count(*)  from people  group by address having address = '北京';

        having  條件   表示在某個結果集上繼續篩選

                     注意: where 與having 後面都是跟一個條件表示查詢,

               但是where是先篩選, having是在where的結果後再篩選

5.排序  order by 

       格式: select ..... from 表名  where 條件  order by 欄位名 排序規則;

       例:查詢所有人,並按年齡排序(升序,預設的) ?

         select * from people order by age desc;

 降序: desc                                升序asc 預設的 

例:多個欄位排序

        格式: select ..... from 表名  where 條件  order by 欄位名 排序規則,欄位名2 排序規則;

6.分頁:

      格式: select ... from  表名  where 條件  limit  值1,值2;

      例: select * from people limit 1,4;

      

      值1 表示的是分頁的起始位置,  注意: 從 0 開始 

      值2 表示的是每一頁的結果數量

         

     獲取第n頁資料,  每一頁4條資料

      select * from people limit  4(n-1),4;