SQL server 基本語句

--查詢數據庫是否存在

if?exists?(?select?*?from?sysdatabases?where?[name]='TestDB')

print?'Yes, the DB exists'

else

print?'No, need a new one?'

?

--新建一個數據庫

create?database?TestDB?on

(

????name?=?'TestData',

????filename?=?'G:\DBS\KeyTest.mdf',

????size?=?3,

????filegrowth?=?2

)

log?on

(

????name?=?'TestLog',

????filename?=?'G:\DBS\KeyTest.ldf',

????size?=?3,

????filegrowth?=?10

)

?

--drop database TestDB

?

use?TestDB

go

?

--新建一個表

create?table?[Scores]

(

????[ID]?int?identity(1,1)?primary?key,

????[Student]?varchar(20)?,

????[Subject]?varchar(30),

????[Score]?float

)

?

--drop table [Scores]

?

--修改表中的一列

alter?table?Scores?alter?column?[Student]?varchar(20)?not?null

?

--新增一列

alter?table?Scores?add?Birthday?datetime?

?

--刪除一列

alter?table?Scores?drop?column?Birthday

?

--往表中插入單條數據,方法:帶列名

insert?into?Scores(Student,Subject,Score)

values('張三','語文','90')

?

--往表中插入單條數據,方法:不帶列名,但要求值的類型要和列字段類型對應

insert?into?Scores

values('張三','英語','95')

?

--插入多條數據:union或者union all

insert?into?Scores(Student,Subject,Score)

select?'李四','語文','89'

union?all

select?'李四','英語','78'

?

--刪除表中數據,沒有條件時,刪除所有

delete?from?Scores?where?ID?in(7,8)

?

--修改表中數據

update?Scores?

set?Student='王五',Score='94'

where?ID=10

?

--查看數據

select?*?from?Scores

?

--查看表中最大的identity

select?@@identity

?

--查找兩個表中列的值是否相同,相同則不顯示,不相同的則查出結果

select?*?from?B_PowerStation?a?where?not?exists(select?*?from?B_PowerPile?b?where?a.ID=b.ID)

?

--或者利用dbcc命令查看表中最大的identity

dbcc?checkident('Scores',noreseed)

?

--創建視圖,全部省略視圖的屬性列名,由子查詢目標列的字段組成

create?view?StudentView

as

select?Student,Subject,Score

from?Scores

?

--加上with check option,以后對視圖的操作(增,改,刪,查)都會自動加上where ID>3

/*

create view StudentView

as

select Student,Subject,Score

from Scores

where ID>3

with check option

*/

?

--創建視圖,全部定義屬性列名,需要定義列名的情況:

----某個目標列(子查詢)不是單純的屬性列,而是聚集函數或列表達式

----多表連接時選出了幾個同名列

----需要在視圖中為某個列啟用新的更合適的名字

create?view?IS_Student(Student,Subject,MaxScore)

as

select?Student,Subject,Score

from?Scores

where?Score=(select?max(Score)?from?Scores)

?

?

--查詢視圖,和基本表完全樣,只不過如果視圖中有with check option,會自動加上那個條件

select?*?

from?StudentView

?

--查詢自定義列名的視圖

select?*?

from?IS_Student

?

--對視圖的insert/delete/update,和對基本表的操作一樣,并且最終都是用RDBMS自動轉換為對基本表的更新

--并不是所有的視圖都是可更新的,因為有些視圖的更新不能有意義的轉換成對相應基本表的更新

?

--刪除視圖

drop?view?StudentView

?

1. ?SQL常用命令使用方法

(1)數據記錄篩選

select*from?Products查詢出Products表里面的所有信息

select?ProductID,ProductName?from?Products查詢出Products表里面所有ProductID,ProductName

select?ProductID,ProductName?from?Products?where?ProductID=1查詢出Products表里ProductID=1的所有ProductIDProductName

select*?from?employee?where?fname='Paul'?and?job_id=5 查詢出employee表中fname=Paul并且job_id=5的所有記錄

select*from?Products?where?ProductID?in(4,5,6)查詢出Products表中ProductID,5,6的所有信息

select*from?Products?where?UnitPrice>10 and?UnitPrice<30 order?by?UnitPrice查詢出Products表中<UnitPrice<30的所有信息并按照UnitPrice的大小由小到大排序

select*from?Products?where?UnitPrice?between?10 and?30 order?by?UnitPrice上面的另外一種寫法

select?*?from?Employees?where?FirstName?like?'A%'查詢出EmployeesFirstName里面第一個字母是A的所有人信息

select*from?Employees?where?FirstName?like?'%A%'查詢出EmployeesFirstName里面中間有A的所有人信息

