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 別名 可以給顯示的欄位名取個別名,方便檢視
查詢條件:
- 比較運算子
> 大於
< 小於
>= 大於等於
<= 小於等於
= 等於
!= 不等於
例:查詢大於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;