SQL SERVER数据库基本操作

tech2023-08-30  88

SQL SERVER数据库基本操作

目录

1.SQL SERVER 2008 总结一(基础知识)

1.1 SSMS 操作

1.1.1   库的操作

1.1.2   表的操作

1.1.3  数据的操作

2.2 T-SQL操作

2.1.1   库的操作

2.1.2   表的操作

2.1.3  数据的操作

3.SOL SERVER 2008 总结三(SELECT查询)

3.1.显示所有行、所有列的数据

3.2.显示所有行、部分列的数据

3.3.显示部分行、所有列的数据

3.4.显示部分行,部分列的数据

3.5.修改查询结果中的列标题

3.6.限制结果集返回的行数

3.7.用WHERE实现条件查询

3.7.1绝对匹配 用=

3.7.2 模糊查询 用LIKE 和 %、_、__、[]组合

3.7.3比较运算符

3.7.4逻辑运算符

3.7.5 between  and

3.7.6in

3.7.7空置比较

3.7.9排序ORDER BY

3.7.10创建表,包括结构和数据

3.7.11 计算

4.SOL SERVER 2008 总结四(函数总结)

4.1 聚合函数

4.1.1 求和

4.1.2 求平均值

4.1.3 求最大值

4.1.4 求最小值

4.1.5 求记录行数

4.2 数学函数

4.2.1 求绝对值

4.2.2 四舍五入

4.2.3求随机数

4.2.4取整数

4.2.5求幂次power(x,y),计算x的Y次方

4.2.6计算开平方函数:sqrt()

4.2.7用PI表示

4.3字符串函数

4.3.1.求ASCII码,ASCII(字母),

4.3.2求字符,char(数值)

4.3.3查询字符函数LEN

4.3.4去空格

4.3.5.取子串函数

4.3.6. 大小写转换

4.3.7替换子串函数

4.3.8字符串连接符:+

4.4日期时间函数

4.4.1.取系统时间函数:getdate()

4.4.2.去年份函数:year(日期)

4.4.3.取月度函数:month()

4.4.4.取日期函数:day()

4.4.5.取日期时间中任意部分

4.4.6.返回个日期之间的差。

4.4.7.日期加上数值,产生新的日期。Dateadd(日期元素,数值,日期)

4.4数据类型转换函数

4.4.1cast (数据as新类型)

4.4.2Convert(新类型,数据)


1.SQL SERVER 2008 总结一(基础知识)

学习数据库主要就是学习如何对数据进行增删改查操作

平时所说的数据库(DBMS数据库管理系统)实际上就是一款软件, 电脑上安装了这个软件,电脑就可以称为数据库服务器

常见的DBMS:

MySQL: Oracle公司产品, MySQL 08年被Sun公司收购,09Sun公司被Oracle收购. 目前市占率排名第一, 开源软件, 原MySQL创始人从Oracle离开创办MariaDB

Oracle: Oracle公司产品, 拉里埃里森32, 闭源产品, 性能最高价格最贵. 市占率排名第二

SQLServer: 微软公司产品,闭源产品, 市占率第三, 主要应用在微软的整套解决方案中

DB2: IBM公司产品,闭源产品 主要应用在IBM整套解决方案中.

SQLite: 轻量级数据库 安装包只有几十k,主要应用在移动设备或嵌入式设备中

网站开发整套解决方案:

网站= 开发语言(Java/php/.net)+webServer+操作系统(linux/windows/mac os等)+数据库(MySQL/Oracle/SQLServer....)

开源和闭源:

开源:开放源代码, 免费 盈利方式:通过卖服务 , 有技术大拿无偿维护升级

闭源: 不公开源代码, 盈利方式:通过卖产品和服务 , 有技术大拿攻击(但是闭源产品公司一般都比较有钱 养一群人维护升级)

学习数据库主要需要掌握一门语言 SQL(Structured Query Language) 结构化查询语言 用于程序员和数据库软件之间进行交流

SQL语言分类

DDL: 数据定义语言, 负责数据库和表相关的操作

DML: 数据操作语言, 负责对数据进行增删改查

DQL: 数据查询语言, 只负责查询

