溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL基本語句操作有哪些

發(fā)布時間:2020-12-03 11:11:38 來源:億速云 閱讀:130 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹了MySQL基本語句操作有哪些,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

數(shù)據(jù)庫操作語句

  • 創(chuàng)建
    create database 數(shù)據(jù)庫名

  • 查看所有數(shù)據(jù)庫
    show databases。

  • 查看指定數(shù)據(jù)庫建表語句及字符集
    show create database  數(shù)據(jù)庫名

  • 刪除數(shù)據(jù)庫
    drop database 數(shù)據(jù)庫名

  • 修改數(shù)據(jù)庫字符集-了解
    alter database 數(shù)據(jù)庫名 character set ‘字符集’

  • 切換數(shù)據(jù)庫
    use 數(shù)據(jù)庫名

  • 查看當前數(shù)據(jù)庫名稱
    select database();

數(shù)據(jù)表結(jié)構(gòu)的增刪改查
有了數(shù)據(jù)庫之后,想保存數(shù)據(jù),必須在數(shù)據(jù)庫中先有數(shù)據(jù)表。

  • 創(chuàng)建數(shù)據(jù)表:
    use 數(shù)據(jù)庫名

  • 查看表:
    show tables;查看該數(shù)據(jù)庫的所有表
    desc 表名;查看表的列的信息(表結(jié)構(gòu))

  • 單表創(chuàng)建時約束
    為了防止重名,保障存儲在數(shù)據(jù)表中的數(shù)據(jù)完整和有效性。
    約束常用語法:列名 數(shù)據(jù)類型 約束條件
    一張表中只能有一個主鍵:id int  primary key auto_increment

  • 數(shù)據(jù)表結(jié)構(gòu)刪除:可以對表名、列名、類的類型、類的約束條件進行增刪改。
    增加列:alter table 表名      增/刪/改        列名 類型(長度) 約束;
    修改列類型、長度和約束:alter table 表名 modify 列名 類型(長度) 約束;
    修改現(xiàn)有列名稱:alter table 表名 change 舊列名 新列名 類型(長度) 約束;
    修改現(xiàn)有列:alter table 表名 drop 列名 ;
    修改表名:rename table 舊表名 to 新表名;
    修改表的字符集:alter table 表名 character set 編碼集;
    數(shù)據(jù)表刪除:drop table 表名;

  • 數(shù)據(jù)表小結(jié)
    數(shù)據(jù)表創(chuàng)建(重要)
    create table 表名(
    列名 數(shù)據(jù)類型 約束 ,
    列名 數(shù)據(jù)類型 約束 約束,
    ………
    );
    查看表
    show tables:查看所有的表
    show create table 表名: 查看建表語句以及字符集
    desc 表名:查看表結(jié)構(gòu)。
    修改表的語句(了解)
    alter table 表名(add|modify|drop|change) 列名 類型(長度) 約束。
    rename table 舊表名 to 新表名
    刪除表
    drop table 表名

簡單數(shù)據(jù)表內(nèi)容的增刪改查(很重要)

  • insert語句——數(shù)據(jù)記錄的增加
    CRUD:create、read/retrieve、update、delete
    在Java代碼中對數(shù)據(jù)庫操作最頻繁的就是對表中數(shù)據(jù)的CRUD操作。
    數(shù)據(jù)的存儲位置:表。

方式一:全寫
語法:insert into 表名 (列名,列名,列名…)  values (值,值,值…);
注意:

1、值與列一一對應。有多少個列,就需要寫多少個值。如果某一個列沒有值??梢允褂胣ull。表示插入空。
2、值的數(shù)據(jù)類型,與列被定義的數(shù)據(jù)類型要相匹配。并且值的長度不能夠超過定義的列的長度。
3、字符串:插入字符類型的數(shù)據(jù),必須寫單引號。在mysql中,使用單引號表示字符串。
4、date 時間類型的數(shù)據(jù)也可以直接使用單引號表示: ‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。
5、在插入數(shù)據(jù)的時候, 如果某些列可以為null, 或者是自動增長的列, 或者有默認值的, 在插入的時候可以省略. 或者編寫null, 實現(xiàn)自動增長.
6、如果給表中的所有列插入數(shù)據(jù), 這時可以省略表后面的列名, 直接寫values.

使用select*from 表名——查看該表所有信息。

方式二:省略部分列
某一列有默認值,或者允許空,才可以省略。
主鍵是自增長的認為是有默認值的,也可以省略。

方式三:省略所有列
語法:insert into 表名 values(值,值,值);

  • update語句——修改表記錄
    語法:update 表名 set 列名=值,列名=值…[where 條件語句];
    中括號不是語法內(nèi)容,在這里表示這個條件語句可加可不加。
    注意事項:
    1、如果不加條件,將會修改某一列的所有值。
    2、一般修改數(shù)據(jù)時,都需要增加條件。
    多個列使用逗號隔開。

