一、對數據庫的操作
1、創建一個庫
create database 庫名
create database 庫名 character set 編碼 //創建帶有編碼的庫
2、刪除一個庫
drop database 庫名
3、使用庫
use 庫名
4、查看當前正在操作的庫
select database();
5、顯示所有的數據庫
show databases;
6、查看數據庫編碼
show create database 庫名;
二、對數據庫表的操作
1、創建一張表
create table 表名(
字段名 類型(長度) [約束],
字段名 類型(長度) [約束],
字段名 類型(長度) [約束]
);
2、查看數據庫表
show tables;
3、查看錶的結構
desc 表名;
4、刪除一張表
drop table 表名;
5、修改表
a、添加一列:
alter table 表名 add 字段名 類型(長度) [約束];
b、修改列的類型(長度、約束)
alter table 表名 modify 要修改的字段名 類型(長度) [約束];
c、修改列的列名
alter table 表名 change 舊列名 新列名 類型(長度) [約束];
d、刪除表的列
alter table 表名 drop 列名;
e、修改表名
rename table 表名 to 新表名;
f、修改表的字符集
alter table 表名 character set 編碼;
g、查看錶的編碼
show create table 表名;
三、對數據庫表記錄進行操作(修改)
1、插入記錄
a、insert into 表名(列名1,列名2, 列名3...) values (值1,值2,值3...);
b、insert into 表名 values(值1,值2,值3...);
c、插入數據中文亂碼問題解決辦法
方式一:【不建議】
直接修改數據庫安裝目錄裏面的my.ini文件的第57行
default-character-set=utf8
方式二:
set names gbk;
2、修改表的記錄
a、不帶條件的(它會將該列的所有記錄都更改)
update 表名 set 字段名=值,字段名=值,字段名=值...;
b、帶條件的
update 表名 set 字段名=值,字段名=值,字段名=值... where 條件;
3、刪除表的記錄
a、帶條件的(刪除後,id不會重置)
delete from 表名 where 條件;
b、不帶條件的
delete from 表名;
c、delete 與truncate 的區別?
delete 刪除的時候是一條一條的刪除記錄,它配合事物,可以將刪除的數據找回;
truncate 刪除,它是將整個表摧毀,然後再創建一張一模一樣的表。它刪除的數據無法找回。
delete操作演示:
Truncate操作演示:
注意:delete刪除,id不會重置!而使用truncate操作,id會重置因爲它刪除了表結構,然後再創建一張一模一樣的表,所以再次插入數據的數據的時候從1開始。
4、查詢操作
select [distinct] * | 列名,列名 from 表名 [where 條件];
a、查詢所有
select * from 表名;
b、查詢特定字段名
select 列名,列名 from 表名;
c、使用別名查詢所有
select * from 表名 as 別名;
select * from 表名 別名;
d、使用列別名查詢表
select 列名 as 列別名 from 表名;
select 列名 列別名 from 表名;
e、查詢某列信息去掉重複值
select distinct(列名) from 表名;
f、對整形數據的列進行加上特定值,並進行顯示
select 列名+10 from 表名;
g、按照特定順序進行顯示,如價格按照(升序、降序)顯示
select * from 表名 order by price asc;
select * from 表名 order by price desc;
h、顯示某一字段包含特定字符串的數據
select * from 表名 where 列名 like ‘%特定字符串%’
i、聚合函數
(1)、獲取所有的商品價格的總和
select sum(price) from 表名;
(2)、獲取所有商品的平均價格
select avg(price) from 表名;
(3)、獲取所有商品的個數
select count(*) from 表名;
j、分組操作
(1)、根據某一字段分組,分組後統計每組個數
select 列名,count(*) from 表名 group by 列名; //一般這兩個列名爲同一列名
(2)、根據某一字段分組,分組統計每組商品的平均價格,並且平均價格大於20。
select 列名,avg(price) from 表名 gruop by 列名 having avg(price)>20;
k、使用Limit關鍵字進行查詢操作(查詢第幾頁,每頁顯示數量)
select * from 表名 limit 6,3;
//查詢第3頁每頁顯示3條數據,其中參數一表示起始位置:指要查詢(第幾頁-1)乘以第二個參數),
即 (3-1)*3=6;
l、查詢總結
select 一般在它後面的內容都是要查詢的字段
from 要查詢的表
group by 分組
having 分組後帶有條件只能使用having
order by 排序,它必須放在最後面,