這篇文章帶給大家的內容是關於MySQL基本語句操作的總結,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
資料庫操作語句
(推薦課程:MySQL教學)
建立
create database 資料庫名稱
#查看所有資料庫
show databases。
查看指定資料庫建表語句及字元集
show create database 資料庫名稱
刪除資料庫
drop database 資料庫名
修改資料庫字元集-了解
alter database 資料庫名稱character set '字元集'
切換資料庫
use 資料庫名
查看目前資料庫名稱
select database();
資料表結構的增刪改查
有了資料庫之後,想保存數據,必須在資料庫中先有數據表。
建立資料表:
use 資料庫名稱
#檢視表格:
show tables;檢視該資料庫的所有表格
desc 表名;查看表格的列的資訊(表結構)
單表建立時約束
為了防止重名,保障儲存在資料表中的資料完整和有效性。
約束常用語法:列名資料型別約束條件
一張表只能有一個主鍵:id int primary key auto_increment
資料表結構刪除:可以刪除表名、列名、類別的型別、類別的約束條件進行增刪改。
增加列:alter table 表名 增/刪除/改 列名類型(長度) 約束;
修改列類型、長度與約束:alter table 表名modify 列名類型(長度) 約束;
修改現有列名稱:alter table 表名change 舊列名新列名類型(長度) 約束;
修改現有列:alter table 表名drop 列名;
修改表名:rename table 舊表名to 新表名;
修改表的字元集:alter table 表名character set 編碼集;
資料表刪除:drop table 表名;
資料表建立(重要)
create table 表名(
列名資料型別約束,
列名資料型別約束約束,
………
);
查看表格
show tables:查看所有的表格
show create table 表名: 查看建表語句以及字元集
desc 表名:查看表格結構。
修改表格的語句(了解)
alter table 表名(add|modify|drop|change) 列名 類型(長度) 約束。
rename table 舊表名to 新表名
刪除表
drop table 表名
在Java程式碼中對資料庫操作最頻繁的就是對錶中資料的CRUD操作。
資料的儲存位置:表。
#注意:
2、值的資料類型,與列被定義的資料類型要相符。且值的長度不能夠超過定義的列的長度。3、字串:插入字元類型的數據,必須寫單引號。在mysql中,使用單引號表示字串。
使用select*from 表名-查看該表所有資訊。
4、date 時間類型的資料也可以直接使用單引號表示: ‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。
5、在插入資料的時候, 如果某些列可以為null, 或者是自動增長的列, 或者有預設值的, 在插入的時候可以省略. 或者編寫null, 實現自動增長.
6.如果給表中的所有列插入資料, 這時可以省略表後面的列名, 直接寫values.
方式二:省略部分欄位
某一列有預設值,或允許空,才可以省略。主鍵是自增長的認為是有預設值的,也可以省略。
方式三:省略所有欄位
中括號不是語法內容,在這裡表示這個條件語句可加可不加。
注意事項:
1、如果不加條件,將會修改某一列的所有值。
2、一般修改資料時,都需要增加條件。
多個列使用逗號隔開。
eg:將所有人的年齡修改為20歲
update user set age=20;
eg:將所有人的年齡改為18歲
update user set age=18 where name=「張三」;
delete語句-刪除表中資料的語句
語法:delete from 表名[where 條件語句]
如果沒有where,刪除表中所有資料
delete刪除的是行。
Truncate語句-刪除資料
語法:truncate table 表名;
先刪除表,再建立表,就等於將資料全部刪除了。
就效能來講:truncate table 的效能比較好。
資料記錄增刪改小結:
新增:
insert into 表名values(值,值,值…)
insert into 表名(列名1,列名2,列名3….) values(值1,值2,值3……)
insert into 表名(列名2,列名4,列名5….) values(值2,值4,值5…)
修改:
update 表名set 列名=值,列名=值where 條件
#刪除:
delete from 表名where 條件
如果不加where 條件,就是刪除所有的資料。
刪除:清空資料
truncate table 表名
透過刪除整張表之後再重新建立一張表來達到清空資料的目的。
delete 和 truncate的差別在於delete刪除的資料在交易管理的情況下還能恢復,而truncate則不能恢復。
SQL中的聚合/聚集函數
聚合函數:多個資料進行運算,運算出一個結果。
例如:求和、平均值、最大值、最小值。
SQL語言中定義了部分函數可以實現這些操作。
count函數-統計記錄數(統計行數)
語法:select count() | count(列名) from 表名
select count () from 表名: 統計表中的行數。
sum求和函數
語法:select sum(列名) from 表名;
select sum(列名) from 表名where 條件
#avg函數-平均值
語法: select avg(列名) from 表名;
##max/min 最大值/最小值select max(列名),min(列名) from 表名
group by 分組查詢****依照某一列或某幾列。把相同的數據,進行合併輸出。
select … from … group by 列名;
注意事項:
1、聚合函數:分組之後進行計算;
2、通常 select的內容:a 被分組的列,b 聚合函數。
3、如果遇到這種情況 依照 每種,每個。類似的這些語句的時候,通常會使用分組。
4、如果使用group by 將資料分組之後還要過濾。這時一般不能使用where,因為where關鍵字的後面不能跟上面講解的這些函數。如果需要在過濾的條件中加上述的函數,只能使用having關鍵字。
5、where 後面不能跟著 聚合函數,having中可以跟著 聚合函數。
分組之後加上篩選條件。
where 和 having 的差別。 1、having 通常與group by 分組結合使用。
也就是說Where後面的條件having後都可以有,having後跟的條件where後不一定能跟
查詢時,如非必要,用where的效率更高,因為先將資料篩選之後再進行其他條件判斷。
#進行分組
條件2進行過濾
#select語句的執行順序與查詢小結:查詢關鍵字的出現順序是固定的
select …要顯示的內容… from …表名… where 條件…. group by …分組的欄位…having …分組後的條件… order by …排序select …5… from …1… where …2… group by …3…having …4… order by …6.
select product,sum(price) as总价 from orders where price>10 group by product having 总价>30 order by 总价 asc;登入後複製
查詢的執行順序
(定義別名)
(聚合函數執行)
以上是MySQL基本語句操作的總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!