데이터 베이스 MySQL 튜토리얼 The operations in SQLServer2005(SQL)

The operations in SQLServer2005(SQL)

Jun 07, 2016 pm 03:34 PM
s the

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


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

连接步骤

//前期准备

1

2

3

4

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 //按照自己的设定

로그인 후 복사

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

1

2

Class.forName(driver);

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

로그인 후 복사

//执行预编译

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

String sql ;

String[] param;

PreparedStatementpstm  = conn.prepareStatement(sql);

If(param!=null&?m.length>0){

         for(inti=0;i<param.length i pstm.setstring><br>

<br>

 

<p>执行查询:ResultSetrs = pstm.executeQuery();</p>

<p>执行更新:int result = pstm.executeUpdate();</p>

<p> </p>

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

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

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

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

<p> </p>

<p><strong>列的数据类型:</strong></p>

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

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

<p>varchar(n):最大长度为8000</p>

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

<p>datetime(时间类型):date</p>

<p>timestamp:时间戳,时间格式较全的格式</p>

<p>uniqueidentifier:唯一标示符(推荐做主键)</p>

<p><strong>主键的选择:</strong></p>

<p>1.      int(bigint)+标识列(自增字段)</p>

<p>2.      uniqueidentifier(GUID):<strong>业界主流</strong></p>

<p><strong>int自增做主键的优缺点:</strong></p>

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

<p>         缺点:效率低,数据导入导出时不便</p>

<p><strong>GUID做主键的优缺点<br>

</strong>         优点:效率高,数据的导入导出方便</p>

<p>         缺点: 占用空间大,不易读</p>

<p><strong>SQL语句</strong></p>

<p><strong> </strong></p>

<p><strong><u>◎插入语句</u></strong></p>

<p><strong>int自增做主键:</strong></p>

<p></p>

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">insert into users  values(‘ysjian’,22)--自增主键可以不给值

insert  into  users(name,age) values(‘ysjian’,22)--推荐带上列名

로그인 후 복사
로그인 후 복사

uniqueidentifier做主键:

1

2

insert into users  values(‘ysjian’,22)--自增主键可以不给值

insert  into  users(name,age) values(‘ysjian’,22)--推荐带上列名

로그인 후 복사

--表示不等于20

       

1

2

3

4

5

6

7

8

update  users  set  name=N’袁’  where age20

    update  users  set  name=N’袁’  where age!=20

       update  users  set  name=N’袁’  where age&gt;20 and age

 

<p><strong><u>◎删除语句</u></strong></p>

<p></p>

<pre class="brush:php;toolbar:false">       delete from users--清空表(注意delete后面不能加*)

       delete from users where age=20

로그인 후 복사

◎查询语句(重点)

1

2

3

4

select* from users

select  name as ‘姓名’,ageas 年龄,id as ‘编号’from users

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

select age+3 as 年龄 from users

로그인 후 복사

//聚合函数

  

1

2

3

4

5

Select  count(*)  from users

  Select  max(age)  from users

  Select  min(age)  from users

  Select  avg(age)  from users

  Select  from  users

로그인 후 복사

//排序

 

1

2

Select * from users order by age desc--按年龄降序

 Select * from users where age&gt;20 order by age asc--按年龄升序

로그인 후 복사

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

1

2

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

Select * from users where name like‘%袁%’--查询名字有”袁”字的数据

로그인 후 복사

//null(不知道)

1

2

3

Select * from users where name is null

Select null+1--结果为null

Select null+’123’--结果为null

로그인 후 복사

//分组查询

1

2

3

4

Select age ,count(*) from users group by age --查询的列名必须与分组一致,聚合函数不能出现在where子句中

(错)Select count(*) from users where count(*)&gt;5 group by age(错)--having子句是对分组后的信息过滤,能用的列是查询的列

(错)Select count(*) from users group by age having id&gt;5(错)

Selectage, count(*) from users group by age having age&gt;20 and count(*)&gt;5

로그인 후 복사

//限行查询

     

1

2

Select top 5 * from users order by age desc

Select top 5 percent * from users

로그인 후 복사

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

       

1

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

로그인 후 복사

 

//保持数据的唯一

     

1

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

로그인 후 복사

 

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

       

1

2

3

Select name,age from users

Union all--默认会将完全重复的数据合并,all可以阻止合并

Select name,5 from users2

로그인 후 복사

 

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

1

2

3

4

5

6

7

8

9

10

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

로그인 후 복사


//数据库函数

1

2

3

4

5

6

7

8

9

10

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

로그인 후 복사


//日期函数

1

2

3

4

Select getdate();--取得当前日期

Select daeAdd(day,5,getdate())--当前时间天数加3

Select dateDiff(day,’1990-08-02’,getdate())--1990-08-02距离当前时间的天数

Select datePart(year,getDate())--返回一个日期的特定部分

로그인 후 복사

//经典语句

1

2

3

Select dateDiff(year,FinDate,getDate()), count(*) from T_Employee

Group by dateDiff(year,FinDate,getDate())

Having count(*)&gt;2

로그인 후 복사


//类型转换

  

1

2

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

Select convert(datetime,’2012-11-23’),convert(varchar(50),123)

로그인 후 복사

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

1

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

로그인 후 복사

 

//单值判断

1

2

3

4

5

6

7

8

9

10

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

1

2

3

4

5

6

7

8

9

10

11

12

Select

(

case

when A&gt;B then A else B

end

),

(

case

when B&gt;C then B else C

end

)

From player

로그인 후 복사

//练习二

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

로그인 후 복사

//数据库的创建

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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%

)

로그인 후 복사


//表的创建

1

2

3

4

5

6

7

8

9

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)

)