select*from?Employees?where?FirstName?like?'%A'查詢出EmployeesFirstName里面最后一個字母是A的所有人信息

select?count(*)?from?Employees查詢出Employees表中的所有記錄數

select?min(Unitprice)from?Products查詢出Products表中Unitprice的最小值

select?max(Unitprice)from?Products查詢出Products表中Unitprice的最大值

select?avg(Unitprice)from?Products查詢出Products表中Unitprice的平均值

select?sum(Unitprice)from?Products查詢出Products表中Unitprice的總和

select?*?from?Products?where?Unitprice>?(select?avg(Unitprice)?from?Products)有子查詢查找出比平均值高的商品信息

select?top?5*?from?Products查詢出前五條的記錄信息

select?distinct?[name]?from?Category?查出Category?中不重復的name

select?count(distinct?name)?from?Category?查出Category?中不重復的name的數量

?

(2)?更新數據記錄

sql="update 數據表set 字段名=字段值where 條件表達式"

sql="update 數據表set 字段=,字段=……字段n=n where 條件表達式"

?

(3)?刪除數據記錄

sql="delete from 數據表where 條件表達式"

sql="delete from 數據表"?(將數據表所有記錄刪除)

?

(4)?添加數據記錄

sql="insert into 數據表(字段,字段,字段…) values (,,…)"

sql="insert into 目標數據表select 字段名from 源數據表"?(把源數據表的記錄添加到目標數據表)

?

(5)?數據記錄統計函數

AVG(字段名)?得出一個表格欄平均值

COUNT(*&brvbar;字段名)?對數據行數的統計或對某一欄有值的數據行數統計

MAX(字段名)?取得一個表格欄最大的值

MIN(字段名)?取得一個表格欄最小的值

SUM(字段名)?把數據欄的值相加

引用以上函數的方法

sql="select sum(字段名) as 別名from 數據表where 條件表達式"

set?rs=conn.excute(sql)

?rs("別名")?獲取統的計值其它函數運用同上

?

(6)?數據表的建立和刪除

CREATE?TABLE?數據表名稱(字段?類型(長度),字段?類型(長度)?……?)

CREATE?TABLE?tab01(name?varchar(50),datetime?default?now())

DROP?TABLE?數據表名稱?(永久性刪除一個數據表)

?

2. 記錄集對象的方法

rs.movenext?將記錄指針從當前的位置向下移一行

rs.moveprevious?將記錄指針從當前的位置向上移一行

rs.movefirst?將記錄指針移到數據表第一行

rs.movelast?將記錄指針移到數據表最后一行

rs.absoluteposition=N?將記錄指針移到數據表第N

rs.absolutepage=N?將記錄指針移到第N頁的第一行

rs.pagesize=N?設置每頁為N條記錄

rs.pagecount?根據?pagesize?的設置返回總頁數

rs.recordcount?返回記錄總數

rs.bof?返回記錄指針是否超出數據表首端true表示是false為否

rs.eof?返回記錄指針是否超出數據表末端true表示是false為否

rs.delete?刪除當前記錄但記錄指針不會向下移動

rs.addnew?添加記錄到數據表末端

rs.update?更新數據表記錄

?

3. ?排序

desc就是用于查詢出結果時候對結果進行排序是降序排序asc就是升序。。要用與order?by一起用?

例如select?*?from?student?order?by?id?desc;?就是把選出的結果經過id從大到小排序把資源返回

還可以select?*?from?student?order??by?age?desc,id?desc;“,”號隔開多個排序條件這樣先按age?再按?id就是說先按age從大到小排序如果有相同年齡的那么相同年齡的學生再按他們的id從大到小排序

DESC指排序時按降序排序ASC是升序

?

約束篇:

1.主鍵約束

要對一個列加主鍵約束的話這列就必須要滿足的條件就是分空

因為主鍵約束就是對一個列進行了約束約束為非空不重復

以下是代碼???要對一個列加主鍵列名為id,表名為emp

格式為

alter?table?表格名稱?add?constraint?約束名稱?增加的約束類型?列名

例子

alter?table?emp?add?constraint?ppp?primary?key (id)

2.check約束

就是給一列的數據進行了限制

比方說年齡列的數據都要大于的

表名emp?列名age

格式

alter?table?表名稱?add?constraint?約束名稱?增加的約束類型?列名

例子

alter?table?emp?add?constraint?xxx?check(age>20)

3.unique約束

這樣的約束就是給列的數據追加的不重復的約束類型

格式

alter?table?表名?add?constraint?約束名稱?約束類型列名

比方說可以給ename列加個uniqueename列的數據不重復

