sql数据黑马程序员——SQL入门
最近研究sql數據,稍微總結一下,以后繼續補充:
????---------------------- ASP.Net+Android+IO開辟S、.Net培訓、等待與您交流! ----------------------??????
????
今天看了SQL入門視頻,簡單的記錄下。
?
-
Catalog、Table、Column
????Catalog(分類)又叫數據庫DataBase、表空間TableSpace。?
????將不同類的數據放到不同的數據庫中,存儲在不同的表中,表中每一列(Column)代表數據的一項屬性。
????分類的利益:1.便于對各個Catalog的管理
? ?? ?? ?? ?? ??? ? ?? ?2.防止定名沖突
? ?? ?? ??? ? ?? ?? ?? ?3.安全性更高
????
?
-
主鍵 PrimaryKey
????是數據行的獨一標識。不會重復的列才能當主鍵。分為業務主鍵和邏輯主鍵。
????業務主鍵:應用有業務意思的字段做主鍵。
????邏輯主鍵:應用沒有任何業務意思的字段做主鍵。
????SQL中經常使用的主鍵類型:int(bigint)+標識列(主動增加字段)和 uniqueidentifier 類型(GUID)
????SQL中應用newid()方法失掉一個GUID,C#中應用Guid.NewGuid()方法獲得GUID。
????
?
-
SQL語句
????SQL語句是標準的數據庫操縱語句。對大小寫不敏感。
????需要注意的一些地方:sql中字符串用單引號表現,而不是用雙引號;等于判斷用“=”,不等判斷用“!=”或者“<>”。
????一般將sql語句分為兩類:DDL和DDM。
????DDL(數據定義語言):create、drop、alter操縱
????DDM(數據操縱語言):insert、delete、update、select操縱
????
?
-
SQL中常見的類型
????bit 只能選擇0或者1
????int 32位數? ?? ?? ?? ?? ???bigint 64位數
????char(lenth) 指定lenth長度的字符串
????varchar(lenth) 可變長字符串,長度最大值lenth? ?? ?? ?? ?? ? nvarchar(lenth) 允許字段含有非ASCII碼的字符串,如中文
????
?
-
一些基本的SQL語法
????create table Person(id int not null, name varchar(50), age int)
????insert into Person(id, name, age) values(1, 'A', 10)
????update Person set age=18 where id=1
????select * from Person
????delete form Person? ?? ? 與drop不同的是:drop刪除全部表結構,delete刪除的是表中的數據
????drop talbe Person
????
?
-
排序 order by
????排序方式:ASC遞增,DESC遞減。
????需要注意 order by 要放在 where 語句之后,? ?select * from Person where age > 10 order by age
????當對多個項目排序時早年往后進行,? ???select * from Person order by age DESC,name ASC
????
?
-
分組 group by
????group by 必須放在 where 之后。沒有出現在 group by 子句中的列是不能放在 select 語句的列名列表中的。
????select age, name from Person group by age? ???應用就是錯誤的,對age分組后,每一組中可能有多個name值
每日一道理雖然你現在還只是一株稚嫩的幼苗。然而只要堅韌不拔,終會成為參天大樹;雖然你現在只是涓涓細流,然而只要鍥而不舍,終會擁抱大海;雖然你現在只是一只雛鷹,然而只要心存高遠,跌幾個跟頭之后,終會占有藍天。
????
?
-
Having語句
????用于對分組進行過濾。聚合函數不能出現在where子句中,除非該聚合位于Having語句或選擇列表所包含的子查詢中。
????Having 要位于group by 之后。并且Having中不能應用為參數分組的列。
????select age, count(*) from Person group by age having coung(*)>1
????
?
-
通配符過濾(模糊匹配)
????分為單字通配符和多字通配符兩種。
????單字通配符用“_”表現,只能代表一個字符。多字通配符用“%”。
????select * from Person wher name like 'A%'? ?? ?查找結果為所用姓名以A掃尾的數據
????
?
-
空值處置
????在sql中null表現不知道的意思,而不是編程語言中的空。
????應用 is null, is not null 可以進行空值的判定。
????select * from Person where name is not null
????
?
-
多值匹配
????應用 and、or、between and 做判定范圍的連接。
????select * from Person where age=10 or age=18
????
?
-
制約結果集行數
????select top 3 * from Person order by age? ?? ???按照年齡升序排列后,取得排前三的數據行
????select top 3 * from Person where id not in (select top 5 id from Person order by age DESC) order by age DESC? ?取得年齡降序排6、7、8的三個數據行
????
?
-
去掉重復數據
????應用 distinct 關鍵字可以去掉查詢結果中重復的數據行。
????select distinct age from Person
????
?
-
結合 union
????要求進行結合的每個結果集必須有相同的列數,并且列必須類型相容。
????有 union 和 union all 兩種結合方式。
????union 會默認去掉完全相同的數據,因為需要進行重復值掃描,所以 union 效率低。
????union all 不進行重復行合并。
????select name, salary from Person
????union
????select '工資合計', sum(salary) from Person
????-The End-
????
????? Jervis
?????
?????
????---------------------- ASP.Net+Android+IOS開辟、.Net培訓、等待與您交流! ----------------------
????詳細請查看:http://edu.csdn.net
文章結束給大家分享下程序員的一些笑話語錄: 程序員喝酒
我偶爾采用“木馬策略”、“交叉測試”,時間不長就開始“頻繁分配釋放資源”,“cache”也是免不了的了,
不過我從不搞“輪巡”,也不會“捕獲異常”,更不會“程序異常”,因為我有理性
克制的。
--------------------------------- 原創文章 By
sql和數據
---------------------------------
轉載于:https://www.cnblogs.com/jiangu66/p/3153206.html
總結
以上是生活随笔為你收集整理的sql数据黑马程序员——SQL入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PHP 】伪静态 - 4. 实际运用
- 下一篇: 软件测试类工具大全