0

0

The operations in SQLServer2005(SQL)

php中文网

php中文网

发布时间:2016-06-07 15:34:34

|

1191人浏览过

|

来源于php中文网

原创

虽然现在microsoft的产品sqlserver好像不太受欢迎(从我身边了解到的),这里就简单说说一些sqlserver的sql,其中很多是标准的sql语句,数据库通用的。 连接步骤 //前期准备 String driver =com.microsoft.sqlserver.jdbc.SQLServerDriver;URL: String url =jd


虽然现在microsoft的产品sqlserver好像不太受欢迎(从我身边了解到的),这里就简单说说一些sqlserver的sql,其中很多是标准的sql语句,数据库通用的。

连接步骤

//前期准备

String driver =com.microsoft.sqlserver.jdbc.SQLServerDriver;
URL: String url =jdbc:sqlserver://localhost:1433;databadeName=db_Blog;
USERNAME: String username = sa;
PASSWORD: String password = ysjian //按照自己的设定

//利用发射机制创建类的加载和连接

Class.forName(driver);
Connection conn =DriverManager.getConnection(url,username,passWord);

//执行预编译

String sql ;
String[] param;
PreparedStatementpstm  = conn.prepareStatement(sql);
If(param!=null&?m.length>0){
         for(inti=0;i

执行查询:ResultSetrs = pstm.executeQuery();

执行更新:int result = pstm.executeUpdate();

 

主键(primarykey):数据的唯一标识,不会重复的列做主键

1.      业务主键:使用有业务意义的字段做主键,如用户名,身份证号,银行账号等(不推荐)

2.      逻辑主键:使用无任何意义的字段做主键,因为很难保证业务主键不会重复,所以推荐使用逻辑主键

外键(foreignkey):在表与表之间建立联系的枢纽,标间关联

 

列的数据类型:

bit(0或1):相当于boolean类型的数据;

char(n):不可变的字符串,不足部分用空格填充

varchar(n):最大长度为8000

nvarchar(MAX):类似无限大,2^31-1

datetime(时间类型):date

timestamp:时间戳,时间格式较全的格式

uniqueidentifier:唯一标示符(推荐做主键)

主键的选择:

1.      int(bigint)+标识列(自增字段)

2.      uniqueidentifier(GUID):业界主流

int自增做主键的优缺点:

         优点:占用空间小,无需开发人员干预

         缺点:效率低,数据导入导出时不便

GUID做主键的优缺点
         优点:效率高,数据的导入导出方便

         缺点: 占用空间大,不易读

SQL语句

 

◎插入语句

int自增做主键:

insert into users  values(‘ysjian’,22)--自增主键可以不给值
insert  into  users(name,age) values(‘ysjian’,22)--推荐带上列名

uniqueidentifier做主键:

insert into users  values(‘ysjian’,22)--自增主键可以不给值
insert  into  users(name,age) values(‘ysjian’,22)--推荐带上列名

--表示不等于20

       

 update  users  set  name=N’袁’  where age<>20
	update  users  set  name=N’袁’  where age!=20
       update  users  set  name=N’袁’  where age>20 and age<30 or age=80
       update  users  set  name=N’袁’  where age  between 20  and 30

◎删除语句

       delete from users--清空表(注意delete后面不能加*)
       delete from users where age=20

◎查询语句(重点)

select* from users
select  name as ‘姓名’,ageas 年龄,id as ‘编号’from users
select  ‘姓名’ =name , 年龄= age,id as ‘编号’from users
select age+3 as 年龄 from users

//聚合函数

PDFlux
PDFlux

PDF内容提取+智能问答神器,结合了科研级精准的非结构化文档解析能力,以及ChatGPT的智能问答能力。

下载

  

     Select  count(*)  from users
       Select  max(age)  from users
       Select  min(age)  from users
       Select  avg(age)  from users
       Select  from  users

//排序

 

      Select * from users order by age desc--按年龄降序
       Select * from users where age>20 order by age asc--按年龄升序

//模糊查询(通配符’_’和’%’)

       Select * from users where name like‘袁_’--查询以”袁”开头后面有一个字符
       Select * from users where name like‘%袁%’--查询名字有”袁”字的数据

//null(不知道)

       Select * from users where name is null
       Select null+1--结果为null
       Select null+’123’--结果为null

//分组查询

Select age ,count(*) from users group by age --查询的列名必须与分组一致,聚合函数不能出现在where子句中
(错)Select count(*) from users where count(*)>5 group by age(错)--having子句是对分组后的信息过滤,能用的列是查询的列
(错)Select count(*) from users group by age having id>5(错)
Selectage, count(*) from users group by age having age>20 and count(*)>5

//限行查询

     

       Select top 5 * from users order by age desc
       Select top 5 percent * from users

//经典例子:按工资从高到低的排序检索从第六名开始一共五人信息

       

Select top 5 salary from employee where id not in(select top 5 id from users order by salary desc) order by salary desc

 

//保持数据的唯一

     

  Select distinct eName fromemployee--保持整行数据的唯一性

 

//联合查询,上下字段的个数必须一致,且数据类型相容

       

       Select name,age from users
       Union all--默认会将完全重复的数据合并,all可以阻止合并
       Select name,5 from users2

 

//(联合查询的运用)报表的制作

       Select ‘正式工最大年龄’,max(fAge) from T_employee
       Union all
       Select ‘正式工最小年龄’,min(fAge) from T_employee
       Union all
       Select ‘临时工最小年龄’,min(fAge) from T_tempEmployee
       Union all
       Select ‘临时工最大年龄’,max(fAge) from T_tempEmployee
       Select FNumber,FSalary from T_Employee
       Union all
       Select ‘工资合计’,sum(Fsalary) from T_Employee


//数据库函数

       Select ABS(-5)--绝对值5
       Select ceiling(5.2) --大于5.2的最小整数
       Select floor(-3.5)--小于-3.5的最大整数
       Select round(3.1415926,3)--四舍五入,指定取舍位3,结果为3.1420000
       Select len(‘abc’)--3
       Select lower(‘ABC’)--abc
       Select upper(‘abc’)--ABC
       Select ltrim(‘ china  ’)--china  
       Select rtrim(‘  china  ’)--   china
       Select substring(‘yuanshenjian’,3,5)--开始位置为3,长度为5


//日期函数

       Select getdate();--取得当前日期
       Select daeAdd(day,5,getdate())--当前时间天数加3
       Select dateDiff(day,’1990-08-02’,getdate())--1990-08-02距离当前时间的天数 
       Select datePart(year,getDate())--返回一个日期的特定部分

//经典语句

Select dateDiff(year,FinDate,getDate()), count(*) from T_Employee
Group by dateDiff(year,FinDate,getDate())
Having count(*)>2


//类型转换

  

       Select cast (‘123’asint),cast(‘2012-11-23’as datetime)
       Select convert(datetime,’2012-11-23’),convert(varchar(50),123)

//流控函数,如果FName为null,赋值为“佚名”

   Select  isnull(FName,’佚名’) as 姓名  from T_Employee

 

//单值判断

Select FName,
(
       case Flevel
       when 1 then‘普通客户’
       when 2 then‘会员’
       when 3 then‘VIP’
       else ‘未知客户类型’
       end--一定要加end
)as 客户类型
       from T_Customer


//l练习:表中有A,B,C三列,但A大于B时选A,否则选B,但B大于C时

选B,否则选C

Select
(
case
when A>B then A else B
end
),
(
case
when B>C then B else C
end
)
From player

//练习二

Select Name as 队名,
sum(
       case scores
       when ‘胜’ then 1
       else 0
       end
)as 胜,
sum(
       case scores
       when ‘负’ then 1
       else 0
       end
)as 负
from Team
group by Name

//数据库的创建

if exsits(select  * from sys.database when [name]=’market’)
drop database market
create database market
on
(
       name=’market.mdf’,
       filename=’E:\Microsoft\market.mdf’,
       size=5,
       maxsize=555,
       filegrowth=55
)
log on
(
       name=’market’,
       filename=’market.ldf’,
       size=5,
       maxsize=55,
       filegrowth=55%
)


//表的创建

if exists(select  * from sys.objects where[name]=’employee’)
drop table employee
create table employee
(
       eId varchar(5) not null primary key,
       eSex bit not null default(1),
       uidint not null identity
       pid varchar not null foreign key references employees(pId)
)


相关专题

更多
苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

115

2025.12.24

拼豆图纸在线生成器
拼豆图纸在线生成器

拼豆图纸生成器有PixelBeads在线版、BeadGen和“豆图快转”;推荐通过pixelbeads.online或搜索“beadgen free online”直达官网,避开需注册的诱导页面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

82

2025.12.24

俄罗斯搜索引擎yandex官方入口地址(最新版)
俄罗斯搜索引擎yandex官方入口地址(最新版)

Yandex官方入口网址是https://yandex.com。用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

546

2025.12.24

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

150

2025.12.24

php框架基础知识汇总
php框架基础知识汇总

php框架是构建web应用程序的架构,提供工具和功能,以简化开发过程。选择合适的框架取决于项目需求和技能水平。实战案例展示了使用laravel构建博客的步骤,包括安装、创建模型、定义路由、编写控制器和呈现视图。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

20

2025.12.24

Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

47

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

7

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

12

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

371

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

帝国CMS企业仿站教程
帝国CMS企业仿站教程

共17课时 | 1.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号