軟件測試——sql數據庫 - 草稿

軟件測試——sql數據庫



1.數據類型(常用)

? int : 整數

? decimal : 小數

? varchar : 字符串

? datetime : 日期時間




2.約束

primary key : 主鍵;唯一標識某一條數據,字段值不能為空,一般為id字段(int類型、無符號、自動遞增)

foreign key : 外鍵;維護表與表之間的關聯關系.

not null : 非空;該字段不允許存入空值.

unique : 唯一;該字段的值是不允許重復.

default : 默認值;不填值的情況下自動使用默認值.


3.數據庫操作

? 1)創(chuàng)建數據庫

create database dbname

? 2)刪除數據庫

drop database dbname


4.數據表操作

1) 創(chuàng)建表

create table tablename (

字段1 類型 約束

字段2 類型 約束

)

2)刪除表

drop table tablename



3)添加數據(增)

語法一:

添加一條完整數據(設置所有字段信息)

insert into tablename values(值1,值2,'值3',…)

? // values( )中的值必須按照字段順序依次填寫對應值,不可缺少任何字段

? //字符串類型的數據需要用單引號‘’.

? //值與值之間用逗號分隔

語法二:

給指定字段(列)設置值

insert into tablename(列1,列2,…)values(值1,值2,…)

//列名與列名之間用逗號分隔

//列名與值一一對應

語法三:

同時添加多條數據

insert into tablename(列1,列2,…)values(數據1),(數據2),(數據3)



4)刪除數據(刪)

delete from tablename where 條件

例:

刪除姓名為張三,id為6的學生數據

delete from student where name='張三',id=6

// 切記:謹慎使用delete,一旦刪除失誤,數據無法恢復,牢底坐穿(夸張了哈)就在你一念只差?。?!在公司我們可以用邏輯刪除(操作如下)

1.給表添加一個isdelete的字段,用于代表數據是否刪除, 0表示未刪除(默認為0),1表示刪除

2.需要刪除某條數據時,使用update語句將isdelete字段值改為1即可

例:

update student set isdelete=1 where id=2

3.查詢未刪除的數據時,將查詢條件設為isdelete=0

? select * from student where isdelete=0

? //返回的數據就是未做刪除處理的數據



5)修改數據(改)

語法一:

update tablename set 列1=值1,列2=值2,… where 條件

例:

將編號(id)為1的分數(score)改為99分,性別(sex)改為女

update student set score=99,sex='女' where id=1



6)查詢數據(查)

? 簡單查詢(單表查詢):

1)查詢一個表的所有數據

? select * from tablename

? // * : 表所有

2)查詢指定數據

select 列1,列2,… from tablename

例1:

查詢張三的成績

select score from student where name='張三'

例2:

查詢分數在60分以上的學生信息

select * from student where score≥60

4)比較符

>(大于)

<(小于)

≥(大于等于)

≤(小于等于)

!=(不等于)

5)邏輯運算符

and? :? 和,并且;? ? 左右兩個條件必須同時滿足

? or? : 或, 或者;? ? 左右條件滿足其一即可

? not : 非,不是,取反;放在某一個條件前,表否定

7)模糊查詢

? like : 模糊查詢關鍵字

%? : 百分號,表示任意多個字符

_? : 下劃線,表示一個任意字符

8)范圍查詢

in :非連續(xù)范圍內查詢 (查詢一個字段多個非連續(xù)(1~3)值時使用)

語法:

select * from tablename where 列名 in('值1','值2','值3')

例:

查詢出家在長沙,岳陽,武漢的學生信息

select * from student where home in('長沙','岳陽','武漢')

between and :連續(xù)范圍內查詢

語法:

select * from tablename where 列名 between 小值? and 大值

例:

查詢年齡在16~18歲的學生信息

select * from student where age between 16 and 18

//必須是從小到大,所以between 后面必須是比and后面的值小

// 查詢出的結果包含設定的最小值和最大值

// 查詢范圍以外的信息,在字段前前面加上 not即可

9)排序

order by 關鍵字

升序(從小到大,默認):

select * from tablename order by 列名 asc

// order by 默認排序為升序(從小到大)故asc可省略不寫

降序(從大到小,非默認)

select * from tablename order by 列名 desc

10)空判斷

is null : 判空

語法:

select * from tablename where 列名 is null

is not null : 判非空

語法:

select * from tablename where 列名 is not null

// 查詢是否為null時,不能用比較運算符“=”

// null 不等于 ' '

11)聚合函數

count(*): 總和 (總行數)

語法:

select count(*) from tablename

select count(列名) from tablename

// count括號中可以是“*”也可以是單個字段,多個字段不可以

// 當使用*時,一行數據所以值都為null時不計數

//count指定字段后,這一列數據中存在的null值不計入總數

// 當count()與where條件同時出現時,先統(tǒng)計的是where條件再在滿足where條件之后的數據上執(zhí)行count()

max( ) : 最大值 統(tǒng)計一列數據的最大值

語法:

select max(列名) from tablename


min( ) : 最小值? 統(tǒng)計一列數據的最小值

語法:

select min(列名) from tablename


avg( ) : 平均值 統(tǒng)計一列數據的值的平均值,例如班級平均分

語法:

select avg(列名) from tablename


sum( ) : 求和 統(tǒng)計一列數據的值的總和

select sum(列名) from tablename

//聚合函數不能在where語句中使用

// 所有聚合函數可以同時使用,在from前函數與函數之間用逗號分隔開即可


12)分組

group by


語法:

select 列1,列2,… 聚合函數… from tablename group by 列1,列2,… having 列1,列2,… 聚合函數

// group by 語句后不能接where語句,where語句后可以接groupby,where語句必須在from tablename之后,where是對原始數據的篩選,having是對group by分組之后的結果進行篩選

// 凡是遇到“每個”“各個"必定用分組

例:

查詢1班以外,數學學科的班級平均分和最高分,最低分分別是多少

select class avg(score),max(score),min(score) from student group by class having class!=1 and kemu='數學'

13)分頁查詢

語法:

select *from tablename limit 行數

14)給字段取別名

select id as 序號,name as 姓名 ,from student

15)查詢結果去重處理

select distinct 列名1,列名2,… from tablename

16)多表查詢

1.等值連接查詢?

2.左連接查詢

3.右連接查詢

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容