標準sql語句,學習

来源:http://www.cnblogs.com/mokeyish/archive/2015/12/31/5092756.html
-Advertisement-
Play Games

標準SQL語句總結標準SQL語句總結,標準SQL語言基本上適用於下麵所列出的資料庫軟體 ----------------------------------------------------------------------------- 資料庫軟體清單 A商業資料庫軟體如下 1.微軟的MS S...


標準SQL語句總結
標準SQL語句總結,標準SQL語言基本上適用於下麵所列出的資料庫軟體
-----------------------------------------------------------------------------
資料庫軟體清單
A商業資料庫軟體如下
1.微軟的MS SQL Server和Access
2.IBM的DB2,informax
3.Sybase的大型資料庫ASE,中小型資料庫ASA
4.甲骨文公司的Oracle8.0,oracle9i系列
5.Borland公司的InterBase
B多種開源免費資料庫

Mysql,PostgreSQL,SQLite、SimpleSQL、Berkely DB、Minosse、Firebird

(Mysql,PostgreSQL是目前使用最廣泛)
-----------------------------------------------------------------------------
最精簡短小的SQL語句
SQL分類:
DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)

1、說明:創建資料庫CREATE DATABASE database-name
2、說明:刪除資料庫drop database dbname
3、說明:
備份sql server
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
開始備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表drop table tabname
6、說明:增加一個列Alter table tabname add column col type
7、說明
添加主鍵: Alter table tabname add primary key(col)
刪除主鍵: Alter table tabname drop primary key(col)
8、
創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname

9、說明:
創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 範圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 範圍
更新:update table1 set field1=value1 where 範圍
查找:select * from table1 where field1 like ’%value1%’ ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
-----------------------------------------------------------------------------

--數據常用操作
SELECT --從資料庫表中檢索數據
INSERT --向資料庫表添加新數據
UPDATE --更新資料庫表中的數據
DELETE --從資料庫表中刪除數據
-----------------------------------------------------------------------------
--資料庫對象操作語句
CREATE TABLE --創建一個資料庫表
ALTER TABLE --修改資料庫表結構
DROP TABLE --從資料庫中刪除表

CREATE VIEW --創建一個視圖
ALTER VIEW --修改一個視圖
DROP VIEW --刪除一個視圖

CREATE INDEX --為表創建一個索引
DROP INDEX --從表中刪除索引

CREATE PROCEDURE--創建一個存儲過程
DROP PROCEDURE --刪除存儲過程

CREATE TRIGGER --創建一個觸發器
DROP TRIGGER --從刪除觸發器
-----------------------------------------------------------------------------
--數據許可權控制
GRANT --授予用戶訪問許可權
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問許可權
-----------------------------------------------------------------------------
--事務控制
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特征
-----------------------------------------------------------------------------
--資料庫函數,過程,觸發器腳本的SQL
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行準備SQL 語句
EXECUTE --動態地執行SQL 語句
DESCRIBE --描述準備好的查詢
-----------------------------------------------------------------------------
SELECT --從資料庫表中檢索數據

select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的範圍)
stockname like '[^F-M]%' --------- (^排除指定範圍)
--------- 只能在使用like關鍵字的where子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stock*** = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by列號
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查詢
--------- 除非能確保內層select只返回一個行的值,
--------- 否則應在外層where子句中用一個in限定符
select distinct column_name form table_name ---- distinct指定檢索獨有的列值,不重覆
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 將表按行分組,指定列中有相同的值
having count(*) = 2 --------- having選定指定的組

select *
from table1, table2
where table1.id *= table2.id ---- 左外部連接,table1中有的而table2中沒有得以null表示
table1.id =* table2.id -------- 右外部連接

select stockname from table1
union [all] ----- union合併查詢結果集,all-保留重覆行
select stockname from table2

-----------------------------------------------------------------------------
INSERT --向資料庫表添加新數據

insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value為select語句

-----------------------------------------------------------------------------
UPDATE --更新資料庫表中的數據

update table_name set
Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
where ***

-----------------------------------------------------------------------------
DELETE --從資料庫表中刪除數據

delete from table_name where Stockid = 3
truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全刪除表

-----------------------------------------------------------------------------
標準SQL統計函數
AVG --求平均值
COUNT --統計數目
MAX --求最大值
MIN --求最小值
SUM --求和

AVG代碼例子
use pangu
select avg(e_wage) as dept_avgWage from employee group by dept_id

