1. 程式人生 > 其它 >java_DAY20:使用DML,DQL操作資料庫

java_DAY20:使用DML,DQL操作資料庫

1:使用DML操作資料庫

1DML是什麼

資料操縱語言(Data Manipulation Language, DML)是SQL語言中,負責對資料庫物件執行資料訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除,是開發以資料為中心的應用程式必定會使用到的指令,因此開發人員都把加上SQL的SELECT語句的四大指令以“CRUD”來稱呼。

DML 的主要功能即是訪問資料,因此其語法都是以讀取與寫入資料庫為主,除了INSERT以外,其他指令都可能需搭配WHERE指令來過濾資料範圍,或是不加WHERE指令來訪問全部的資料。

DML(資料操作語言)用於操作資料庫物件中所包含的資料

包括

INSERT ( 新增資料語句 )

UPDATE ( 更新資料語句 )

DELETE ( 刪除資料語句 )

2INSERT ( 新增資料語句 )

語法:insert into 表名(列名,列名,列名...) values(值,值,值...); 為資料表的每列進行賦值

注意事項

1) 插入值 型別必須和 列型別匹配

2) 值長度不能超過 列定義長度

3) 值的順序和 列順序對應

4) 字串和日期型值 必須寫 單引號

5) 插入空值 可以寫 null

3UPDATE ( 更新資料語句 )

語法: update 表名 set 列名=值,列名=值.... where條件語句;

真正修改的內容是

set 後面的

Where 的作用是定位 - 選擇,限制

如果不加where條件語句的話,會作用在所有的記錄上

WHERE條件子句:有條件地從表中篩選資料

4DELETE ( 刪除資料語句 )

語法:delete from 表名 where條件語句 ;

如不指定則刪除該表的所有列資料

TRUNCATE命令

用於完全清空表資料,但表結構、約束等不變

TRUNCATE和delete的區別

truncate tablename命令將快速刪除資料表中的所有記錄,但保留資料表結構。

這種快速刪除與delete from 資料表的刪除全部資料表記錄不一樣,delete命令刪除的資料將儲存在系統回滾段中,需要的時候,資料可以回滾恢復,而truncate命令刪除的資料是不可以恢復的

最直觀是:

1.TRUNCATE TABLE是非常快的 ,delete相對慢一些

2.TRUNCATE之後的自增欄位從頭開始計數了,而DELETE的仍保留原來的最大數值

3:TRUNCATE刪除的資料不可恢復,delete刪除的資料可以恢復

2DQL

1:簡單查詢

準備:新建一個考試成績表,並新增資料

create table exam(

id int primary key auto_increment,

name varchar(20) not null,

chinese double,

math double,

english double

);

insert into exam values(null,'關羽',85,76,70);

insert into exam values(null,'張飛',70,75,70);

insert into exam values(null,'趙雲',90,65,95);

insert into exam values(null,'劉備',null,55,38);

語法一

select [distinct] * /列名,列名... from 表名;

select * from 表名; 查詢該表中所有列資訊

select 列名,列名... from 表名; 查詢表中指定列的資訊

distinct 用於排重

1: 查詢表中所有學生的考試成績資訊。

2: 查詢表中所有學生的姓名和對應的英語成績。

英語老師需要查詢班級英語成績

語法二:

select 表示式(列名執行運算) from 表名;

select 列名 as 別名 from 表名;

1:在所有學生各門分數上加10分特長分。

2: 統計每個學生的總分。

3: 使用別名表示學生分數。

在對列起別名時,as可以省略

語法三:

select 列名 from 表名 where條件語句

1: 查詢姓名為關羽的學生成績

2: 查詢英語成績大於90分的同學

3: 查詢總分大於200分的所有同學姓名和對應的各科成績以及總分

2:查詢之運算子

1:相等= 不等 <>或者 !=

2:between ...and... 在兩者之間取值 between 70 and 80 等價於 >=70 <=80

注意前面那個數要比後面那個數要小

3:in(值,值,值) 在指定值中任取一個 in(70,80,90) 值可以是70、80或者90

查詢英語成績為70,80,90的人的資訊

4:like '模糊查詢,表達式有兩個佔位符 % 任意字串 _ 任意單個字元 張_ 張%

例如: name like '張%' 所有姓張學員 '%張%'; 含有張字

name like '張_' 所有姓張名字為兩個字學員

5:is null 判斷該列值為空

Is not null 判斷不是為null

6:and 邏輯與 or 邏輯或 not 邏輯非

`