您好,登錄后才能下訂單哦!
這篇文章主要介紹了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 表名
簡單數據表內容的增刪改查(很重要)
insert語句——數據記錄的增加
CRUD:create、read/retrieve、update、delete
在Java代碼中對數據庫操作最頻繁的就是對表中數據的CRUD操作。
數據的存儲位置:表。
方式一:全寫
語法:insert into 表名 (列名,列名,列名…) values (值,值,值…);
注意:
1、值與列一一對應。有多少個列,就需要寫多少個值。如果某一個列沒有值。可以使用null。表示插入空。
2、值的數據類型,與列被定義的數據類型要相匹配。并且值的長度不能夠超過定義的列的長度。
3、字符串:插入字符類型的數據,必須寫單引號。在mysql中,使用單引號表示字符串。
4、date 時間類型的數據也可以直接使用單引號表示: ‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。
5、在插入數據的時候, 如果某些列可以為null, 或者是自動增長的列, 或者有默認值的, 在插入的時候可以省略. 或者編寫null, 實現自動增長.
6、如果給表中的所有列插入數據, 這時可以省略表后面的列名, 直接寫values.
使用select*from 表名——查看該表所有信息。
方式二:省略部分列
某一列有默認值,或者允許空,才可以省略。
主鍵是自增長的認為是有默認值的,也可以省略。
方式三:省略所有列
語法:insert into 表名 values(值,值,值);
update語句——修改表記錄
語法:update 表名 set 列名=值,列名=值…[where 條件語句];
中括號不是語法內容,在這里表示這個條件語句可加可不加。
注意事項:
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中可以跟 聚合函數。
group by 列名 having 條件
分組之后加過濾條件。
where 和 having 的區別。
1、having 通常與group by 分組結合使用。
2、having 可以書寫聚合函數 (聚集函數出現的位置: select 之后,group by … having 之后)where 不可以。
也就是說Where后面的條件having后都可以有,having后跟的條件where后不一定能跟
3、where 是在分組之前進行過濾的。having 是在分組之后進行過濾的。
查詢時,如非必要,用where的效率更高,因為先將數據篩選之后再進行其他條件判斷。
說明 : select … from … where 條件1 … gropu by … having 條件2 order by
條件1 會先執行過濾
進行分組
條件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;
查詢的執行順序
from : 表名
where:條件過濾
(定義別名)
group by : 分組
(聚合函數執行)
having : 分組之后進行過濾。
select :執行完畢之后,查詢內容。
order by : 排序輸出顯示.
感謝你能夠認真閱讀完這篇文章,希望小編分享MySQL基本語句操作有哪些內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。