前段時間安裝了sqlserver及management,編寫了一些sql語句,現在對sql中常用的幾個語法進行總結、分析與代碼實例演示。
匯總一只介紹基本語法,較復雜的排序、分組等操作將在之后的文章中陸續總結!
一.創建表、修改表與刪除表
1.1代碼
1.創建表: create table Person5(Id int not null,Name nvarchar(50),Age int null) 2.修改表: alter table T_Employee add FSubCompany varchar(20); --表中添加分公司 alter table T_Employee add FDepartment varchar(20); --表中添加部門 3.刪除表: drop table person4;
1.2分析
1)create實現在代碼中直接生成表,表的字段可以再表名(Person5)后面逐一定義,格式為:字段名 類型 為空與否;
2)alter是在表中添加新的字段,定義其名稱和類型;
3)drop將整個表刪掉。
------------------------------------------------
博主經營一家發飾淘寶店,都是純手工制作哦,開業沖鑽,只為信譽!需要的親們可以光顧一下!謝謝大家的支持!
店名:
小魚尼莫手工飾品店
經營:
發飾、頭花、發夾、耳環等(手工制作)
網店:
http://shop117066935.taobao.com/
---------------------------------------------------------------------
繼續正題...
二.數據的添加、更新與刪除
2.1代碼
1.添加數據: --1)一般添加: insert into Person1(Id,Name,Age)values(3,'小王',20); --2)id設置主鍵后,自動生成,id項不必insert操作: insert into Person3(Name,Age)values('lily',20); --正確 insert into Person3 values('john',30); --正確
--3)id設置主鍵后,自動生成,若使用guid類型,需要程序員干預生成: create table Person5(Id uniqueidentifier not null,Name nvarchar(50),Age int null); insert into Person4(Id,Name,Age)values(newid(),'tom',30); --正確 insert into Person4(Name,Age)values('tom',30); --錯誤
2.更新數據 --1)無條件更新: update Person1 set Age=20; --更新一個列/字段 update Person1 set Age=30,Name='xiaoxiao' --更新多個列/字段
update Person1 set Age=Age+1;
--2)條件更新
update Person1 set NickName=N'青年人' where Age>=20;
update Person1 set NickName=N'二十歲' where Age=20; --等於 只有一個等號
update Person1 set NickName=N'非二十歲' where Age<>20; --不等於
update Person1 set NickName=N'非二十歲' where (Age>20 and Age<30)or Age=20; --不等於 and or not
3.刪除表中某些內容 --1)刪除表中的全部數據 delete from Person1; --2)刪除表中符合條件的數據 delete from Person1 where Age>=30;
2.2分析
1)name等字段可在屬性中設置默認值,當不添加時會使用默認值;
guid做主鍵,數據插入的順序與實際排列的順序不同;Id項需要添加進去后,點擊sql執行,才能將guid添加進去!
在數據添加第二種情況下,兩種寫法都正確!即多項insert時后面可省略字段名稱,但不建議如此書寫!
有些人喜歡講into去掉,直接用inset Person(...);也不會報錯,但加上into更規范一些!
2)執行update時,如果沒有where條件,則將表中所有相應字段的所有值都更新;另外,update可以執行計算語句,如:update Person1 set Age=Age+1;
注意在sql語句中邏輯運算符的使用:等於號為=,不等於號為<>,並且為and,或者為or!
當sql中出現中文時,在中文字符串前加上N,如 NickName=N'青年人'。
3)與前文中drop方法不同,drop直接將表刪除;而delete實現對表中滿足特定條件(where Age>=30)數據的刪除操作。
三.select查詢
3.1代碼
1.簡單select select FName from T_Employee; --單字段查詢 select FNumber,FName,FAge,FSalary from T_Employee; --多字段查詢 select * from T_Employee; --所有字段查詢 2.條件select select FName,FSalary from T_Employee where FSalary<5000; --按工資條件查詢 select * from T_Employee where FSalary<5000; 3.可以給列加“別名”,運算操作也可以執行: select FName as 姓名 ,FSalary+10000 as 月薪 from T_Employee where FSalary<5000; 4.范圍 a)多個單值的等價方式 select * from T_Employee where FAge=23 or FAge=26 or FAge=28; --or條件選擇,等價於下方 select * from T_Employee where FAge in (23,26,28); b)范圍值的等價方式 select * from T_Employee where FAge>=20 and FAge<=25; --范圍,等價於下方 select * from T_Employee where FAge between 20 and 25; --包含邊界點!,不好用,當條件為FAge>20 and FAge<25時即不可用!
3.2分析:
select就是從某表中,獲取到滿足條件的結果,涉及到單條件及多條件語句,查詢結果顯示也可利用別名等進行設定。
四.SQL聚合函數
4.1代碼:
select MAX(FSalary) from T_Employee ; select SUM(FSalary) from T_Employee where FAge>25;
4.2分析:
1)SQL聚合函數:MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM(和)、COUNT(數量)。
3)聚合函數不是實際意義上對表的聚合;而是對查詢結果的聚合。
2)代碼為:查詢最高工資、25歲以上工資之和。
店名:
小魚尼莫手工飾品店
經營:
發飾、頭花、發夾、耳環等(手工制作)
網店:
http://shop117066935.taobao.com/