程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> T-SQL筆記總結(1)

T-SQL筆記總結(1)

編輯:關於SqlServer
--1、創建一個數據庫

createdatabase School;

--刪除數據庫

dropdatabase School;

--創建一個數據庫的時候,指定一些數據庫的相關參數,比如大小,增長方式,文件保存的路徑

createdatabase School

onprimary --主數據文件*.mdf

(

  --數據庫的邏輯名稱

  name='school',

  size=10Mb,

  filename='c:\school.mdf',

  filegrowth=10%,

  maxsize=100mb

)

log on--日志文件*.ldf

(

  name='School_log',

  filename='c:\school.ldf',

  size=5mb,

  filegrowth=2mb,

  maxsize=50mb

--切換數據庫

useSchool --點擊F5執行SQL語句,先選中再執行

 

--====================為數據庫創建表================

--1、創建一個班級表

createtable TblClass

(

  --創建好了一列

  --列名,數據類型,約束(自動編號)identity

  ClsId intidentity(1,1)primary key,

  ClsName varchar(50)not null,

  ClsDesc varchar(500)

)

 

--刪除TblClass表

droptable TblClass;

 

 

--創建一個TblStudent表

createtable TblSudent

(

  stuId intidentity(1,1)primary key,

  stuName nvarchar(50)not null,

  stuGender bitnot null,

  stuAddress varchar(200),

  stuPhone varchar(50),

  stuAge int,

  stuBirthday datetime,

  stuIdNumber varchar(20),--身份證號碼

  stuClsId int

--通過sql語句向TblClass表中插入數據

insertinto TblClass(ClsName,ClsDesc)

values('黑馬三期','沒有二期牛B')

--通過select語句來查詢表中的數據

selectClsName,ClsDesc,ClsIdfrom TblClass

select*fromTblClass

--控制窗口的顯示與隱藏

--ctrl+R 

--=======================================

createdatabase TestSchool

onprimary

(

  name='TestSchool',

  filename='c:\練習存放路徑\db\TestSchool.mdf',

  size= 10mb,

  maxsize=100mb,

  filegrowth=10%

log on

(

  name='TestSchool_log',

  filename='c:\練習存放路徑\db\TestSchool.ldf',

  size=5mb,

  maxsize=50mb,

  filegrowth=1mb

)

GO

--創建學生成績表TblScore

--tScoreId(成績id,主鍵,自動編號)、tSId(學生編號)、tEnglish(英語成績)

createtable TblScore

(

  tScoreId intidentity(1,1)primary key,

  tsid intnot null,

  tEnglish float,

)

Go

 

--創建老師表TblTeacher

--tTId、tTName、tTGender、tTSalary、tTBirthday 

createtable TblTeather

(

  tTId intidentity (1,1) primarykey,

tTName varchar (50),

tTGender bit default(1),

tage int ,

tTSalary money,

tTBirthday datetime

)

Go

 

useTestSchool

 

--跨數據庫訪問:數據庫..表名

select* intomyteacher from School..TblTeather

 

 

--2013/8/4

useSchool

 

--

select*fromTblTeather

--1、最基本的插入

insertinto Tblteather(ttname,ttgender,tage,ttsalary,ttbirthday)

values('小明',1,18,10000,'2010-09-9')

 

--2、只向某列插入數據,這時的前提是其他列可以為空(null)或有默認值,否則報錯

insertinto TblTeather(ttname,ttsalary)

values('張三',50000)

 

insertinto Tblteather(ttname,ttgender,tage,ttsalary,ttbirthday)

values(N'王五',1,18,100020,2011-09-9)

 

insertinto Tblteather(ttname,ttgender,tage,ttsalary,ttbirthday)

values(N'李四',1,18,11111100,'2010-09-9') --(非英語字符前加N是為了防止亂碼)

 

--當向表中的出除自動編號外的所有其他列都插入數據的時候,這時可以省略列名

insertinto Tblteather

values('李四',1,18,11111100,'2010-09-9')

 

--3.為自動編號插入值

setIDENTITY_INSERT TblTeatheron --打開

insertinto TblTeather(ttid,ttname,ttsalary)

values(100,'bob',34549084)

setIDENTITY_INSERT TblTeatheroff --關閉

 

insertinto TblTeather(ttname,ttsalary)

values('bob',34549084)

 

--insert into...vlaues 這種寫法每次只能插入一條數據

 

insertinto TblTeather

select'Chris',1,20,2334244,'1988-9-9' union

select'James',1,20,2334244,'1990-9-9' union

select'Tom',1,20,2334244,'1998-9-9'

Go

 

--union關鍵字本身就具有去掉重復的意思。

--union\union all

insertinto TblTeather

select'Chris',1,20,2334244,'1988-9-9' union all

select'James',1,20,2334244,'1990-9-9' union all

select'Tom',1,20,2334244,'1998-9-9'  unionall

select'Chris',1,20,2334244,'1988-9-9' union all

select'James',1,20,2334244,'1990-9-9' union all

select'Tom',1,20,2334244,'1998-9-9' union all

select'Chris',1,20,2334244,'1988-9-9' union all

select'James',1,20,2334244,'1990-9-9' union all

select'Tom',1,20,2334244,'1998-9-9'

 

 

--將一個表中的數據備份到另一個表中

select* fromTblTeather

 

--將TblTeather表中的數據備份到NewTblTeather

--這種寫法會將TblTeather表中的所有數據偶讀插入到NewTblTeather表中

--前提是NewTblTeather表不存在,如果這個表存在則報錯

select*intoNewTblTeather from TblTeather

 

select*fromNewTblTeather

 

--向一個已經存在的表重插入數據,數據來源是另一張表。

 

insertinto NewTblTeather(ttname,tage)

selectttname,tage fromTblTeather

 

 

createtable t3 --只能create(創建)一次

(

  autoId intidentity(1,1),

  uname varchar(30)

)

 

--修改表中的列語法

altertable T3 alter columnuname nvarchar(50)

 

--drop table t3

 

--==========================更新語句================================

select*fromTblTeather

--將所有年齡小於歲的年齡都改成

updateTblTeather set tage=19 wheretage<20

 

--將年齡為歲的人的年齡+1

updateTblTeather set tage=tage+1where tage=20

 

--把所有人的工資都改成 (注意:記得寫where條件!!!)

updateTblTeather set ttsalary=2000

 

--1、對數據操作前,一定要做備份

--2、要細心

 

--把表中所有的年齡為19歲的同學的姓名兩邊加個★,性別=女,工資都+500

--SQL 2008 可以寫成ttsalary+=500,但2005不行,所以應盡量使用通用的語法ttsalary=ttsalary+500

updateTblTeather set ttname='★'+ttname+'★',ttgender=0,ttsalary=ttsalary+500

  wheretage=19

 

--將年齡為歲的,並且性別為的,人的姓名兩邊在加兩個☆

updateTblTeather set ttname='☆'+ttname+'☆' wheretage =19 andttgender=0

 

--將年齡為歲的,並且性別為的,人的姓名兩邊的★替換成☆

updateTblTeather set ttname=replace(ttname,'★','☆')where tage =19 andttgender=0

 

--REPLACE(string_expression,string_pattern,string_replacement)

 

--邏輯運算符

--not

--and

--or

--邏輯運算符的優先級問題:not>and>or

tsage>10 andtsage<50 or ttname = 'zs'and (not(ttbirthday>'2000-10-10'))

 

select*fromTblTeather

 

--

deletefrom TblTeather where tage=19or tage is null

 

--刪除所有數據

deletefrom TblTeather

 

insertinto TblTeather values('張三',1,20,10000,'2000-10-10')

 

truncatetable TblTeather

 

--=====使用delete from表名與truncate table表名,都能把表中的數據刪除==============

--區別:

--1、delete語句刪除數據的時候,自動編號沒有恢復到默認值。但是truncate語句重新設置了自動編號

--2、通過truncate語句刪除表中的數據的時候,只能一次性清空,不能根據條件來刪除,而delete可以根據條件來刪除

--3、通過truncate語句清空表中的數據時,速度(性能)比delete語句快的多得多得多。

--4、truncate語句不觸發delete觸發器

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved