• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

The operations in SQLServer2005(SQL)

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

虽然现在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 //按照自己的设<strong style="color:transparent">来源gaodai#ma#com搞@代~码$网</strong>定

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

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<param.length; i++){                   pstm.setString(i+1,paran[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 age20	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 usersselect  name as ‘姓名’,ageas 年龄,id as ‘编号’from usersselect  ‘姓名’ =name , 年龄= age,id as ‘编号’from usersselect age+3 as 年龄 from users

//聚合函数

     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_EmployeeGroup 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(casewhen A>B then A else Bend),(casewhen B>C then B else Cend)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 Teamgroup by Name

//数据库的创建

if exsits(select  * from sys.database when [name]=’market’)drop database marketcreate database marketon(       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 employeecreate 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))

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:The operations in SQLServer2005(SQL)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址