Sql server 2008 的基础知识总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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( )函数 : 删除指定长度的字符并在指定的起始点插入另一组字符。