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...