TCL: 事务控制语言, 负责处理事务相关

DCL: 数据控制语言, 负责创建用户及分配用户权限相关

 

1.1 SSMS 操作

1.1.1   库的操作

1. 创建库

光标定位于“数据库”à右键à新建数据库à输入库名:textà确定

2.修改库名

光标定位于要修改的库名textà右键à重命名à输入库名:good

注:修改库名后,原文件名不变。

3.分离库

光标定位于要分离的库名à右键à任务à分离(点“删除链接”)à确定

4.附加库

光表定位于数据库à右键à附加à寻找要添加的数据库à确定(刷新)

5.删除库

光标定位于要删除的数据库à右键à删除(点关闭现有链接)à确定

注:分离库于删除库的区别:

分离库文件依旧存在,文件名为分离的库名,删除库文件随之删除。

1.1.2   表的操作

1.创建表

光标定位于数据库中的表à右键à新建表à添加列名à点击保存à输入表名称à确定

2.修改表名

光标定位于要修改的表à右键à重命名

3.修改表结构

光标定位于要修改的表à右键-->设计à修改表à点击保存

注:若不能修改则点击工具à选项àDesignersà去掉“阻止保存要求重新创建表的修改”的对号à确定.

4.删除表

光标定位于要删除的表à右键à删除à确定

1.1.3  数据的操作

1.插入数据

光标定位于要插入数据的表à右键单击“编辑前200行”à插入数据à关闭

2.修改数据

光标定位于要插入数据的表à右键单击“编辑前200行”à修改数据à关闭

3.删除数据

光标定位于要插入数据的表à右键单击“编辑前200行”à右键删除数据à关闭

4.查询数据

光标定位于要插入数据的表à右键单击“编辑前1000行”à即可查询要查询的数据,此数据不可修改à关闭

 

2.2 T-SQL操作

2.1.1   库的操作

1.创建库

create database xs

on(name=xs,filename='c:\xs.mdf')

log on(name=xs_log,filename='c:\xs_log.ldf')

2.删除库

drop database xs

3.打开库(或切换库)

use xs 

2.1.2   表的操作

1.创建表

create table xsda

(

姓名 char(8),

学号 char(11),

性别 char(2),

年龄 int,

成绩 float

)

2.删除表

drop table xsda

3.修改表结构:字段名、类型、

修改表名

格式: rename table 原名 to 新名;

举例: rename table person to per;

添加表字段

最后面添加格式: alter table 表名 add 字段名 类型;

最前面添加格式: alter table 表名 add 字段名 类型 first;

在xxx字段的后面添加: alter table 表名 add 字段名 类型 after 字段名;

举例:

alter table per add gender varchar(5);

alter table per add id int first;

alter table per add hobby varchar(20) after name;

查看表字段

格式: desc 表名;

举例: desc per;

删除表字段

格式: alter table 表名 drop 字段名;

举例: alter table per drop hobby;

修改表字段

格式: alter table 表名 change 原名 新名 新类型;

举例: alter table per change id pid int;

 

2.1.3  数据的操作

1.插入数据

(1)所有字段

insert xsda values()

(2)部分字段

Insert stu(xh,xm)valuse()

如果执行以上SQL语句 报以下错误 在终端中执行 set names gbk; 回车 再次输入即可.

2.查询数据

(1)查询所有数据

select * from xsda

(2)查询部分数据

select * from xsda where xb=’’

3.修改数据

(1)所有数据

update xsda set xb=''

(2)部分数据

update xsda set xb=''where xm=’’

4.删除数据

(1)所有数据

delete xsda

(2)部分数据

delete xsda where xm=’’

3.SOL SERVER 2008 总结三(SELECT查询)

3.1.显示所有行、所有列的数据

select * from Student

3.2.显示所有行、部分列的数据

select stuno , stuname from Student

3.3.显示部分行、所有列的数据

select * from Student where ClassNO='20000001'

3.4.显示部分行,部分列的数据

select stuno , stuname from Student where ClassNO='20000001'

 

3.5.修改查询结果中的列标题

select StuNo 学号,ClassNo 班号,StuName 姓名, Pwd 密码 from student

