Sql server 2008 的基础知识总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Sql server 2008 的基础知识总结

Finished by新浪微博@矢马特

1、SQL语句增加列、修改列类型、修改列、删除列

数据库SQL语言的修改语句,可以用来修改基本表,其一般表示格式为:

ALTER TABLE<表名>[改变方式]

改变方式:

· 加一个栏位: ADD "栏位 1" "栏位 1 资料种类"

· 删去一个栏位: DROP "栏位 1"

· 改变栏位名称: CHANGE "原本栏位名" "新栏位名" "新栏位名资料种类"

· 改变栏位的资料种类: MODIFY "栏位 1" "新资料种类"

由上可以看出,修改基本表提供如下四种修改方式:

(1)ADD方式:

用于增加新列和完整性约束,列的定义方式同CREARE TABLE语句中的列定义方式相同,其语法格式:

ALTER TABLE <表名> ADD <列定义>|<完整性约束>。由于使用此方式中增加的新列自动填充NULL值,所以不能为增加的新列指定NOT NULL约束。

(2)DROP方式:

用于删除指定的完整性约束条件,或删指定的列,其语法格式为:

ALTER TABLE<表名> DROP [<完整性约束名>]

ALTER TABLE<表名> DROP COLUMN <列名>

注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN <列名>)。

(3)CHANGE方式

用于修改某些列,其语法格式:

ALTER TABLE [表名] CHANGE <原列名> TO <新列名><新列的数据类型>--有错的EXECUTE sp_rename N'dbo.学生表.姓名',N'姓名','COLUMN' -—正确的

(4)MODIFY方式

用于修改某些列的数据类型,其语法格式:

ALTER TABLE [表名] MODIFY [列名] [数据类型]

2、备注:所有mssql中系统自带的函数

(1)日期和时间类型

---datatime 精确度三百分之一秒

alter table 学生表

add 创建时间 datetime default getdate()

insert into 学生表(学生班级,学生姓名,学生年龄,教师编号) values('一班','田七','22','2')

select * from 教师表

select * from 学生表

--1-- getdate( )函数:返回当前系统日期和时间

select getdate() as 当前时间

--2-- dateadd(datepart,number, date)函数:将指定的数值添加到指定的日期部分后的日期。//date需要用单引号标记

select dateadd(year,10,(select 创建时间 from 学生表 where 学生姓名='田七'))//获取时间,第三个参数减去中间的参数,以第一个参数为单位。

--3-- datediff(datepart,startdate,enddate) 函数:两个日期之间的指定日期部分的区别。

select datediff(month,getdate(),'2009-10-1')//后的的时间减去中间的时间以第一个参数为单位。

--4-- datename(datepart,date) 函数:日期中指定日期部分的字符串形式。

select datename(month,'2008-1-1')//以第一个参数的为单位获取该单位的数值select datename(year,(select 创建时间 from 学生表 where 学生姓名='田七')) --5-- datepart(datepart,date )函数:日期中指定日期部分的整数形式。

select datepart(day,getdate())//以第一个参数的为单位获取该单位的数值

select datepart(day,'2008-1-1')

--6-- year(date)函数:返回表示指定日期中的年份的整数

select year(getdate())

--7-- month(date)函数:返回代表指定日期月份的整数

select month(getdate())

--8-- day(date)函数:返回代表指定日期的天的整数。

select day(getdate())

(2)数值函数

--1-- abs(num_expr)函数 : 数值表达式的绝对值

select abs(-1)

--2-- ceiling(num_expr)函数:大于或等于指定数值表达式的最小整数

select ceiling(32.2)

--3-- floor(num_expr)函数:小于或等于指定表达式的最大整数

select floor(32.9)

--4-- power(num_expr,num_expr)函数:数值表达式的y次幂的值

select power(5,3)

select power((select 教师编号 from 学生表 where 学生编号='4'),(select 教师编号 from 学生表 where 学生编号='5'))

--5-- rand( )函数:大于或等于0,小于1之间的随机数

select rand()

select floor(RAND()*100)//获取100以内的一个随机数

--6-- round(num_expr)函数:将数值表达式四舍五入为指定精度

select round(123.456,2)//还会保留0,其结果为123.450

(3)字符串函数

--1-- ASCII( )函数 : 返回字符表达式最左端字符的ASCII值

select ascii('abc')

--2-- char( )函数 : 将0-255之间的整数转化为字符,超出范围返回NULL

select char(97)

--3-- lower( )函数 : 把字符串全部转化为小写

select lower('abcDEF')

--4-- upper( )函数 : 把字符串全部转化成大写

select upper('sdasdDD')

--5-- ltrim( )函数 : 将字符串头部的空格去掉

select ltrim(' abc')

select ltrim((select 学生姓名 from 学生表 where 学生编号='6'))//错误的

insert into 学生表(学生班级,学生姓名,学生年龄,教师编号) values('一班',' aaa ',22,2)

insert into 学生表(学生班级,学生姓名,学生年龄,教师编号) values('一班',' bbb ',24,1)

select * from 学生表

--6-- rtrim( )函数 : 将字符串尾部的空格去掉

select rtrim('abc ')

select rtrim((select 学生姓名 from 学生表 where 学生编号='6'))

---- 注:在许多情况下需要得到头尾都没有空格的字符串,则将上两个函数嵌套使用

select rtrim(ltrim(' 前后无空格 '))

--7-- left( )函数 : 返回部分字符串,子串是从字符串最左边起到第n个字符的部分select left('abcdef',3)

--8-- right( )函数 : 返回部分字符串,子串是从字符串右边第n个字符到最后一个字符的部分

select right('abcdef',3)

--9-- substring( )函数 : 返回部分字符串,子串是从字符串左边第n个字符起m个字符长度的部分

select substring('abcdefgh',3,4)

--10-- replace( )函数 : 用第三个表达式替换第一个字符串表达式中出现的所有第二个

给定字符串表达式。

select replace('acbcabc','ab','13')

--11-- stuff( )函数 : 删除指定长度的字符并在指定的起始点插入另一组字符。

相关文档
最新文档