MAX代碼例子--求工資最高的員工姓名
use pangu
select e_name from employee where e_wage =(select max(e_wage) from employee)
-----------------------------------------------------------------------------
標準SQL字元串函數

ASCII() --函數返回字元表達式最左端字元的ASCII 碼值
CHAR() --函數用於將ASCII 碼轉換為字元--如果沒有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數會返回一個NULL
LOWER() --函數把字元串全部轉換為小寫
UPPER() --函數把字元串全部轉換為大寫
STR() --函數把數值型數據轉換為字元型數據
LTRIM() --函數把字元串頭部的空格去掉
RTRIM() --函數把字元串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函數返回部分字元串
CHARINDEX(),PATINDEX() --函數返回字元串中某個指定的子串出現的開始位置
REPLICATE() --函數返回一個重覆character_expression 指定次數的字元串
select replicate('abc', 3) replicate( 'abc', -2)運行結果如下abcabcabc NULL
REVERSE() --函數將指定的字元串的字元排列順序顛倒
REPLACE() --函數返回被替換了指定子串的字元串
select replace('abc123g', '123', 'def')運行結果如下abcdefg
SPACE() --函數返回一個有指定長度的空白字元串
STUFF() --函數用另一子串替換字元串指定位置長度的子串


-----------------------------------------------------------------------------
標準SQL語法

局部變數和局變數
---局部變數 (以@開頭)
格式:declare @變數名 類型
--set @id = '10010001'
select @id = '10010001'

---全局變數 (必須以@@開頭)
格式:declare @@變數名 類型
代碼:select @@id = '10010001'

--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --列印字元串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'

--CASE
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*1.08
when job_level = ’2’ then e_wage*1.07
when job_level = ’3’ then e_wage*1.06
else e_wage*1.05
end

--WHILE
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --列印變數x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c --列印變數c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end

--WAITFOR
--例 等待1 小時2 分零3 秒後才執行SELECT 語句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 點零8 分後才執行SELECT 語句
waitfor time ’23:08:00’
select * from employee

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們都知道CHAR(integer_expression)將ASCII代碼轉換為字元。當integer_expression介於 0 和 255 之間的整數。如果該整數表達式不在此範圍內,將返回 NULL 值。這些都是官方資料介紹的。具體參考https://msdn.microsoft.com/zh...
  • 聚合函數在統計阿~彙總阿,都灰常的常用。但是有一個小點是要註意一下下的create table #Tmp(a int ,b int )insert into #Tmp(a,b) values (1,null),(null,null),(null,3),(2,4)select * from #Tmpa...
  • 首先非常榮幸成為王家林老師3000門徒之一,以後此博客將會記錄學習王家林老師每節課程的筆記,作業。本人郵箱:[email protected]電話:15737606315下麵是第一天的學習筆記一:關於scala的產生背景,解決了什麼技術問題(內容大部分來自網路,我只寫一些個人總結,以後皆如此)scal...
  • 一、PowerDesigner建立概念模型(.cdm) 概念模型主要集中在ER圖模型理論之上的,主要的三個元素:實體,屬性,聯繫,還有實體間的關係常用的聯繫Assication、Relationship、inherit,下麵舉例對概念模型和實體之間建立聯繫進行解釋和闡述。二、概念模型實例對三種實體....
  • 現象:在向資料庫中插入的數據有中文時,報如下錯誤原因是:電腦的系統預設編碼是gbk,而mysql客戶端提供的編碼方式是utf8,兩種編碼不一致導致的,查看當前mysql的編碼:show variables like 'character%';如下圖:解決方式是將mysql提供的客戶端編碼變為gbk設...
  • 1.操作系統版本用於安裝資料庫的操作系統鏡像文件名為:cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso安裝DataCenter(帶GUI)版本2.資料庫版本安裝的資料庫文件名為:10204_vista_w2k8_x64_prod...
  • 培訓SQLServer 嵌套事務PPT分享下載地址http://files.cnblogs.com/files/lyhabc/SQLServer%E5%B5%8C%E5%A5%97%E4%BA%8B%E5%8A%A1.ppt
  • 自增列我很少用,因為我覺得雖然插入數據的時候很方便,但是在一些特殊情況下會很麻煩。 其實事主已經採用了“yyyymmddhhmmssNNN”這種奇葩的格式,新一年是不是從001開始已經不重要了。可以的話還是讓他作一回死吧。
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...