資料庫子函式練習

2021-07-03 17:55:55 字數 4243 閱讀 9438



create table

yyy(

code

int ,

name

varchar(50),

***varchar(50),

ageint,

hight

decimal(18,1),

weight decimal(18,1),

idno

bigint,

address varchar(50)

)insert into

yyyvalues(1,

'張三',

'男',20,161,61,37030219,

'山東')

insert into

yyyvalues(2,

'王八樂四',

'男',21,162,62,37030219,

'淄博')

insert into

yyyvalues(6,

'李科',

'男',22,178,75,371521,

'淄博')

insert into

yyyvalues(3,

'王五','男',22,163,63,37030219,

'濟南')

insert into

yyyvalues(4,

'李科',

'男',23,164,64,37030219,

'濰坊')

insert into

yyyvalues(5,

'李科',

'男',24,165,65,37030219,

'臨沂')

select *

from

yyy--top 關鍵字

select top 3

*from

yyy--顯示整個表的前3行

select top 3

*from

yyywhere

age>=22 

--先找到age>=22的 然後顯示age>=22的前3行

select top 3

name

from

yyy--顯示這個表的前3行中的name一列

--distinct

select  distinct

name

from 

yyy--去除名字相同的

--order  by 排序

select *

from

yyyorder by

ageasc 

--age從小到大排序  asc 公升序

select *

from

yyyorder by

agedesc

--age從大到小排序  desc 降序

select *

from

yyywhere weight

<70

order by

weight

--先篩選weight<70的 然後在按weight從小到大排序

select *from

yyyorder by

age,

weight

--先按年齡排序,然後在不改變第一次排序的基礎上按體重排序

--分組  group by 列   對哪一列進行分組,就只能顯示哪一列

select

agefrom

yyygroup by

age 

--對name列分組,只能顯示name列的資訊

selectage

from

yyygroup by

age--查詢年齡加5歲大於27的

select *from

yyywhere

age+5>27

--算術運算子:+-*/%

--比較運算子:> < >= <= != <>(不等於)   !《大於等於 !>小於等於

--邏輯運算子 and or

--修飾符 all any some in not

--in 在什麼引數範圍之內

select

*from

yyywhere

age in(22,23)  --相當於age=22 or age=23

select

*from

yyywhere

age=22 or age=23 --既顯示age=22,也顯示age=23

--not 不在什麼引數範圍之內

select

*from

yyywhere

age not

in(22,23)  --不顯示age是22和23的

--查詢年齡不在身高是164的人的年齡範圍之內的學生資訊

select

*from

yyywhere

hight=164

select

*from

yyywhere

age !=23

--子查詢:使用查詢語句查詢一列資料出來,然後作為其他查詢的查詢條件中的引數來使用

--查詢身高不在年齡是22歲的人的身高範圍之內的資訊

select

*from

yyywhere

age =22

select

*from

yyywhere

hight not in(178,163)

--簡化

select

*from

yyywhere

hight not in(select

hight from

yyywhere

age =22)--先查詢age=22的所有人的體重的這一列資料的結果作為引數,然後將這列引數用於第乙個函式

select *from

yyy--查詢名字叫李科的人中年齡比code=1的張三那個人的年齡大3歲的人的資訊

select

*from

yyywhere

age - (select age from

yyywhere

code=1 and name='張三' )=3 and name='李科'

--查詢名字叫李科的人中年齡比姓王的人中年齡大1歲的人的資訊

select

*from

yyywhere

name ='李科'

and age -1 in(select

agefrom

yyywhere

name like

'王%')

--外來鍵 :受約束的表叫外來鍵表,約束的資料來源叫主鍵表

--要想加外來鍵,首先得有主鍵表

--要想刪主鍵表資料,必須先刪除外來鍵表資料

--作為外來鍵的資料來源的列,必須要是乙個唯一鍵(這一列必須是主鍵或者是unique)

create table

teacher

(tcode

int primary key identity(1,1) ,

tname

varchar(50)

)insert into

teacher(tname)

values('張三')

select *from

teacher

create table

student

(scode

int primary key identity(1,1) ,

sname

varchar(50),

tnoint references

teacher(tcode) ,  --student表的tno項參考teacher表的tcode項,tcode項必須是主鍵項

cidvarchar(20) unique

--唯一列,不能重  unique

)insert into

student

values ('學生1',null,'32134124')  --tno項只能輸入null或張三的編號

insert

into

student

values ('學生2',null,'321434124')

insert into

student

values ('學生3',null,'32153124')

insert into

student

values ('學生4',1,'3215g124')

select *from

student

資料庫練習

1 張三 98 北京 111111111 qq.com 2 李四 88 上海 111111111 qq.com 3 王五 78 廣州 111111111 qq.com 4 趙六 68 深圳 111111111 qq.com 5 孫七 58 杭州 111111111 qq.com 6 小紅 48 北京...

資料庫練習

1.第一題 下 begin end 區間的 統計 course表中學分數 credit 大於2的課程門數 2.第二題 下 begin end 區間的 統計所有專業必修課 bt開頭的課程 的學分總數。3.第三題 下 begin end 區間的 按課程類別統計每個類別課程的門數,如課程 bt001,bt...

資料庫練習

分析 學生表 關聯 班級表 被關聯 多對一 課程表 關聯 老師表 被關聯 多對一 學生表 被關聯 成績表 關聯 多對多 建表順序 班級表 學生表 老師表 課程表 成績表 班級表 create table class cid int primary key auto increment,caption...