資料庫の函式
一、內建函式--
字串函式
1、--ascii 返回字串的首字母的
ascii
編碼select ascii('ame')
select ascii(xingming)from xuesheng--查詢語句中的格式
select*from haha where ascii(name)>200--查詢表中
ascii
碼大於2、--chae 將
ascii
碼轉換成對應的字元
select char(13)--在
ascii
碼中代表回車鍵
,顯示空格
select char(202)--不同於,代表沒有
select char(age)from haha--在查詢語句的格式
3、--charindex 查詢字串,返回符合條件的首字母的索引,索引從1開始,返回0表示沒查詢到
select charindex('efg','abcdefghijklmnopqrstuvwxyz')--返回字串首字母的索引
select charindex('199',cid) from haha--索引從1開始,返回表示沒查詢到
4、--concat字串拼接
2012
版本才可以用
5、--select concat('abc'+'bcd')同
select('abc'+'bcd'+'efg')
6、--difference 比對,返回相似度(,,,,)各佔
%,相似度高
%返回,相似度低%返回
select difference('abcefgr','ab')
7、 --format 將字串格式化
2012
版8、--left 從左往右擷取字串指定長度,返回
int值,相當與
substring
擷取功能
select left('abcdefgh',4)
select left(cid,14)from haha--列名相當於變數名,語句相當於
for迴圈,一句一句執行,
9、--len 返回擷取字串長度
,前面空格保留,後面的空格自動捨去,相當於
lengths
select len(' 1234 ')
10、--lower 將大寫字母轉換為小寫
select lower('abcdefg')
11、--ltrim 去除左邊的空格,也就是字串前面的空格,相當於
trimstart
select ltrim(' b abcdne ')
12、--patindex 查詢字串和數字
,索引從開始,查詢字串第一次出現的起始位置(要查詢的字串前後加%)
select patindex('%j%','abcdefghijklmn')
select patindex('%67%','12345656787')
13、--replace 替換需要三個引數
(目標字串,要替換的目標字元段,替換後的內容
)select replace(cid,'606','103') from haha
以上這些函式只是在顯示時改成我們想要看到的結果,但不對原資料造成任何影響。
select replicate('abc',3)
14、--reverse 翻轉字串
select reverse('abcdefghijklmn')
select reverse(name)from haha
15、--right 從右往左按指定個數返回字串
select right(' abschge',3)
16、 --1rtrim 去除右邊的空格
select rtrim(' abndc asn sd ')
17、 --space 列印空格,括號裡面寫幾就列印幾個空格
select 'a'+space(10)+'b'
18、--str 將乙個小數轉換為字串,第乙個引數是字串的原資料,第二個引數是保留字串的長度(包含小數點),第三個引數是擷取小數點後幾位
select str(2131.23123,7,3)
19、--stuff 在字串中插入指定字串(刪除指定索引位置開始的指定長度字元,之後在指定索引處插入指定字元)
--第乙個引數是原始字串,第二個引數是索引開始的位置,第三個引數是指定刪除的長度
--第四個引數是指定輸入的字串
select stuff('abc1234',4,0,'helloworld')
20、--1substring 內有從指定索引處擷取指定長度的字串
select substring(cid,7,8)from haha
21、--1upper 字串全部大寫
select upper('abnsdkf')
重點記憶:upper全部大寫、lower全部小寫、substring擷取字串、len擷取字串的長度、rtrim從右往左去空格,ltrim從左往右去空格,charindex查詢字串,返回符合條件的字串的索引
二、時間日期函式
1、select @@datefirst--2個@開頭的是系統常量,返回的是今天週幾
2、--1dateadd 給指定日期加入乙個時間段,第乙個引數是表示加入資料的型別,第二個引數是加入的資料,第三個引數是指定日期時間
select dateadd( year,2 ,'2006-7-31')
3、 --1求時間差,可以指定型別;第乙個引數是指定日期型別,第
二、三個引數是指定日期時間
select datediff(year,'2011-7-31','2014-11-2')
4、 --datename(返回的是字串)返回某個時間值裡面,想得到的某塊型別的數,比如年月日 可以單獨獲取年或者月或者日
select datename(weekday,'2014-11-2')
5、--1datepart(返回的值是int型別)從周天開始計算是第一天
select datepart(weekday,'2014-11-25')
select datepart(week,'2014-5-15')
6、--day 返回該日期的時間是當月的某一天,返回int值
select day('2014-11-25')
7、--1getdate 獲取當前資料庫所在伺服器的日期時間
select getdate() as 普通
8、--isdate 判斷輸入的使其時間是否正確,正確返回1,錯誤返回0;
select isdate('2013-2-29')
9、 --取時間值的月份
select month('2014-2-15')
10、-- 獲取系統時間
select sysdatetime()
11、 --獲取年份
select year('2014-7-11')
三、------型別轉換,轉換函式------
--三種轉換方式 pause convert cast
1、cast
select cast(123 as varchar(20))
select cast(123 as int)
select cast(123 as decimal(18,2))
select cast('12.3')as decimal(18,2)
2、--convert 前面寫型別,後面寫目標資料
select convert(int,'12.3')
3、--pause 2012版
select pause()
練習題:擷取學生的身份證資訊中的年月日
select*from xuesheng
alter table xuesheng add id varchar(20)
update xuesheng set id ='370305199202152341'
方法1:select xingming,stuff(substring(id,7,6),5,0,'年')+'月'+substring(id,13,2)+'日'from xuesheng
方法2:select xingming, substring(id,7,4)+'年'+substring(id,11,2)+'月'+substring(id,13,2)+'日'as '生日'from xuesheng
update xuesheng set id1 ='2023年02月15日'
Sql Server 基礎語法
1.新增乙個非空型別的字段,需要加預設值,否則會報錯 alter table demo1 dbo cities add testtime datetime not null default getdate getdate 獲取當前時間 2.修改列名 if exists select from sys...
SqlServer基礎 約束
為了減少輸入錯誤和保證資料庫資料的完整性,可以對欄位設定約束,例如考試成績,其範圍應該為0 100。約束是為了保證資料的完整性而實現的一套機制,約束包括 主鍵約束 外來鍵約束 unique約束 check約束 預設值和允許空六種機制。主鍵約束 這個不用多說了,設定主鍵就是保證列中的值的唯一不重複。外...
SQL Server 基礎概念集
8 服務 當安裝好sql server 後,其實是在系統中加入了許多服務應用程式,彼此分工合作,配合完成各種資料處理,了解這些服務的作用,會有利於更好的使用和管理 sql server 具體的說明如下表 所示。sql server 2000的各種服務和功能說明服務 名稱檔案 名服務說 明mssqls...