sql 基礎語法:
創建資料庫:
CREATE DATABASE 資料庫名
on
(
name ='資料庫名',--主檔案邏輯名稱
filename='資料庫檔案位置', --主檔案存放位置
size = 5,--主檔案初始大小
filegrowth= 10% --主檔案增長方式
)
log on
(
name='日志檔案名',--日志檔案的邏輯名稱
filename= '日志檔案位置',--日志檔案的位置
size= 5, --日志檔案的初始大小
filegrowth= 10% --日志檔案的增長方式
)
約束:
1.primary key 主鍵約束
2.identity 自增約束 一般用于主鍵
3.check check約束 限制列中的值的范圍
4.not null 非空約束
5.default 默認值約束
邏輯運算式:
and :并且 如 (運算式一) and (運算式二)
or :或者 如 (運算式一) or (運算式二)
not :取反 如查找 age不為20的人 not(age=20)
插入陳述句
一次插入一行資料
insert into 表名稱 (列名稱一,列名稱二,列名稱三,…)
values (列一對應的值,列二對應的值,列三對應的值,…)
一次插入多行
INSERT INTO table1 (列一,列二,列三)
SELECT(‘aa’,b,c)union
SELECT(‘bb’,d,0)union
SELECT(‘dd’,s,1)
洗掉陳述句
洗掉一條資料
delete from 表名稱 where 列的值=‘想要洗掉的值’
洗掉一張表的資料
delete table 表名稱
修改陳述句
update 表名稱 set 列名稱1=‘修改的值1’,列名稱2=‘修改的值2’
查詢陳述句
查詢一個表的資料
select * from 表名稱
查詢一個表中的任何一列的資料
select 列名稱1,列名稱2,from 表名稱
查詢一個表中一條資料
select * from 表名稱 where 列名稱=‘值’
order by 子句:對結果集排序 ,asc表示升序,desc表示降序,默認的是升序 asc
distinct 去掉重復的資訊 select distinct 列名稱 from 表名稱
as關鍵字 改列名稱 select 列名稱1 as 姓名,列名稱2 as 年齡 from 表名稱
查詢一個表中固定的幾行資料
select top 2(寫幾就回傳多少行 可以把2換成 50 percent:回傳百分之50的資料) * from 表名稱
sql內置函式
CharIndex(‘ab’,‘cdab’)回傳3 回傳’ab’ 在’cdab’中的位置,回傳第一個字母的位置
Len(‘我是誰’)回傳3 回傳字串的長度
Upper(‘abc好’) 回傳ABC好 轉換字母為大寫
Replace(‘abb’,‘b’,‘z’) 回傳 ‘azz’ 把b換成z
日期函式
GetDate() 回傳電腦當前時間
DareAdd(mm,2,‘2009-10-08’) 像日期指定部分添加資料 yy年 mm月 dd日 hh時 mi分 ss秒
DateDiff(dd,‘2009-09-09’,‘2010-09-09’)回傳365 回傳兩個日期中的日 dd換成mm就是12
DateName(DW,‘2009-09-09’)回傳星期三 字串的形式回傳某個日期的指定部分
數學函式
Abs(-1) 回傳:1 求絕對值
Ceiling(24.1) 回傳:25 大于24.1的最小的整數
Floor(24.1) 回傳:24 小于24.1的最小的整數
Power(2,3)回傳:8 計算2的3次方
Round(748.32,1)回傳:748.30 回傳一個數值,舍入到指定長度或精度
Sign(100) 回傳:1 正整數回傳1 負整數回傳-1
Sqrt(4) 回傳:2 開平方
系統函式
Convert(varchar(3),123) 回傳:123 轉換資料型別
DateLength(‘12中國’) 回傳:6 回傳任何資料型別的位元組數 “中國”是漢字,一個漢字等于2個位元組 所以回傳 6
模糊查詢
select * from 表名稱 where name like ‘_e%’ 得到一個條資料 name列第二個字母等于e的這一條資料
select * from 表名稱 where name like ‘%e[a,b,c,d]’ 得到一個條資料 name列最后個字母不等于(a,b,c,d)的這一條資料
聚合函式
SUM() 回傳選取結果所有值的總和
MAX() 回傳選取結果所有值中的最大值
MIN() 回傳選取結果所有值中的最小值
AVG() 回傳選取結果所有值的平均值
CUNT() 回傳選取結果集中行的數目
多表連接查詢
select 表1.列1,表1.列2,
表2.列1,表2.列2,
from 表1 inner join 表2
on 表1.列1=表2.列1
where 表1.列1 in(‘表1的列1’,‘表2的列1’)
and 表2的列2 like ‘c%’
左外連接:left Outer join 右外連接:Righte Outer join 全外連接:Full Outer join
sql 高級語法:
declare @varname DateType @varname為區域變數,declare為宣告變數 DateType為資料型別
SET @varname=value SELECT @varname=value 左邊兩種都是將確定value值賦給@varname
全域變數
@@ERROR 回傳執行的上一行 Transact-SQL 陳述句的錯誤號
@@IDENTITY 回傳最后插入的標示值
@@ROWCOUNT 回傳上一陳述句影響的行數,如果行數大于20億,使用ROWCOUNT_BIG
輸出陳述句
PRINT 區域變數或者字串
流程控制陳述句
IF 條件
陳述句塊
else
陳述句塊
IF 條件
BEGIN
陳述句塊
END
ELSE
BEGIN
陳述句塊
END
BEGIN END 相當于c#語言中的if陳述句的( )
子查詢
select * from 表一 wher id=(select max(id) from 表二) 查出表一中id和表二中id對應的一整條資料
高級子查詢
in 用法:select * from Employ where empno in(select empno from Expertise group by empon having MAX(skillevel)>3) in后面的子查詢查出的是一個資料集 不能用= 只能用 in
not in 用法:就是反之 not in后面的子查詢的結果 與前面的父查詢不匹配的資料被查出來,
事物:
開始事物:BEGIN TRANSACTION 提交事物:COMMTT TRANSACTION 回滾事物:ROLLBACK TRANSACTION
select * from sysobjects 查詢表的資訊
系統存盤程序:
sp_stored_procedure 列出前環境中所有的存盤程序
sp_helptext 顯示默認值,未加密的存盤程序,用戶定義的存盤程序,觸發器或者視圖的實際文本
xp_cmdshell 使用DOS命令操作檔案或目錄
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/207052.html
標籤:java
上一篇:SQL陳述句實作水仙花數求取
下一篇:SQL第二章第三章
