1. 程式人生 > >mysql資料庫常用sql語句

mysql資料庫常用sql語句

資料庫可以用圖形化工具來實現一系列操作,這裡涉及一些cmd命令列

首先要配置好環境變數可以全域性操作命令,不然只能在mysql的安裝目錄下進行操作,這裡不再敘述

1. 進入資料庫:  mysql -u root -p (預設使用者名稱為root,這個與mysql安裝時的設定的使用者有關,可設定使用不同使用者)        

                           退出則用exit指令

2. 看有哪些資料庫:   show databases;  (注意每次執行資料庫命令時要加‘’;‘’,你也可以設定成其他符號,這裡不再敘述)

3. 進入指定資料庫 :  use 資料庫名;

4. 檢視資料庫中有哪些表:   show tables;

5. 查看錶:(1) desc 表名;   檢視資料

                  (2)  show create table 表名;      查看錶的細節

sql語句:DDL(定義資料庫物件,表與列),DML(用於操作資料庫表中的記錄資料),

                DQL(查詢資料),DCL(定義訪問許可權和安全級別)

1.DDL 資料定義語言

注意點:在指定資料庫中做表的相關操作,所以要先進入指定的資料庫

建立資料庫和表

建立資料庫 create database 資料庫名 character set utf8;    (字符集一般設為utf8)

建立表: 在指定資料庫中建立表,所以要先進入指定的資料庫

        -- use 資料庫名;

        -- create table 表名(列名1(欄位) 欄位型別[約束條件],列名2 欄位型別,...);

               eg:create table students(name varchar(255),age int,gender varchar(25));

修改表名: rename table 原來表名 to 新表名;

修改表的字符集:例如將表字符集改為gbk ,則是 alter table 表名 character set gbk;

刪除表:drop table 表;

刪除資料庫名:drop table 資料庫名;

修改欄位(列)

新增欄位:alter table 表名 add 欄位名 欄位型別;

修改欄位名:alter table 表名 change 原始欄位名 新的欄位名 新資料型別;

修改欄位的資料型別:alter table 表名 modeify 欄位名 欄位型別;

刪除欄位: alter table 表名 drop 欄位名:

2.DML 資料操作語言

首先要進入指定的資料庫中才能進行操作資料

插入多條資料資料:insert into 表名(列名1,列名2,...)  values (列值1,列值2,...),values (列值1,列值2,...),...

修改更新資料:update 表名 set 列名1=列值1,列名2=列值2,... where 條件;           用where條件對指定資料進行修改

修改資料庫密碼:

        第一種方式:(1)use mysql;

                              (2)update user set authentication_string=password('密碼') where user='root' and Host='localhost';

        第二種方式:mysqladmin -u root = 新密碼;

                             然後會讓你輸入舊密碼就可修改

  刪除記錄:

        第一種:delete from 表名 where 條件;       能找回資料

        第二種:trumcate table 表名;                      建立一個新的表,但是表原來的資料刪除了,不能找回資料

3.DQL 資料查詢語言

查詢資料顯示指定欄位:select 欄位名1,欄位名2,... from 表名;    (select * from 表名; 則是顯示全部欄位)

    條件查詢:=(等於),!=(不等於),<>(不等於),<(小於),<=(小於等於),>(大於),>=(大於等於)

                     between ... and   ,   in(set)  (在set集合中)  , is null (為空)  ,is not null (不為空) 

                     and(與), or(或), not(非)

                 eg:select * from 表名 where age in (18,17,19);

    模糊查詢:通過關鍵字查詢,格式為 like+萬用字元

                                        萬用字元:-(任意一個字元),%(任意0-n個字元)

                       eg: 查詢名字中帶‘李’的人   select * from 表名 like '%李%';

     欄位查詢:1. distinct去重 :select distinct 欄位名 from 表;     顯示指定欄位,去掉了重複欄位資料

                       2. 對數值型欄位進行運算後顯示:

                        eg:   select 欄位1+欄位2 as 新欄位名 from 表;       將兩欄位進行運算後,顯示新的欄位名

                                (欄位1,欄位2必須是數值型,若為空則可設定預設值,IFNULL(欄位1,數值))

                        eg:    select IFNULL(欄位1,0)+IFNULL(欄位2,0) as 新欄位名 from 表;  預設空欄位設為0

     排序:select * from 表名 ORDER BY 欄位1 ASC,欄位2 DESC,...

                    先按欄位1排序,若有欄位相同資料,在按欄位2進行排序,以此類推    ASC為升序,DESC為降序

   聚合函式:對統計的結果進行計算統計  

                    COUNT() : 統計指定列不為null的行數      eg: select count(欄位1) from 表 [where 條件];

                    MAX() : 列中最大值             eg: select max(欄位1) from 表 [where 條件];

                    MIN() : 列中最小值              eg: select min(欄位1) from 表 [where 條件];

                    SUM() : 列的數值和,若不是數值型別則為0       eg: select sum(欄位1) from 表 [where 條件];

                    AVG() : 列的平均數,若不是數值型別則為0        eg: select avg(欄位1) from 表 [where 條件];