1.建立名为Test的数据库;
create database Test on
(
    name=Test_data,
    filename='e:\090610210\Test_data.mdf',
    size =10mb,
    maxsize=unlimited,
    filegrowth=10%
)
log on
(
    name=Test_log,
filename='e:\090610210\Test_log.ldf',
    size=1mb,
    maxsize=5mb,
    filegrowth=1mb
)
2.用CREATE语句按要求建立如下四个表,并写出相应的语句。
(1)供应商表S:
列名
说明
数据类型
约束
SNO
供应商号
CHAR(6)
PRIMARY KEY
SNAME
供应商名
VARCHAR(20)
NOT NULL
STATUS
供应商状态
VARCHAR(50)
CITY
所在城市
VARCHAR(50)
Create table S
(
    Sno char(6)  primary key(Sno),
    Sname varchar(20) not null,
    Status varchar(50),
    City varchar(50)
)
(2)零件表P:
列名
说明
数据类型
约束
PNO
零件号
CHAR(6)
PRIMARY KEY
PNAME
零件名
VARCHAR(20)
NOT NULL
COLOR
CHAR(2)
WEIGHT
重量
NUMERIC(9,2)
CHECK(WEIGHT>0 AND WEIGHT<=100)
Create table P
(
    Pno char(6) primary key,
    Pname varchar(20) not null,
    Color char(2),
    Weight numeric(9,2) check(weight>0 and weight <=100)
)
(3)工程项目表J:
列名
说明
数据类型
约束
JNO
项目号
CHAR(6)
PRIMARY KEY
JNAME
项目名
VARCHAR(20)
NOT NULL
CITY
城市
VARCHAR(50)
Create table J
(
    Jno char(6) primary key,
    Jname varchar(20) not null,
    City varchar(50)
)
(4)供应情况表SPJ:
列名
说明
数据类型
约束
SNO
供应商号
CHAR(6)
NOT NULL
PNO
零件号
CHAR(6)
NOT NULL
JNO
项目号
CHAR(6)
NOT NULL
QTY
供应数量
SMALLINT
DEFAULT 100
Create table SPJ
(
    Sno char(6) not null,
    Pno char(6) not null,
    Jno char(6) not null,
    Qty smallint default 100
)
3.利用SQL语句对表结构进行修改: 为零件表P增加一个规格(GUIGE)列,数据类型为字符,长度50。
Alter table p add guige char(50)
使用insert 语句像表中输入数据:
SNO
SNAME
STATUS
CITY
S1
精益
20
天津
S2
盛锡
10
北京
Insert S values(‘S1’,’精益’,’20’,’天津’),(‘S2’,’盛锡’,’10’,’北京’)
PNO
PNAME
COLOR
WEIGHT
P1
螺母
12
P2
螺栓
绿
17
Insert P (PNO,PNAME,COLOR,WEIGHT) values('P1','螺母','',12),('P2','螺栓','绿',17)
JNO
JNAME
CITY
J1
一汽
北京
J2
半导体厂
南京
Insert J values(‘J1’,’一汽’,’北京’),(‘J2’,’半导体厂’,’南京’)
SN0
PNO
JNO
QTY
S1
P1
J1
200
S1
P2
J1
100
Insert SPJ values('S1','P1','J1',200),('S1','P2','J1',100)
4.按要求修改表中数据:
(1)将所有spj表中数量QTY每行加1。
update SPJ set qty=Qty+1
(2)修改“S1”、“P1”的QTY为98。
update SPJ set qty=98 where sno='s1'and pno='p1'
(3)删除工程项目表J中城市为“南京”的项目信息。
Delete J where city='南京'
5.按要求写出对应查询数据的SQL语句
(1)查询全体零件的信息。
Select * from P
(2)查询颜为“红”的零件的零件号,零件名和四舍五入到整数后的零件重量。
Select Pno,Pname,Weight=ROUND(Weight,0) from P
(3)出使用供应商S1锁供应零件的工程号码。
Select Jno from SPJ where Sno='S1'
(4)出所有零件的名称、颜、重量。
Select Pname,Color,Weight from P
(5) 出工程项目J2使用的各种零件的名称及其数量。
Select s.Pno,Pname, Qty  from SPJ s,P where Jno='J1' and p.Pno=s.Pno
(6)出上海厂商供应的所有零件号码。
Select Pno from spj where SPJ.Sno in (select Sno from s where City='上海')
(7)列出使用上海产的零件的工程名称。
Select Pname from P where Pno in (Select Pno from spj where Sno in (select Sno from s where City='上海'))
(8)出没有使用天津产的零件的工程号码。
Select Jno from SPJ where Sno not in (select Sno from s where City='天津')
附加信息:
排序:
Order by [desc/asc](前一个是降序,后一个是降序)
Select top N [查询内容] from table_name order by desc[asc] (查询排名前N的数据)
带有Distinct关键字的SELECT语句用来消除重复行。
排名函数:
row_number
rank
dense_rank
内连接:
外连接:
sql语句替换表中内容
Select E.EmployeeID,JobCandidateID from HumanResources.Employee as E
[LEFT | RIGHT | FULL] outer join    HumanResources.JobCandidate as JC
on E.EmployeeID=JC.EmployeeID
交叉连接:
Select 查询内容列表 from A cross join B
自然连接:
Select 查询内容列表 from table_name_A JOIN  table_name_B ON A.ManagerID=B.EmployeeID
约束有以下类型:
主键约束(primary key)
唯一约束(unique)
外键约束(foreign key reference)
检查约束(check)
默认约束(default)
添加约束条件:
alter table Student add constraint ChkIDCardNo check (约束条件列表)
使用规则:
create rule RuleScore as @Score>=0 and @Score<=100  //创建规则
sp_bindrule RuleScore,Score.Score      //绑定规则
查看数据库关于数据库的信息象拥有者,大小,创建日期,和状态可由下例来查看:
Sp_helpdb company
重命名数据库
sp_renamedb 'old_name', 'new_name‘
删除数据库
Drop database database_name
插入数据
insert employee[(参数列表)] values('xiaoxiao','济源')
删除表:
Drop table_name  或者 Truncate table table_name(后一个不激活触发器)
添加列:
Alter table table_name add 列名 数据类型 [not null,约束条件]
从其他表中的到数据,添加到另一个表中(表必须存在)
insert studentbak select * from student where StudentNo<='180107105'
从其他表中得到数据,添加到新表中(新表不能存在)
select * into New_tableName from old_tableName  where Score>=80
修改表中数据:
UPDATE table_name SET column_name = value[,column_name = value] [FROM table_name] [WHERE condition]
例如:
update score set Score=80 from student where student.StudentNo=score.StudentNo and StudentName='孙小刚' and CourseNo=2
/****************分组汇总********************/
显示列表:聚合函数 或者 分组依据
针对原始数据进行的筛选:where
针对组进行的筛选:having
select 聚合函数 或者 分组依据
from
where 针对原始数据的条件
group by 分组依据
having 针对组的条件
order by 排序依据
/******************带明细的汇总***************/
显示列表:聚合的列表必须在前面出现
select 聚合函数 或者 分组依据

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。