sql知识
SQL 基本知識
SQL Server 是Microsoft 公司推出的關系型數據庫管理系統。具有使用方便可伸縮性好與相關軟件集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的服務器等多種平臺使用。 Microsoft SQL Server 是一個全面的數據庫平臺,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 數據庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用于業務的高可用和高性能的數據應用程序。
簡單點一句話概括: 數據是具有一定意義的數字、字母、符號的統稱,數據庫就是存放數據的
回到頂部
vSql(Structured Query Language) server基礎
1.Sql server的組成:
主要數據庫文件:.mdf 特點:有且只有一個
次要數據庫文件:.ndf 特點:任意個
日志數據庫文件:.ldf 特點:至少一個
2.操作數據庫:
創建數據庫:create databse 庫名
查看所有數據庫:exec sp_helpdb
查看當前數據庫:exec sp_helpdb 庫名
使用數據庫:use 庫名
刪除數據庫:drop database 庫名 ps:正在使用的數據庫無法刪除
3.表的結構: 字段 數據類型(屬性)
4.數據類型:
整型
微整型 tinyint 1個字節
小整型 smallint 2個字節
整型 int 4個字節
大整型 bigint 8個字節
浮點型
float 不能精確存儲數值
real 不能精確存儲數值
decimal(numeric ) 同義,用于精確存儲數值
字符型
char 長度在1到8000之間 定長字符數據
varchar 長度在1到8000之間 變長字符數據
text 存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字符
時間日期型:datetime 年月日時分秒毫秒
貨幣型:money 精確到貨幣單位的千分之十。存儲大小為 8 個字節。存儲形式為12345.67
回到頂部
vsql server表
1.創建表的語法:
create table 表名
(
字段名稱1 數據類型[屬性],
字段名稱2 數據類型[屬性],
...
)
2.查看所有表語法: exec sp_help
3.查看當前表語法: exec sp_help 表名
4.修改表結構:
增加一列語法:alter table 表名 add 字段名 數據類型
刪除一列語法:alter table 表名 drop column 字段名
修改一列語法:alter table 表名 alter column 字段名 數據類型
刪除表語法:drop table 表名
5.操作表數據:
完全插入數據語法:insert into 表名(字段名1,字段名2...) values(值1,值2...)
省略插入數據語法:insert into 表名 values(值1,值2...)
部分插入數據語法:insert into 表名(字段名1,字段名2...) values(值1,值2...)
多行插入數據語法:insert into 表名 values(值1,值2...),(值1,值2...)
查看所有記錄語法:select * from 表名
查看部分記錄語法:select 字段名1,字段名2... from 表名
修改一條記錄語法:update 表名 set 字段名=值 [where條件]
刪除一條記錄語法:delete from 表名 where 條件
清空表所有記錄
delete from 表名
truncate from 表名 ps:至于他們的區別,我就不多介紹了,有興趣的可以看這里SQL Server中truncate、delete和drop的異同點
6.標識列 identity(初值,增值):
定義:能唯一區分表中的每一條記錄,且該屬性是自動增長的
特點
一個表中有且只有一個標識列
標識列不能編輯,不能更新
標識列數據類型只能是整型
標識列不為null
標識列不重復
作用:保證數據完整性
7.運算符:
sql server的運算符與其他語言不同,這里列舉三個
&&-----and
||-----or
!-----not
8.六大約束:
檢查約束 check 語法 check(條件)
默認約束 default 語法 default'默認語句'
非空約束 not null
唯一性約束 unique
主鍵 primary key
主鍵的值不能重復
一個表中有且只有一個主鍵
外鍵與主鍵相對應
主鍵類型可以是整型、字符型
語法:字段名 數據類型 primary key
外鍵 foreign key references
與主鍵相對應
外鍵的值一定在主鍵范圍之內
外鍵的值可以重復
語法:字段名 數據類型 foreign key references 主表名
注意事項:
在操作主表從表時:先刪除從表,再刪除主表,刪除數據,也要先從后主
在建立表時:要先創建主表,再創建從表,插入數據,先主后從
回到頂部
vsql server查詢
1.查詢符合條件的數據: select 字段名 from 表名 [where 條件]
2.之間的
and ... or
between ... and
例句:查詢23歲到25歲之間的學生
select * from student where age>=23 and age<=25
select * from student where age between 23 and 25
3.不顯示重復項:distinct select distinct 字段名 from 表名
4.前幾項 top select top n * from 表名
5.排序 order by + 字段名 asc升序 desc降序(默認情況下為升序) select * from student where age>25 order by name desc
7.列起別名as select id as 學生編號, name as 學生姓名 from student as a 注:實際語法中as可以省略
8.高級查詢(模糊查詢) like select 字段名 from 表名 where 字段名 like '通配符 值 通配符'
sql server 通配符
% 任意字符
[]范圍內任意字符
[^]非范圍內任意字符
9.聯合查詢 join
交叉查詢:select 字段名 from 表1 cross join 表2 [where 條件]
內連接查詢:select 字段名 from 表1 inner join 表2 on 聯合條件 [where 條件]
外連接
左外連接:select 字段名 from 表1 left join 表2 on 聯合條件 [where 條件]
右外連接:select 字段名 from 表1 right join 表2 on 聯合條件 [where 條件]
全外連接:select 字段名 from 表1 full join 表2 on 聯合條件 [where 條件]
多表連接:select 字段名 from 表1 inner join 表2 on 聯合條件 inner join 表3 on 聯合條件 [where 條件]
10.嵌套查詢(嵌套查詢都可以用聯合查詢完成),顯示的字段在一個表中,條件在另外一個表中
in() 在...范圍之內的
not in() 不在...范圍之內的
exists 存在
not exists 不存在
回到頂部
v系統函數
1.統計(聚合)函數
Transact-SQL編程語言提供下列聚合函數:
AVG 返回指定組中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
例:select count(prd_no) from sales
例:select prd_no,max(qty) from sales group by prd_no
例:select prd_no,min(qty) from sales group by prd_no
例:select prd_no,sum(qty) from sales group by prd_no
例:select count_big(prd_no) from sales
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup
例:select prd_no,binary_checksum(qty) from sales group by prd_no
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no
例:select stdev(prd_no) from sales
例:select stdevp(prd_no) from sales
例:select var(prd_no) from sales
例:select varp(prd_no) from sales
2.日期函數
getDate()獲取當前時間
Dateadd() 增加時間
datediff(datepart,startdate,enddate)
startdate 和 enddate 參數是合法的日期表達式。
datepart 參數可以是下列的值:
datepart 縮寫
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小時 hh
分鐘 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
納秒 ns
datepart(datepart,date)函數用于返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等,datepartd參數可以參見上表
datename(datepart,date)傳回代表指定 date 之指定 datepart 的字元字串
3.數學函數
abs()取絕對值
round()四舍五入
floor()函數返回小于或等于所給數字表達式的最大整數
ceiling()函數返回大于或等于所給數字表達式的最小整數
sqrt()開平方根
關于abs()/round()/...這些數學函數的demo可以在我的上篇博客中找到
4.字符串函數
left()左截串
right()右截串
ltrim()去左空格
rtrim()去右空格
replace(字符串,舊字符串,新字符串) 替換
substring(字符串,位置,長度) 截字符串 ps:sql中字符串下標從1開始
reverse()反轉
len()長度
upper()轉大寫
lower()轉小寫
回到頂部
vT-sql
1.聲明變量語法: declare @變量名 數據類型
給變量賦值
set @變量名=值
select @變量名=值
輸出變量 select @變量名
ps:若想輸出變量、聲明變量、變量賦值和變量輸出三條語句需一起執行
2.編程語句
begin...end
if...else
回到頂部
v視圖
1.創建視圖
create view 視圖名稱
as
sql中查詢語句
2.使用視圖 select * from 視圖名
3.查看視圖 exec sp_help
4.查看視圖內容 exec sp_helptext 視圖名
5.修改視圖 alter view 視圖名 as select * from 表名 [where條件]
6.刪除視圖 drop view 視圖名
7.修改視圖 update 視圖名 set 字段名=值 [where條件]
回到頂部
v存儲過程/觸發器/事務
1.sql server 存儲過程
復制代碼
create proc | procedure pro_name
[{@參數數據類型} [=默認值] [output],
{@參數數據類型} [=默認值] [output],
....
]
as
select ......
復制代碼
2.sql server 觸發器
insert觸發器
update觸發器
delete觸發器
關于sql server 觸發器這里就不多介紹了,更多詳情大家有興趣可以看這里
3.sql server 事務
關于sql server 事務這里就不多介紹了,更多詳情大家有興趣可以看這里
轉載于:https://www.cnblogs.com/Arther-J/p/5444145.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: SpringMVC+hibernate+
- 下一篇: RHEL7.0 配置网络IP的三种方法