eg:將所有人的年齡修改為20歲
update user set age=20;
eg:將姓名為張三的人年齡改為18歲
update user set age=18 where name=“張三”;

  • delete語句——刪除表中數(shù)據(jù)的語句
    語法:delete from 表名 [where 條件語句]
    如果沒有where,刪除表中所有數(shù)據(jù)
    delete刪除的是行。

  • Truncate語句——刪除數(shù)據(jù)
    語法:truncate table 表名;
    先刪除表,再創(chuàng)建表,就相當于將數(shù)據(jù)全部刪除了。
    就性能來講:truncate table 的性能更好。

數(shù)據(jù)記錄增刪改小結(jié):
新增:
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 條件,就是刪除所有的數(shù)據(jù)。

刪除:清空數(shù)據(jù)
truncate table 表名
通過刪除整張表之后再重新創(chuàng)建一張表來達到清空數(shù)據(jù)的目的。

delete 和 truncate的區(qū)別是delete刪除的數(shù)據(jù)在事務(wù)管理的情況下還能恢復,而truncate則不能恢復。

SQL中的聚合/聚集函數(shù)
聚合函數(shù):多個數(shù)據(jù)進行運算,運算出一個結(jié)果。
例如:求和、平均值、最大值、最小值。
SQL語言中定義了部分函數(shù)可以實現(xiàn)這些操作。
MySQL基本語句操作有哪些count函數(shù)——統(tǒng)計記錄數(shù)(統(tǒng)計行數(shù))
語法:select count() | count(列名) from 表名
select count(
) from 表名: 統(tǒng)計表中的行數(shù)。

sum求和函數(shù)
語法:select sum(列名) from 表名;
select sum(列名) from 表名 where 條件

avg函數(shù)——平均值
語法: select avg(列名) from 表名;

max/min 最大值/最小值
select max(列名),min(列名) from 表名

group by 分組查詢****
按照某一列或者某幾列。把相同的數(shù)據(jù),進行合并輸出。
select … from … group by 列名;

說明:其實就是按列進行分類,然后可以對分類完的數(shù)據(jù)使用聚集函數(shù)進行運算。
注意事項:
1、聚合函數(shù):分組之后進行計算;
2、通常 select的內(nèi)容:a 被分組的列,b 聚合函數(shù)。
3、如果遇到這種情況   按照 每種,每個。 類似的這些語句的時候,通常會使用分組。
4、如果使用group by 對數(shù)據(jù)進行分組之后還要過濾。這時一般不能使用where,因為where關(guān)鍵字的后面不能跟上面講解的這些函數(shù)。如果需要在過濾的條件中加上述的函數(shù),只能使用having關(guān)鍵字。
5、where 后不能跟 聚合函數(shù),having中可以跟 聚合函數(shù)。

group by 列名 having 條件
分組之后加過濾條件。

where 和 having 的區(qū)別。
1、having 通常與group by 分組結(jié)合使用。

2、having 可以書寫聚合函數(shù) (聚集函數(shù)出現(xiàn)的位置: select 之后,group by …  having 之后)where  不可以。
也就是說Where后面的條件having后都可以有,having后跟的條件where后不一定能跟

3、where 是在分組之前進行過濾的。having 是在分組之后進行過濾的。
查詢時,如非必要,用where的效率更高,因為先將數(shù)據(jù)篩選之后再進行其他條件判斷。

說明 : select … from … where 條件1 … gropu by … having 條件2  order by

條件1 會先執(zhí)行過濾
進行分組
條件2進行過濾

select語句的執(zhí)行順序與查詢小結(jié):
查詢關(guān)鍵字的出現(xiàn)順序是固定的

select …要顯示的內(nèi)容… from …表名… where  條件…. group by …分組的列 …h(huán)aving …分組后的條件… order by …排序
select …5… from …1…  where …2… group by …3…h(huán)aving …4… order by …6.

select product,sum(price) as總價 from orders
	where price>10
		group by product
			having 總價>30
				order by 總價 asc;

MySQL基本語句操作有哪些查詢的執(zhí)行順序

  1. from : 表名

  2. where:條件過濾
    (定義別名)

  3. group by : 分組
    (聚合函數(shù)執(zhí)行)

  4. having : 分組之后進行過濾。

  5. select :執(zhí)行完畢之后,查詢內(nèi)容。

  6. order by : 排序輸出顯示.

感謝你能夠認真閱讀完這篇文章,希望小編分享MySQL基本語句操作有哪些內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI