1. 程式人生 > >SQL資料庫中 一些常使用的約束 排序 系統函式的用法 與聯合主鍵

SQL資料庫中 一些常使用的約束 排序 系統函式的用法 與聯合主鍵

尷尬

--常用的約束
create table bbsReply
(
Rcontents varchar(30) check(len(Rcontents)>6),--規定長度大於6
Ttime datetime default(getdate()),
TlastReply datetime check(TlastReply>Ttime), --規定時間TlastReply晚於Ttime
remark text null--可輸入填寫



alter table bbsUsers
add constraint df_bbsUsers_password default(888888)for Upassword, --預設為888888
constraint ck_bbsUser_email check(Uemail like '%@%')--模糊匹配 檢查約束 必須還有字元@@


alter table userInfo
add constraint CK_userinfo_tele check(telephone like '0[1-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
or telephone like '1[34578][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
constraint CK_savingType check(savingType in ('活期','定期','定活兩便')) --該列取值 用in

--聯合主鍵
create table table_stu8
(
id int,
num int,
stuNo char(10) unique,
constraint PK_t primary key(id,num)
)
select *from table_stu8


 

use studentmanager
select *from table_test
--排序
select *from table_test order by id --預設是升序
select *from table_test order by id asc --是升序
select *from table_test order by id desc --是降序


select top 3*from table_test order by id asc --取升序的前三條
select top 20 percent*from table_test order by id asc --取升序的前百分之二十
--多列排序
select student as 學員編號,Score as 成績 from score where Score>60 order by Score,CourseID--先按Score排序 再按CourseID排序

--系統函式的用法
--字串函式
select charindex('accp','my accp course',1) --查詢子字串在父的位置 得出的值是4 在'my accp course'中找'accp' 1說明在第一個位置開始找 
select len('sasas s 是222')--查詢字元的長度
select datalength('sasas s 是222')--查詢位元組的長度
select lower('HELLO')--轉換成小寫
select upper('hello')--轉換成大寫
select ltrim(' 周 三  ')--去掉左側的空格
select rtrim(' 周 三  ')--去掉右側的空格
select ltrim(rtrim(' 周 三  '))--去掉左右空格
select right('買啊·阿拉基弄',3)--往右擷取三個
select left('買啊波·阿拉基弄',3)--往左擷取三個 
select SUBSTRING('hello everyone',3,2)--從第三個開始擷取 擷取兩個
select replace ('買啊波·阿拉基弄','啊','學') --把‘啊’換成‘學’替換的方法(可以用來去掉所有的空格)
select stuff ('ABCDEFG',2,3,'我的音樂我的世界')--結果為‘A我的音樂我的世界EFG’


--日期函式
select getdate()--獲得系統時間
select dateadd(mm,4,'99-01-01')--日期的加法 mm-月份 qq-季度 yy、yyyy-年 dd、d是日
select dateadd(mm,3,dateadd(yy,4,'99-01-01'))
select datediff(mm,'99-01-05','99-08-06')--日期差 mm表示的是月份差值後面減前面
-- datename datapart
--數學函式
-- abs 去數值的絕對值
-- ceiling floor power round sign sqrt
--系統函式
--轉換函式
select convert (varchar(20),200)  --將整型的200 轉換成字串的型別
select cast (200 as varchar(20))

print '這是一個數:'+convert (varchar(20),200)

--------攜著一股什麼也不服的勁在活著