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 條件];