select StuNo '学号',ClassNo '班号',StuName '姓名', Pwd '密码'from student

select StuNo as 学号,ClassNo as 班号,StuName as 姓名, Pwd as 密码 from student

select 学号= StuNo, 班号=ClassNo,姓名=StuName ,密码= Pwd from student

3.6.限制结果集返回的行数

select top 10 * from student

select top 10 percent * from student

3.7.用WHERE实现条件查询

3.7.1绝对匹配 用=

select * from  student where StuName='朱川'

3.7.2 模糊查询 用LIKE 和 %、_、__、[]组合

select * from  student where StuName='朱%'

select * from  student where StuName='%朱'

select * from  student where StuName='%%'

select * from  student where StuName=' _%'

select * from  student where StuName=' __%'

select * from  student where StuName='[朱]%'

3.7.3比较运算符

select * from StuCou where WillOrder<3

=

select * from StuCou where WillOrder =3

<

select * from StuCou where WillOrder <3

<=

>

>=

<>,!=

select * from StuCou where WillOrder !=3

select * from StuCou where WillOrder <>3

!<

select * from StuCou where WillOrder !<3

!>

说明:数字,不需要引号;其他需要单引号

3.7.4逻辑运算符

AND:与,并且

select * from StuCou where WillOrder=3 and CouNo='003'

O:或,或者

select * from StuCou where WillOrder=3 or CouNo='003'

select * from StuCou where WillOrder >=3 and WillOrder <=4

select * from StuCou where WillOrder >2 and WillOrder <5

NOT:非,不是

select * from StuCou where not WillOrder<3

select * from StuCou where WillOrder!<3

3.7.5 between  and

select * from StuCou where WillOrder between 3 and 10

包括3和10

相当于

select * from StuCou where WillOrder >=3 and WillOrder<=10

3.7.6in

select * from StuCou where WillOrder in(1,3,5)

相当于

select * from StuCou where WillOrder=1 or WillOrder=3 or WillOrder=5

select * from StuCou where CouNo in('001','003','005')

3.7.7空置比较

是空:select * from StuCou where RandomNum is null

非空select * from StuCou where RandomNum is not null

3.7.9排序ORDER BY

(1)升序:ASC 可以省略 默认为升序

select * from StuCou order by WillOrder ASC

select * from StuCou order by WillOrder 

(2)降序:DESC ,不能省略

select * from StuCou order by WillOrder desc

(3)多个字段排序

select * from StuCou order by StuNo desc, Willorder desc

 

3.7.10创建表,包括结构和数据

select * into xxx from StuCou

select * into yyy from StuCou 

select * from yyy

3.7.11 计算

select *,willorder*10'计算结果'from StuCou

select '2+5'算式,2+5结果

select *,'2+5',2+5 from StuCou

 

4.SOL SERVER 2008 总结四(函数总结)

 

4.1 聚合函数

4.1.1 求和

elect SUM(willorder) from StuCou

select SUM(willorder)'求和' from StuCou

4.1.2 求平均值

select avg(willorder)'平均值' from StuCou

4.1.3 求最大值

select max(willorder)'最大值' from StuCou

4.1.4 求最小值

select min(willorder)'最小值' from StuCou

4.1.5 求记录行数

(1)用字段名select count(willorder)'总行数' from StuCou

(2)用*:select count(*)'总行数' from StuCou

select SUM(willorder)'求和',max(willorder)'最大值',avg(willorder)'平均值',min(willorder)'最小值',count(willorder)'总行数'from StuCou

4.2 数学函数

4.2.1 求绝对值

select ABS(-12)

4.2.2 四舍五入

select ROUND(12.3456,3)

select ROUND(12.34556,3)

结果不一样

4.2.3求随机数

select RAND()

结果的范围是:0大1之间,不包括0和1

4.2.4取整数

(1)取比原数大的整数

select CEILING(1.123)

select CEILING(100*RAND())

结果是1到100,包含1和100

(2)随机取数

select CEILING(57*RAND())

(3)去比原数小的整数

select FLOOR(123.123)

select FLOOR(100*RAND())

结果是0到99,包含0和99

4.2.5求幂次power(x,y),计算x的Y次方

