MSSQL查询语句及示例(简单)

来源:互联网 发布:星球基地 mac版 编辑:程序博客网 时间:2024/06/06 07:26

应用sql语句
1.sql:Structured Query Language,结构化查询语言
Language:是一种数据库操作语言,遵循ANSI标准
    ms-sql:T-sql
    oracle:p-sql
Query:选择sql语句主要原因是查询功能强
Structured:主句、从句---同汉语一样(主谓宾定状补)
2.(按功能)分类:
DDL(对象管理):Create(创建对象) Drop(删除) Alter(修改)
DML(数据内容管理):Select(查询)   update(修改)   insert(添加)   del(删除)
DCL(访问权限管理):Grant(授权)   deny(拒绝)   revoke(回收)
3.具体应用:
数据库:Create database 库名     -------创建数据库
   Drop database 库名 -------删除数据库
   Alter database 库名 -------修改数据库

表: create table 表名
   (
   学号 int,
   姓名 nvarchar(10),
   性别 nvarchar(2),
   生日 datetime,
   籍贯 nvarchar(10),
   工资 money
   )    -------创建表
    
   select * from 表名 -------查询表内容

   select 姓名,工资 from 表名-----查询表中部分列
  
   select * from 表名
   where 工资 > 5000 -------查询工资大于5000

   select * from 表名
   where 工资 between 200 and 600 --查询工资大于2000小于6000

   select * from 表名
   where 姓名 like '张%' -------查询姓张
   注意:若是'张_',则是查询两个汉字
        若是'张%',则是查询多个汉字的


   insert 表名 values('1','里斯本','男','1980-1-12','北京','5000')
      -------向表中添加数据内容
   注意:列数相同,列顺序相同,类型相同,不清楚写什么 就用null补充

   update 表名 set 列名= -------修改某列内容为
   where 列名=   -------修改部分某列内容

   delete from 表名 -------删除表所有内容
   where 姓名=   -------删除表中部分内容

  

  

三、实例应用
create database 学员库

use 学员库

Create table 学生表
(
编号 nvarchar(10) primary key,
姓名 nvarchar(10),
英文名 nvarchar(20),
性别 nvarchar(4),
年龄 smallint,
入学成绩 smallint,
住址 nvarchar(50),
联系电话 varchar(10),
邮件地址 nvarchar(30),
所在班级 nvarchar(10),
班主任 nvarchar(10)
)


go

Insert into 学生表
Values('A06001','蔡依林','Marry','女','21','88','北京海淀','62335588','yiling@126.com','T132','罗老师')

Insert into 学生表
Values('A06002','刘德华','Tom','男','48','90','河北廊坊','77445566','dehua@sina.com.cn','T136','段老师')

Insert into 学生表
Values('A06003','成龙','Jackchen','男','52','50','北京丰台','88885555','Chen@sohu.com','T136','段老师')

Insert into 学生表
Values('A06004','尚雯杰','Wenjie','女','19','70','北京丰台','12345678','jie@sina.com.cn','T139','肖老师')

Insert into 学生表
Values('A06005','李宇春','Yuchun','女','23','72','河北廊坊','87456321','yuchun@163.com','T139','肖老师')

Insert into 学生表
Values('A06006','周润发','Runfa','男','55','92','北京海淀','88888888','runfa@sohu.com','T132','罗老师')

Insert into 学生表
Values('A06007','周星驰','Xingchi','男','53','82','北京海淀','13245687','xingchi@126.com','T136','段老师')

Insert into 学生表
Values('A06008','胡军','Jun','男','36','84','北京丰台','54378901','hujun@126.com','T132','罗老师')

Insert into 学生表
Values('A06009','刘亦菲','Yifei','女','19','86','北京海淀','68452134','yifei@163.com','T132','罗老师')

Insert into 学生表
Values('A06010','冯晓刚','Xiaogang','男','43','80','北京海淀','78546213','xiaogang@sohu.com','T139','肖老师')


Insert into 学生表
Values('A06011','张纪中','Jizhong','男','56','88','北京丰台','23414643','jizhong@sohu.com','T139','肖老师')

Insert into 学生表
Values('A06012','张艺谋','Yimou','男','54','68','北京海淀','63456724','yimou@sohu.com','T136','段老师')

Insert into 学生表
Values('A06013','徐克','Xuke','男','59','82','北京海淀','95642131','xuke@sina.com.cn','T136','段老师')

Insert into 学生表
Values('A06014','莫文蔚','Wenwei','女','30','68','河北廊坊','84737622','wenwei@sohu.com','T132','罗老师')


Insert into 学生表
Values('A06015','潘伟珀','Weibo','男','24','70','北京丰台','12443222','weibo@sina.com.cn','T132','罗老师')

Insert into 学生表
Values('A06016','梅婷','Meiting','女','31','70','北京丰台','85332343','meiting@126.com','T132','罗老师')

