SQL資料庫 儲存過程、索引、檢視與臨時表
--資料庫程式設計2.
--儲存過程 exec
--執行速度快:儲存過程是編譯之後的語句,儲存在資料庫的內容;儲存過程的操作只有一次。
--系統儲存過程
存放在master資料庫中,都以“sp_”或“xp_”開頭
exec sp_databases
exec sp_renamedb 'studentmanager','sm'--修改資料庫的名稱
exec sp_columns a--查看錶a 列的資訊
use sm
exec sp_tablestable_stu8
--使用者自定義儲存過程
--無引數的定義儲存過程
--僅有輸入引數的儲存過程
create proc proc_add
@num1 int, --不加output 說明是輸入函式
@num2 int
as
declare @num int
set @
print @sum
go
exec proc_add 6,2
if exists(select *from sysobjects where name='proc_score2')
drop proc_score2
go
create proc proc_score2
as
declare @avgWritten float
declare @avgLab float
select @avgWritten=avg(writtenExam) from stuMarks
select @avgLab=avg(labExam) from stuMarks
print '筆試平均分:'+convert(varchar(20),@avgWritten)
print '機試平均分:'+convert(varchar(20),@avgLab)
if @avgWritten>=70 and @avgLab>=70
begin
print '成績情況:優秀'
end
else
begin
print '成績情況:不優秀'
end
select *from stuMarks where writtenExam<60 or labExam<60
go
--呼叫儲存過程
exec proc_score2
--可以指定預設值
select *from sysobjects
drop proc proc_score2
--既有輸入引數又有輸出引數
create proc proc_score3
@www float=60,
@qqq float=60,
@num int output,
@score float output
as
declare @avgWritten float
declare @avgLab float
select @avgWritten=avg(writtenExam) from stuMarks
select @avgLab=avg(labExam) from stuMarks
print '筆試平均分:'+convert(varchar(20),@avgWritten)
print '機試平均分:'+convert(varchar(20),@avgLab)
if @avgWritten>=70 and @avgLab>=70
begin
print '成績情況:優秀'
end
else
begin
print '成績情況:不優秀'
end
select *from stuMarks where writtenExam<@www or labExam<@qqq
select @num=count(*) from stuMarkswhere writtenExam<@www or labExam<@qqq
select @score=count(*) from stuMarkswhere writtenExam<@www or labExam<@qqq
go
--呼叫
declare @peoplenum int
declare @pscore int
exec proc_score3 60,60,@peoplenum output,@pscore output
print @peoplenum
---------------------案例
--0901班/0902班/0903班 寫一個儲存過程 擷取資料
create proc proc_split
@str varchar(100),
@head varchar(20) output,
@tail varchar(100) output
as
--查詢/的位置
declare @position int
set @position=charindex('/',@str)
if @position=0
begin
--說明傳入的只有一個班級
set @
set @tail=null
end
else
begin
--說明至少有兩個班級
set @head=substring(@str,1,@position-1)
set @tail=substring(@str,@position+1,len(@str)[email protected])
end
go
--呼叫
declare @head varchar(20)
declare @tail varchar(100)
exec proc_split '0901班/0902班/0903班',@head output,@tail output
print @head
print @tail
declare @head2 varchar(20)
declare @tail2 varchar(100)
declare @str1 varchar(100)
set @str1= '0901班/0902班/0903班/01班/02班/03班'
while @str1 is not null
begin
exec proc_split @str1,@head2 output,@tail2 output
print @head2
set @
end
--檢視只能針對於查詢語句來寫 試圖在做查詢跟表是一樣的 檢視是一張虛表 並不儲存資料 資料來自於真實的表
-- 不能做增刪改 只能做查詢
use sm
create view view_show--建立檢視
as
select *from table_student
go
--使用
select *from view_show
--臨時表一旦關閉 則不存在斷開資料庫連線時,臨時表自動刪除
create table #aa
(
id int primary key,
name varchar(20) not null
)
--索引 可以提高查詢速度 但是減慢了增刪的速度 類似於書籍中的目錄
--唯一索引
--主鍵索引
--聚集索引
--非聚集索引
--加索引的原則
1.建立索引依據 (非聚集索引)
where age>15 order by createtime desc
2.建立聚集索引(只能有一個),一般選取唯一的額列,列的大小長度儘量小
--建立索引
create clustered index index_lname
on A(lname) --在表A的lname列上建立索引
--使用索引
select *from A with(index=index_lname)
where lname='sasas'
相關推薦
SQL資料庫 儲存過程、索引、檢視與臨時表
--資料庫程式設計2. --儲存過程 exec --執行速度快:儲存過程是編譯之後的語句,儲存在資料庫的內容;儲存過程的操作只有一次。--系統儲存過程 存放在master資料庫中,都以“sp_”或“xp_”開頭 exec sp_databasesexec sp_r
資料庫-儲存過程(概念、優缺點、分類)
(1)概念: ① 儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集。經編譯後儲存在資料庫 中。 ② 儲存過程是資料庫中的一個重要物件,使用者通過指定儲存
Sql資料庫儲存過程傳值(傳遞資料表名,列名),sp_executesql函式的使用
遇到的專案需求是:對幾個不同的資料表和相應的欄位進行類似的操作,表的名稱和相關的列名可以作為儲存過程的引數傳遞,這樣可以使用遊標遍歷不同表格的不同的列,再使用相同函式求出返回值進行統一的處理。由於專案中表的資料龐大,關係複雜,此處做簡化處理,描述大致意思。(此處的資料庫是SQ
MySQL中Update、select聯用操作單表、多表,及檢視與臨時表的區別
一、MySQL中使用從表A中取出資料來更新表B的內容 例如:要update表data中的一些列屬性,但是修改屬性的內容來源是來自表chanpin。SQL語言中不要顯示的出現select關鍵字 update data d,chanpin c set d.zhulei=c.z
sql語句使用內嵌檢視與臨時表示例
某些時候,查詢需要將資料與其他一些可能只能通過執行 GROUP BY 然後執行標準查詢才能收集的資料進行聯接。例如,如果要查詢最新五個定單的有關資訊,您首先需要知道是哪些定單。這可以使用返回定單 ID 的 SQL 查詢來檢索。此資料就會儲存在臨時表(這是一個常用技術)中,然後
oracle查詢資料庫中儲存過程、索引、檢視等的數量
select count(1) from user_objects where object_type = 'PROCEDURE' select count(1) from user_objects where object_type = 'INDEX' select co
檢視、索引、儲存過程簡述與優缺點
1.檢視 (1).什麼是檢視? 檢視(View)作為一種資料庫物件,為使用者提供了一個可以檢索資料表中的資料方式。使用者通過檢視來瀏覽資料表中感興趣的部分或全部資料,而資料的物理儲存位置仍然在表中。 檢視是一個虛擬表,並不代表任何物理資料,只是用來檢視資料的視窗而已。檢視並不是以一組資料的形式儲存在
mybaits(查詢與別名、日誌框架顯示sql語句、物件屬性和資料庫表字段不匹配resultMap使用、mysql資料查詢分頁、執行sql和儲存過程、動態SQL語句)
主要是各種配置檔案,建議把整個專案搬到自己電腦上慢慢看。 建立maven專案 首先是各種配置檔案: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m
資料庫學習SQL Server 第三章 約束、索引和檢視
第三章 約束、索引和檢視@TOC 1.簡介 約束,比如說要求欄位非空,就是最簡單的非空約束; 表格阻止更改和重新建立的問題(工具–選項–設計–取消阻止保護) 2.CHEAK約束 表設計器,右鍵–選擇cheak約束,比如要求收入=工資+獎金的約束,若新增值的時候,
資料庫學習SQL Server 第三章 約束、索引和檢視
第三章 約束、索引和檢視@TOC 1.簡介 約束,比如說要求欄位非空,就是最簡單的非空約束; 表格阻止更改和重新建立的問題(工具–選項–設計–取消阻止保護) 2.CHEAK約束 表設計器,右鍵–選擇cheak約束,比如要求收入=工資+獎金的約束,若新增值的時候,不遵循chea
檢視、索引、儲存過程優缺點
1.檢視 (1).什麼是檢視? 檢視(View)作為一種資料庫物件,為使用者提供了一個可以檢索資料表中資料的方式。使用者通過檢視來瀏覽資料表中感興趣的部分或全部資料,而資料的物理儲存位置仍然在表中。 檢視是一個虛擬表,並不代表任何物理資料,只是用來檢視資料
【資料庫視訊】第五章 操作架構、索引和檢視
一.建立檢視 1.語法格式 CREATE VIEW view_name(view_column_name) AS query_expression [WITH CHECK OPTION] 方法:①通過圖形化介面建立檢視 新建檢視,新增表,定義需要檢視
資料庫物件檢視、索引、遊標、觸發器簡介
檢視 1.檢視概述 1) 檢視是什麼: 檢視是基於 SQL 語句的結果集的視覺化的表(虛擬表),一個檢視並不真正包含真實的資料,只是從另一個視角檢視或改變表裡的資料。 2) 檢視的作用: 檢視可以起到隱藏資料的功能,可以選擇性的顯示錶中的欄位和行(隱藏資料) 檢視可以將複雜的
SQL語法(十) 序列、索引、檢視
前言 本章將學習序列、索引、檢視的相關知識 範例 1.建立序列 --使用 create sequence 序列名 --特點1:預設開始是沒有值的,也就是指標指在了沒有值的位置。 --特點2:序列名.nextval每次執行都
sql語句---儲存過程、函式和觸發器
儲存過程、函式和觸發器的原理: 實際上都是使用Transact-SQL語言編寫的程式。儲存過程和函式需要顯式呼叫才能執行,而觸發器則在滿足指定條件時自動執行。 1、儲存過程 1.1 定義 儲存過程是Transact-SQL語句的預編譯集合,這些語句在一個名稱下儲
SQL Server儲存過程Return、output引數及使用技巧
SQL Server目前正日益成為WindowNT作業系統上面最為重要的一種資料庫管理系統,隨著 SQL Server2000的推出,微軟的這種資料庫服務系統真正地實現了在WindowsNT/2000系列作業系統一統天下的局面,在微軟的作業系統上,沒有任何一種資料庫系統能
【MYSQL筆記3】MYSQL過程式資料庫物件之儲存過程的呼叫、刪除和修改
mysql從5.0版本開始支援儲存過程、儲存函式、觸發器和事件功能的實現。 我們以一本書中的例題為例:建立xscj資料庫的儲存過程,判斷兩個輸入的引數哪個更大。並呼叫該儲存過程。 (1)呼叫 首先,建立儲存過程(procedure),名為xscj.compar delimiter $$ crea
建立表空間、建立表(子查詢建立表)、表的約束、事務、資料庫物件(檢視、序列、索引、同義詞)、PLSQL程式設計、(if,迴圈)、資料的匯入匯出備份
DDL語句管理表 DML管理表資料 1)語法: 建立 和 刪除 表空間 / 建立使用者 create tablespace 表空間的名稱 datafile '檔案路徑' //這個檔案是儲存在伺服器端的電腦上的
MySQL知識(十五)——儲存過程的呼叫、檢視、修改和刪除
2 呼叫儲存過程 儲存過程必須使用CALL語句呼叫,並且儲存過程和資料庫相關,如果要執行其他資料庫中的儲存過程,需要指定資料庫名稱,例如CALL dbname.procname。儲存函式的呼叫與MySQL中預定義的函式的呼叫方式相同。 呼叫儲存過程示
SQl中的UDF(使用者自定義函式)與儲存過程的區別、優點
UDF定義: 和儲存過程很類似,使用者自定義函式是一組有序的T_SQL語句,這些語句被預先優化和編譯,並且可以作為一個單元來進行呼叫。UDF和儲存過程的主要區別在於結果的返回方式。為了能支援多種的不同的返回值,UDF比儲存過程有更多的限制。 UDF和儲存過程的具體區別: 儲