로그인 후 복사


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

2개월 만에 휴머노이드 로봇 '워커S' 옷 개기 가능 2개월 만에 휴머노이드 로봇 '워커S' 옷 개기 가능 Apr 03, 2024 am 08:01 AM

2개월 만에 휴머노이드 로봇 '워커S' 옷 개기 가능

업계 최초 AI 스마트 스크린 카메라 '스카이워스 스마트 스크린 카메라 S50' 최초 출시 업계 최초 AI 스마트 스크린 카메라 '스카이워스 스마트 스크린 카메라 S50' 최초 출시 Nov 18, 2023 pm 06:43 PM

업계 최초 AI 스마트 스크린 카메라 '스카이워스 스마트 스크린 카메라 S50' 최초 출시

THE 통화는 어떤 통화에 투자할 가치가 있나요? THE 통화는 어떤 통화에 투자할 가치가 있나요? Feb 21, 2024 pm 03:49 PM

THE 통화는 어떤 통화에 투자할 가치가 있나요?

더샌드박스 코인의 최신 가격을 확인하는 방법은 무엇인가요? 더샌드박스 코인의 최신 가격을 확인하는 방법은 무엇인가요? Mar 05, 2024 am 11:52 AM

더샌드박스 코인의 최신 가격을 확인하는 방법은 무엇인가요?

The Graph 코인의 최신 가격을 확인하는 방법은 무엇입니까? The Graph 코인의 최신 가격을 확인하는 방법은 무엇입니까? Mar 05, 2024 am 09:55 AM

The Graph 코인의 최신 가격을 확인하는 방법은 무엇입니까?

Logitech 엔터프라이즈 데스크탑 구성 백서 Logitech 엔터프라이즈 데스크탑 구성 백서 Jul 24, 2024 pm 01:54 PM

Logitech 엔터프라이즈 데스크탑 구성 백서

The Graph 코인의 시장 가치를 확인하는 방법은 무엇입니까? The Graph 코인의 시장 가치를 확인하는 방법은 무엇입니까? Mar 13, 2024 pm 10:43 PM

The Graph 코인의 시장 가치를 확인하는 방법은 무엇입니까?

엑스박스 시리즈 x와 s 중 어느 것을 사야 할까요? 엑스박스 시리즈 x와 s 중 어느 것을 사야 할까요? Feb 03, 2024 am 09:48 AM

엑스박스 시리즈 x와 s 중 어느 것을 사야 할까요?

See all articles