例子

alter?table?emp?add?constraint?qwe?unique(ename)

4.默認約束

意思很簡單就是讓此列的數據默認為一定的數據

格式

alter?table?表名稱?add?constraint?約束名稱?約束類型?默認值?for?列名

比方說emp表中的gongzi列默認為

alter?table?emp?add?constraint?jfsd?default?10000 for?gongzi

5.外鍵約束

這個有點難理解了外鍵其實就是引用

因為主鍵實現了實體的完整性

外鍵實現了引用的完整性

應用完整性規定所引用的數據必須存在

其實就是個引用

比方說一個表名稱叫dept?里面有列數據?一列是ID一列是ENAME

id表示產品的編號

ename表示產品的名稱

另外一個表格名稱是emp?里面有列數據一列是ID?一列是DID

id:表示用戶號

did表示購買的產品號

要讓emp表中的did列去引用dept表中的id

可以用下面的方法

格式

alter?table?表名?add?constraint?約束名稱?約束類型?(列名)?references?被引用的表名稱列名

例子

alter?table?emp?add?constraint?jfkdsj?foreign?key (did)?references?dept?(id

?

修改約束

?

?

轉載于:https://www.cnblogs.com/Mzg121584668/p/7081041.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455343.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455343.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455343.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pythonselenium模擬登陸爬取信息_python3 使用selenium模擬登陸天眼查抓取數據

由于之前用Scrapy 抓了一些公司的名稱&#xff0c;但是沒有準確的聯系方式&#xff0c;所以就自己就學習了一下使用selenium自動化工具&#xff0c;速度比較慢&#xff0c;網上也有很多這方面的代碼&#xff0c;但是大部分的網頁解析部分都出錯了&#xff0c;可能是這種網站定時…

mp4格式

下面的軟件下載地址&#xff1a;http://download.csdn.net/source/2607382 ftyp: 這是一個筐&#xff0c;可以裝mdat等其他Box。 例&#xff1a;00 00 00 14 66 74 79 70 69 73 6F 6D 00 00 02 00 6D 70 34 31 語義為&#xff1a;ftyp: Major brand: isom Minor version: 5…

PyQt5案例匯總(簡潔版)

01菜單欄 import sys from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication from PyQt5.QtGui import QIconclass Example(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):exitAct QAction(QIcon(exit.png), &Exit,…

個人關于浮動的理解

浮動帶來的影響&#xff1a; ①. 能夠讓浮動之后的元素布局產生混亂 &#xff08;元素浮動后脫離了標準文檔流&#xff0c;它的布局也就不再遵循標準文檔流的規則&#xff0c;多個浮動元素在一起的時候就會隨著窗口的變化而變化&#xff0c;也就失去了穩定的布局&#xff09; ②…

接口測試 rest-assured 使用指南

轉載&#xff1a;https://testerhome.com/topics/7060 原文&#xff1a;https://github.com/rest-assured/rest-assured/wiki/Usage本文github地址&#xff1a;https://github.com/RookieTester/rest-assured-doc 注意&#xff0c;如果您正在使用1.9.0或者更早的版本請參考舊文…

python中格式化字符串的作用_python中字符串格式化的意義(化妝)

格式 描述%%百分號標記 #就是輸出一個%%c字符及其ASCII碼%s字符串%d有符號整數(十進制)%u無符號整數(十進制)%o無符號整數(八進制)%x無符號整數(十六進制)%X無符號整數(十六進制大寫字符)%e浮點數字(科學計數法)%E浮點數字(科學計數法&#xff0c;用E代替e)%f浮點數字(用小數點…

MongoDB的快速手動安裝

就是關于MongoDB主從庫的安裝配置和啟動。網上關于MongoDB的安裝有大量的文章供大家學習。我這里提供一個Windows環境下MongoDB主從庫的快速手動安裝的方法&#xff0c;只需要三步即可。 先下載的安裝包&#xff0c;解壓縮后找到bin文件夾&#xff0c;將bin文件夾拷貝至你自己的…

MP4音頻解碼信息

文章轉載自&#xff1a;http://blog.csdn.net/flyingqr/archive/2010/02/02/5282600.aspx 版權歸原作者&#xff0c;編輯&#xff1a;小乙哥 MP4文件格式分為頭部和數據兩部分&#xff0c;頭部是由許多被稱作Atom的結構單元嵌套或排列而成&#xff0c;數據部分則完全為實際數據…

時序圖 分支_UML用例圖

UML用例圖用例圖有以下東東:用例參與者關聯系統邊界用例使用橢圓來表示&#xff0c;橢圓里邊寫上用例的名稱:這里的用例可以理解為一個動作或行為,或者一個對象。參與者用一個小人兒,在小人兒下面寫上參與者名稱,例如學生:關聯用一條線表示:把很多個用例放到一個大的矩形框里。…

Python腳本實現漢子轉拼音

起步 中華文化博大精深&#xff0c;是中華民族的財富&#xff0c;吸收和繼承發揚中 華文化&#xff0c;是現代每個炎黃子孫無可推卸的天職。 今天小編就交大家用python寫一個腳本,實現漢子和拼音之間的轉換 pinyin.py 漢字轉拼音,With Python Example: from pinyin impor…

MySQL innodb_table_stats表不存在的解決方法

在做實驗時&#xff0c;使用mysqldump命令報錯[rootlinux-mysql02 3306]# mysqldump -uroot -p123456 -S /u02/data/3306/mysql.sock -A -B --events | gzip > /opt/rep.sql.gzmysqldump: Got error: 1146: Table mysql.innodb_index_stats doesnt exist when using LOCK TA…

自定義封裝 banner 組件

1. 效果圖預覽 2.基本功能 一個簡單方便的輪播圖組件&#xff0c;基于viewpager 基礎上進行的封裝。可設置 項目中圖片&#xff0c;網絡圖片&#xff0c; View&#xff1b;支持循環自動播放&#xff0c;手勢滑動切換&#xff0c;item點擊事件,可設置 點點的樣式寬高、顏色、大小…

vb.net服務器啟動后cpu占用了70_記一次服務器被異常程序占用的解決過程(懷疑黑客攻擊)...

最近在跑實驗&#xff0c;但是突然發現程序運行變慢&#xff0c;然后top命令查看程序運行情況&#xff0c;發現有異常進程&#xff0c;名字叫 bash&#xff0c;占用 2400% CPU計算資源。剛開始懷疑是挖礦程序&#xff0c;因實驗室網絡IP為教育網公網&#xff0c;懷疑被攻擊&…

3gp文件格式研究 (轉windcao的專欄)

序言 06我開始做3gp文件的播放器,但是關于3gp的文檔太少了也很難找,在網友luxh的幫助下,我終于有了第一份關于3gp文件格式的文檔《ISO/IEC 14496-12&#xff0c;ISO媒體文件格式》.在此真心感謝luxh的貢獻.當然了是英文版的,有文檔就不錯了.為了便于查閱和理解,我把之后陸續找…

Android開發必用工具及其進階途徑

三百六十行&#xff0c;行行出狀元&#xff0c;怎么樣才能在Android行業中當個狀元了&#xff0c;開發過程中的高效、自我能力的提升顯得至關重要&#xff0c;步入IT行業更是要時時刻刻學習&#xff0c;新技術更新快&#xff0c;今天將介紹一下Android開發中必用工具及其進階途…

MySQL遇到check the manual that corresponds to your MySQL server version for the right syntax錯誤

原來是MySQL表中不能包含關鍵字 轉載于:https://www.cnblogs.com/flycoding/p/7088465.html

Python腳本實現圖片加水印

起步 圖片是指由圖形、圖像等構成的平面媒體,有形式的事物&#xff0c;我們看到的&#xff0c;是圖畫、照片、拓片等的統稱。 為了保護一些原創圖片的版權,某些時候我們需要在圖片上面,加上水印,當然你可以用Photoshop來做,只不過如果圖片數量過多,亦或者圖片的動態生成的時候…

yarn 怎么查看有多個job在跑_flink on yarn 模式下提示yarn資源不足問題分析

背景在實時計算平臺上通過YarnClient向yarn上提交flink任務時一直卡在那里&#xff0c;并在client端一直輸出如下日志&#xff1a;(YarnClusterDescriptor.java:1036)- Deployment took more than 60 seconds. Please check if the requested resources are available in the Y…

MPEG-2TS碼流編輯的原理及其應用(轉載

[作者&#xff1a;遼寧電視臺 趙季偉] 在當今數字媒體不斷發展、新媒體業務不斷涌現 的前提下&#xff0c;實踐證明襁褓中的新媒體只有兩種經營方略可供選擇&#xff1a;或是購買并集成整套節目&#xff0c;或是低成本深加工新節目&#xff0c;再不可能去按照傳統生產模式…

Python中的yield詳解

閱讀別人的python源碼時碰到了這個yield這個關鍵字&#xff0c;各種搜索終于搞懂了&#xff0c;在此做一下總結&#xff1a; 通常的for…in…循環中&#xff0c;in后面是一個數組&#xff0c;這個數組就是一個可迭代對象&#xff0c;類似的還有鏈表&#xff0c;字符串&#xf…