【12】簡單SQL語句
阿新 • • 發佈:2018-01-01
刪除數據 簡寫 ide lte ons color order 整理 引用
-------------------------------------------- -- SQL語句 -------------------------------------------- -- 數據定義語言(DDL) -- 數據操作語言(DML) -- 數據控制語言(DCL) -- 簡單的增刪改查(CRUD) -- 增加數據 -- insert into 表名(字段名, 字段名, ...) values(值1, 值2, ...); insert into ConstraintExercise.StuInfo2 (stuId, stuName, stuAge, stuSex, courseId)values -- (1, N‘趙曉虎‘, 30, ‘m‘, null); (1, N‘趙曉虎‘, 30, ‘m‘, NULL); -- 查詢數據(簡寫) -- select 字段1, 字段2, ... from 表名; select * from ConstraintExercise.StuInfo2; insert into [ConstraintExercise].[StuInfo2] (stuId, stuName, stuAge, stuSex, courseId) values (2, ‘牛亮亮‘, 35, ‘f‘, NULL); -- 修改數據 --update 表名 set 字段=值,字段=值,... where 條件; update ConstraintExercise.StuInfo2 set stuSex=‘m‘ where stuId=2; update ConstraintExercise.StuInfo2 set stuName=‘牛亮亮‘ where stuId=2; update ConstraintExercise.StuInfo2 set stuName=N‘NULL‘; update ConstraintExercise.StuInfo2 set stuName=NULL; alter table ConstraintExercise.StuInfo2drop constraint UQ_StuInfo2_stuName; -- 刪除數據 -- delete from 表 where 條件; delete from ConstraintExercise.StuInfo2; -- 二進制截斷 insert into ConstraintExercise.StuInfo2(stuId, stuName) values(3, N‘0123456789‘); select * from ConstraintExercise.StuInfo2 -- 刪除 -- delete from 表 where 。。。 -- 刪除數據庫對象 --drop table 表 --drop database 數據庫 --drop view 視圖 --drop schema 架構 ------------------------------------------- -- 查詢 ------------------------------------------- -- 查詢的基本結構(爛熟) -- 查詢的詳細步驟(爛熟) -- 案例(舉一反三) -- 標準的SQL語句 select top | distinct 字段 , 表達式 , 函數 , 標量子查詢 , 常量 from 數據源 where 基本篩選 group by 分組字段 having 二次篩選 order by 排序字段依據; -- SQL語句的執行順序 -- -- 獲得數據源(from) -- 進行第一次篩選(where) -- 對篩選得到的結果進行分組(group by) -- 可以對分組後的結果進行再刪選一次(having) -- 對所有數據進行整理(select) -- 對結果進行排序(order by) -- 添加一個分數表 go create schema Exercise authorization dbo; go create table Exercise.ScoreTbl ( scoreId int identity(1,1) not null primary key, stuId int not null, scoreNum int check(scoreNum>=0 and scoreNum<=100), scoreLast int check(scoreLast>=0 and scoreLast<=100), -- foreign key(stuId) references Exercise.StudentTbl(stuId) ); -- 添加分數數據 2008+ insert into Exercise.ScoreTbl(stuId, scoreNum, scoreLast) values(1,60,55),(2,75,40),(3,95,85),(5,86,75),(6,90,95); insert into Exercise.ScoreTbl(stuId, scoreNum, scoreLast) values(7, 45, 99) select * from Exercise.ScoreTbl; select * , scoreNum * .3 + scoreLast * .7 from Exercise.ScoreTbl where scoreNum * .3 + scoreLast * .7 >= 60 and scoreNum < 60; -- 找姓牛的人 -- 單字符匹配 _ -- 多字符匹配 % -- stuName like ‘牛%‘ -- 引用對象的方式可以是 -- 服務器.數據庫.架構.表 select * from TestDataBase..Student; select * from TestDataBase..Course; select * from TestDataBase..Score; -- 叫紀明X select * from TestDataBase..Student where stuName like ‘紀明%‘; insert into TestDataBase..Student (stuName, stuSex, stuBirthdate, stuStudydate, stuAddress, stuEmail, stuPhone, classId) values (‘紀明閃閃‘, ‘m‘, ‘1990-1-1 00:00:00‘, ‘2014-7-7 17:04:52.123‘, N‘上帝細節128號‘, ‘[email protected]‘, ‘12345678909‘, 2); ----------------------- -- [] [a-z] [^a-z] -- stuName like ‘楊[中重]科‘ -- 如果要匹配 asp_net -- bookName like ‘asp[_]net‘ -- stuName like ‘%虎%‘ -- age 在 19 到 26 歲 -- datediff(year, 開始的時間, 結束的時間) select datediff(YEAR, stuBirthdate, CURRENT_TIMESTAMP),* from TestDataBase..Student where stuSex = ‘f‘ and -- datediff(YEAR, stuBirthdate, CURRENT_TIMESTAMP) between 19 and 26; datediff(YEAR, stuBirthdate, CURRENT_TIMESTAMP) in (19,26,23) ------------------------- -- 空值處理 ------------------------- select * from ConstraintExercise.StuInfo2; select * from ConstraintExercise.StuInfo2 where stuAge <> null; -- SQL Server 采用三值邏輯 真 假 不知道 -- 判斷為空使用 is null 或 is not null 再或 not(... is null) select * from ConstraintExercise.StuInfo2 where stuAge is not null; -- isnull(字段, 數據) select *, isnull(stuAge, -1) from ConstraintExercise.StuInfo2;
【12】簡單SQL語句