select POWER (10,3)

4.2.6计算开平方函数:sqrt()

select SQRT (4)

4.2.7用PI表示

  select PI ()

  半径为5圆的面积

 select POWER (5,2) *PI ()

4.3字符串函数

4.3.1.求ASCII码,ASCII(字母),

  select ASCII ('a')

4.3.2求字符,char(数值)

   select CHAR(97)

4.3.3查询字符函数LEN

select LEN ('学员')

注:计算前面,中间的空格,不计算字符串最后的空格

select *,LEN (stuname) from Student where (stuname)=2

4.3.4去空格

(1).去左侧ltrim(字符串)

select LEN (LTRIM('  学院'))

(2)去右侧rtrim(字符串)

select LEN (RTRIM ('  学院'))

(3)去左右侧 rtrim(ltrim(字符串))

select LTRIM(rtrim (' 学院'))

4.3.5.取子串函数

(1)取字符串左侧n个字符left(字符串,n)

select LEFT ('我喜欢你',4)

select * from Student where LEFT (StuName ,1)='王'

(2)取字符串左侧n个字符:left(字符串,n)

select right  ('我喜欢你',4)

select * from Student where right(StuName ,1)='

(3)取字符串任意字符串:substring (字符串n,m)

select substring  ('我喜欢你',3,2)

select * from Student where substring  (StuName ,1,1)='王'

select * from Student where substring  (StuName ,2,1)= '

4.3.6. 大小写转换

(1)大写—小写

 SELECT LOWER ('ABCDEF')  

(2)小写—大写

 SELECT UPPER ('abcdef')

(3)大写转小写

update Student set Pwd =LOWER (Pwd )

(4)小写转大写

update Student set Pwd =UPPER (Pwd )

4.3.7替换子串函数

Replace(原串,被替换子串,替换子串)

select REPLACE ('我喜欢你','校','院')

update Student set StuName =replace (StuName ,'丽','莉')

4.3.8字符串连接符:+

select '我'+'喜欢'+'你'

update Student set StuName =REPLACE (StuName ,'中国','')

update Student set StuName ='中国'+StuName 

select * from Student

去掉 update Student set StuName =replace (StuName ,'中国','')

select * from Student

4.4日期时间函数

4.4.1.取系统时间函数getdate()

select GETDATE ()

结果是字符串

4.4.2.去年份函数year(日期)

select year ('2018-5-3')

系统的年份select year (GETDATE ())

 

4.4.3.取月度函数month()

select month ('2018-5-3')

系统的月份select month(GETDATE ())

4.4.4.取日期函数day()

select day ('2018-5-3')

系统的日期select day(GETDATE ())

4.4.5.取日期时间中任意部分

1

select GETDATE ()

select DATEPART (YY,GETDATE ())

2

select GETDATE ()

select DATEPART (mm,GETDATE ())

3

select GETDATE ()

select DATEPART (dd,GETDATE ())

4

select GETDATE ()

select DATEPART (hh,GETDATE ())

 

4.4.6.返回个日期之间的差

1年之差datediff  (yy日期日期)

select DATEDIFF (yy ,'1998-08-08','2018-5-4')

2月之差datediff  mm, 日期日期

select DATEDIFF (mm,'1998-08-08','2018-5-4')

3日之差datediff  dd, 日期日期

select DATEDIFF (dd ,'1998-08-08','2018-5-4')

year\month\day\datediff  结果是整数

 

4.4.7.日期加上数值产生新的日期Dateadd(日期元素数值日期)

1select DATEADD (YY,10,'2018-05-04')

2select DATEADD (mm,10,'2018-05-04')

3select DATEADD (dd,10,'2018-05-04')

4select DATEADD (hh,10,'2018-05-04')

4.4数据类型转换函数

4.4.1cast (数据as新类型)

字符串转成整型

select CAST ('01234' as int )

整型转成字符串

          select CAST (01234 as CHAR  )

字符串转成日期

select CAST ('2001-2-1' as date)

日期转成字符串

select CAST (GETDATE() as CHAR )

 

4.4.2Convert(新类型,数据)

功能与cast相同,但格式写法不同

最新回复(0)