Insert into 学生表
Values('A06017','梁朝伟','Chaowei','男','41','82','河北廊坊','74332223','chaowei@163.com','T132','罗老师')

Insert into 学生表
Values('A06018','黄秋生','qiusheng','男','50','68','北京海淀','58655335','qiusheng@sina.com.cn','T139','肖老师')

Insert into 学生表
Values('A06019','梁咏琪','Yongqi','女','32','84','北京丰台','85322343','yongqi@sohu.com','T136','段老师')

Insert into 学生表
Values('A06020','古天乐','Tianle','男','33','88','北京朝阳','12356443','tianle@163.com','T139','肖老师')


go

create table 成绩表
(
编号 nvarchar(10) primary key,
姓名 nvarchar(10),
CNT smallint,
WIN smallint,
LINUX smallint,
SQL smallint,
VIR smallint
)

go

insert into 成绩表
values('A06001','蔡依林','88','64','80','90',NULL)

insert into 成绩表
values('A06002','刘德华','68','82','70',NULL,NULL)

insert into 成绩表
values('A06003','成龙','62','86','98','88',NULL)

insert into 成绩表
values('A06004','尚雯杰','70','90','88',NULL,NULL)

insert into 成绩表
values('A06005','李宇春','86','80',NULL,NULL,NULL)

insert into 成绩表
values('A06006','周润发','92','88','60',NULL,NULL)

insert into 成绩表
values('A06007','周星驰','100','82','50','60',NULL)

insert into 成绩表
values('A06008','胡军','66','60','76',NULL,NULL)

insert into 成绩表
values('A06009','刘亦菲','84','72',NULL,NULL,NULL)   

insert into 成绩表
values('A06010','冯晓刚','74','88',NULL,NULL,NULL)   

insert into 成绩表
values('A06011','张纪中','82','90','94','80',NULL)

insert into 成绩表
values('A06012','张艺谋','92','76','68',NULL,NULL)

insert into 成绩表
values('A06013','徐克','84','68',NULL,NULL,NULL)   

insert into 成绩表
values('A06014','莫文蔚','82','84',NULL,NULL,NULL)
   
insert into 成绩表
values('A06015','潘伟珀','60','90','66',NULL,NULL)  

insert into 成绩表
values('A06016','梅婷','98','98','72',NULL,NULL)
  
insert into 成绩表
values('A06017','梁朝伟','88','70','82','88',NULL)

insert into 成绩表
values('A06018','黄秋生','68','88','80',NULL,NULL)
  
insert into 成绩表
values('A06019','梁咏琪','70','62','60','80',NULL)

insert into 成绩表
values('A06020','古天乐','60','72','66',NULL,NULL)


1. 查询“成绩表”所有数据
select * from 成绩表

2.查询所有学生的cnt和win成绩
select cnt,win from 成绩表

3.查询所有学生的cnt和win成绩,列名显示中文
select cnt as 计算机与网络技术,win as Windows server 2003
from 成绩表

4.从学生表中选取出学生来源于哪些地区
select distinct 住址
from 学生表

5.从学生表中选取出所有入学成绩>=80的学生
select *
from 学生表
where 入学成绩>=80

6.从学生表中选取出所有入学成绩在70和80之间的学生
select *
from 学生表
where 入学成绩>=70 and 入学成绩<=80

select *
from 学生表
where 入学成绩 between 70 and 80

7.从学生表中选取出所有来自"河北廊坊","北京朝阳","北京丰台"的学生清单
select *
from 学生表
where 住址 in ('河北廊坊','北京朝阳','北京丰台')

8.从成绩表中选取出所有没有参加linux考试的学生名单
select 姓名
from 成绩表
where linux is null

9.从成绩表中选取出所有已经参加了linux考试的学生名单
select 姓名
from 成绩表
where linux is not null

10.从成绩表中查询所有学生的cnt成绩,并按cnt成绩升序排序
select 姓名,cnt as 计算机与网络技术
from 成绩表
order by 计算机与网络技术 asc

11.从成绩表中查询所有学生的cnt成绩,并按cnt成绩降序排序
select 姓名,cnt as 计算机与网络技术
from 成绩表
order by 计算机与网络技术 desc

12.从成绩表中删除周润发的成绩
delete from 成绩表 where 姓名='周润发'

/*
12.求出来自不同地点的学员的入学平均成绩
select 住址,avg(入学成绩) as 平均入学成绩
from 学生表
group by 住址

13.求出来自不同地点的学员的入学平均成绩,并降序排列
select 住址,avg(入学成绩) as 平均入学成绩
from 学生表
group by 住址
order by 平均入学成绩 desc

14.求出来自不同地点的学员的入学平均成绩,只显示平均成绩>=80的地区
select 住址,avg(入学成绩) as 平均入学成绩
from 学生表
group by 住址
having avg(入学成绩) >=80
*/可选作

0 0