MySQL&JDBC回顧——MySQL

    爲了鞏固知識點,方便自己記住,特意寫了這一篇,若不足之處請指正,謝謝!

MySQL的回顧


一、 對數據庫的操作

1. 創建一個庫

create database 庫名

create database 庫名character set 編碼


創建帶有編碼的


查看編碼:



2. 刪除一個庫

drop database 庫名



3. 使用庫

use 庫名


4.查看當前正在操作的庫

二、對數據庫表的操作

1.創建一張表

create table 表名(

    字段名 類型(長度) [約束],

    字段名 類型(長度) [約束],

    字段名 類型(長度) [約束]

);


2.查看數據庫表

創建完成後,我們可以查看數據庫表

show tables;


查看錶的結構

desc 表名


3.刪除一張表

drop table 表名


4.修改表
4.1 添加一列

alter table 表名 add 字段名 類型(長度) [約束]


4.2 修改列的類型(長度、約束)

alter table 表名 modify要修改的字段名 類型(長度) [約束]


4.3 修改列的列名

alter table 表名 change舊列名 新列名 類型(長度) [約束]


4.4 刪除表的列

alter table 表名 drop 列名


4.5 修改表名

rename table 表名 to 新表名


4.6 修改表的字符集

alter table 表名character set 編碼


查看當前表的編碼


三、對數據庫表記錄進行操作(修改)

1.插入記錄

insert into 表名(列名1,列名2,列名3……)values(值1,值2,值3……)


insert into 表名values(值1,值2,值3……)


1.1 插入數據中文亂碼問題解決辦法

方式一:【不建議!

直接修改數據庫安裝目錄裏面的my.ini文件的第57行


方式二:

    setnames gbk;


2.修改表記錄
2.1 不帶條件的

update 表名 set 字段名=值, 字段名=值, 字段名=值……


它會將該列的所有記錄都更改

2.2 帶條件的

update 表名 set字段名=值, 字段名=值, 字段名=值…… where 條件


3.刪除表記錄
3.1 帶條件的

delete from 表名 where 條件


注意,刪除後,uid不會重置!

3.2.不帶條件的

先準備數據

insert into tbl_user values(null,’老王’,’666’);

刪除操作

    deletefrom 表名;


3.3 面試題

說說delete與truncate的區別?

delete刪除的時候是一條一條的刪除記錄,它配合事務,可以將刪除的數據找回。

truncate刪除,它是將整個表摧毀,然後再創建一張一模一樣的表。它刪除的數據無法找回。

Delete操作演示:


Truncate操作演示




注意:delete刪除,uid不會重置!而使用truncate操作,uid會重置[ThinkPad1] 


 [ThinkPad1]因爲它刪除了表結構,然後再創建一張一模一樣的表,所以再次插入數據的數據的時候從1開始。

4.查詢操作

語法:

    select[distinct] *| 列名,列名from 表名 [where條件]

4.1 簡單查詢

1.查詢所有商品

select * from product;


2. 查詢商品名和商品價格

select pname,price from product;


3.查詢所有商品信息使用表別名

select * from product as[ThinkPad1]  p;


 [ThinkPad1]可以省略


4.查詢商品名,使用列別名

select pname as[ThinkPad1]  p from product


 [ThinkPad1]可以省略


5.去掉重複值(按照價格)

select distinct(price) from product;

 

先準備數據:

insert into product values (null,'李士雪',38,null);


6.將所有的商品的價格+10進行顯示

select pname,price+10 from product;


4.2 條件查詢

1.查詢商品名稱爲"左慈"的商品信息


2.查詢價格>60元的所有商品信息


3.查詢商品名稱含有"士"字的商品信息


4.查詢商品id在(3,6,9)範圍內的所有商品信息


5.查詢商品名稱含有"士"字並且id爲6的商品信息


6.查詢id爲2或者6的商品信息


4.3 排序

1.查詢所有的商品,按價格進行排序(升序、降序)




2.查詢名稱有"士"的商品信息並且按照價格降序排序



4.4 聚合函數

1.獲得所有商品的價格的總和


2.獲得所有商品的平均價格


3.獲得所有商品的個數


4.5 分組操作

1.添加分類id (alter table product add cidvarchar(32);)

2.初始化數據

update product set cid='1';

update product set cid='2' where  pid in (5,6,7);

1.根據cid字段分組,分組後統計商品的個數。


2.根據cid分組,分組統計每組商品的平均價格,並且平均價格大於20000元。


4.6 查詢總結

select  一般在的後面的內容都是要查詢的字段

from  要查詢到表

where

group by

having 分組後帶有條件只能使用having

order by 它必須放到最後面


四、MYSQL多表

1 外鍵

       現在我們有兩張表”分類表“和”商品表“,爲了表名商品屬於哪個分類,通常情況下,我們在商品表上添加一列,用於存放分類cid的信息,此列稱爲:外鍵。


       此時”分類表category“稱爲:主表,”cid“我們稱爲主鍵。”商品表products“稱爲:從表,category_id稱爲外鍵。我們通過主表的主鍵和從表的外鍵來描述主外鍵關係,呈現就是一對多關係。

聲明外鍵約束

    語法:

       alter table 從表 add[constraint][外鍵名稱] foregin key(從表外鍵字段名) references 主表(主表的主鍵);


       [外鍵名稱] 用於刪除外鍵約束的,一般建議”_fk“結尾

                alter table 從表 drop foreign key 外鍵名稱

使用外鍵目的:

       保證數據完整性

2 表與表之間的關係

表與表之間的關係,說的就是表與表數據之間的關係

       一對多關係:

                常見實例:客戶和訂單,分類和商品,部門和員工。

                一對多關係建表原則:在從表(多方)創建一個字段,字段作爲外鍵指向主表(一方)的主鍵。

       多對多關係:

                常見實例:學生和課程,商品和訂單,人和角色

                多對多關係建表原則:需要創建第三張表,中間表中至少兩個字段,這個字段分別作爲外鍵指向各自一方的主鍵。(就是將一個多對多拆分成兩個一對多。)


                兩張表分別都是主表,第三張表爲從表,提供兩個字段,都是外鍵。

       一對一關係:

       在實際的開發中應用不多,因爲一對一可以創建成一張表。

                兩種建表原則:

                        外鍵唯一:主表的主鍵和從表的外鍵(唯一),形成主外鍵關係,外鍵唯一unique。

                        外鍵是主鍵:主表的主鍵和從表的主鍵,形成主外鍵關係。

       總結:

            從表不能夠添加(更新),主表中不存在的數據。

            主表不能夠刪除(更新),從表中已經使用的數據。        

3  查詢

3.1 多表查詢


3.2 子查詢

子查詢:一條select語句結果作爲另一條select語法一部分(查詢條件,查詢結果,表等)。


注意事項:

       從表外鍵不能添加,主表中不存在的記錄。

        主表不能刪除,從表中已經引用的記錄。










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章