数据库基础的知识点
? 數據庫系統基礎:
一、數據庫:存儲數據的倉庫
二、數據庫能夠做什么:
1.存儲大量的數據,方便檢索和訪問。
2.保持數據的信息一致、完整
3.共享和安全
4.通過組合分析,產生新的有用信息。
三、應用程序和數據庫的關系
應用程序——》發送一個請求到數據庫–》數據庫返回操作數據結果
應用程序:
作用:響應操作并顯示結果,向數據庫請求數據
要求:美觀、操作簡便
數據庫:
作用:存儲數據、檢索數據、形成新的數據
要求:統一、安全、性能
四、時下流行的數據庫:
1.Oracle:產品免費、服務收費
2.SQL Server:版本多,易用性好,只支持windows操作系統
3.DB2:支持多操作系統的使用,使用范圍不大
4.Mysql:免費的,使用范圍特別廣
五、實體:客觀存在,可以被描述的事物。
六、數據庫表中的行:代表一條記錄
數據庫表中的列:代表一個字段
七、數據庫是由表組成,表是由行(記錄)和列(字段)組成。
字段–》記錄–》表–》數據庫–》服務器
八、數據庫數據的操作:添加數據、修改數據、查詢數據、刪除數據
九、安裝數據庫。
十、創建數據庫:
數據庫文件包含:
1.數據文件:后綴是.mdf
2.日志文件:后綴是.ldf
十一、分離數據庫:
當數據庫需要移動或者刪除的時候,就得使用分離
分離數據庫的方法:右擊數據庫–》任務–》分離–》確定
十二、附加數據庫:
當從別的地方拷貝數據庫到本機時,需要使用附加
附加的方法:右擊“數據庫”–》附加–》添加數據庫文件(mdf)–》確定
? 用表組織數據:
一、數據庫的完整性大多數是由設計的時候引起的。
二、可靠性+準確性=數據完整性
三、數據庫的四種完整性約束:
1.實體完整性約束
2.域完整性約束
3.引用完整性約束
4.自定義完整性約束
四、數據庫數據的數據類型:
1.char:字符類型,一般用于單個字符的,比如性別
2.varchar:字符串類型,一般用于姓名,身份證號
3.text:長文本類型,一般用于文章等
4.datetime:日期類型,比如出生日期,創建時間
5.數字類型:int和float。
int:整數類型,一般用于年齡
flaot:小數類型,一般用于身高,分數。
6.貨幣類型:money,一般用于金錢
五、主鍵
1.一個表的主鍵只有一列組成
2.盡量選擇單個鍵作為主鍵
3.盡量選擇更新數值較少的列作為主鍵
? 用SQL數據操作數據:
一、sql是什么:
1.結構化查詢語言
2.在什么情況下使用:
(1)對sqlserver執行所有操作的時候
(2)對程序進行增刪改查的時候
3.sql組成:
(1)DML數據操作語言,insert update delete
(2)DCL數據控制語言,grant remoke
(3)DQL數據查詢語言,select
(4)DDL數據定義語言,create drop
4.sql 中的運算符:
(1).算術運算符
“+”:兩個數相加
“-”:兩個數相減
“*”:兩個數相乘
“/”: 兩個數相除
“%”:兩個數相除取余數
(2).賦值運算符
“=”:將一個數或者變量或者表達式賦值給另一個變量。
eg:name=“李四”;
(3).比較運算符
“>”, “<”, “=”, “>=”, “<=”, “!=”(不等于)
二、T-SQl語句
1.注釋:–
2.查詢表中的全部數據:
select * from [表名]
3.插入數據:
insert into 表名(列名) values(值);
插入數據的注意事項:
(1)標識列不能顯示的插入值。
(2)所有的括號、單引號、逗號都必須是英文的。
(3)列名的個數必須要和值的個數一致。
(4)表里面的列名必須要和插入語句的列名一致。
(5)列名可以省略,但是值的個數必須和列名相對應(除了標識列)
(6)如果字段有默認值,那么在值的地方寫default就可以
(7)如果字段的類型是varchar,datetime,char類型時,所對應的值必須要用英文的單引號括起來,如果字段的類型是int,float,所對應的值不需要使用單引號
(8)一定要選擇需要操作的數據庫(下拉列表里面)
? 數據查詢基礎:
一、查詢流程:
1.客戶端–》請求一條查詢語句–》數據庫–》返回查詢結果
二、導出數據庫腳本:
1.選中數據庫–》右擊–》任務–》生成腳本–》下一步–》選擇存放路徑–》高級–》選擇架構和數據–》下一步–》確定。
三、查詢的語法:
select 列名
from 表名
where 查詢條件表達式
order by 排序方式
四、使用別名查詢信息
select 列名 as 別名,列名 as 別名 from 表名
where 查詢條件
五、查詢空值:
select 列名 from 表名 where 列名 is null
六、查詢返回限制的行數(查詢前10條記錄)
select top 10 列名 from 表名 where 查詢條件
七、查詢20%的數據
select top 20 percent 列名 from 表名
八、查詢排序:
升序:
select 列名 from 表名 order by 列名 asc
降序:
select 列名 from 表名 order by 列名 desc
注意:1.默認是升序(asc)
2.只能升序和降序數值類型的數據
3.order by必須放在最后
九、在查詢中使用的函數:
1.len():返回給定字符串的長度
eg:select len(‘男’),輸出1
2.getDate():返回當前系統日期
eg:select getdate(),輸出2018-12-6-10:35:156
? 模糊查詢和聚合函數:
一、模糊查詢:
1.關鍵詞:like
2._代表:一個字符,eg:like ‘c’,查詢的結果是三個字,中間必須是c
3.%代表:多個字符,eg:like ‘%張’,查詢的結果是張結尾的,前面可以是任意多個。
4.[]代表:一個指定范圍,eg:like [1-2],查詢的結果是1-2范圍的值
5.[^]代表不在指定范圍的記錄。
6.between……and:查詢已知的兩個值之間的未知值。
語法:
select 列名 from 表名 where 列名(分數) between 60 and 90
意思是:查詢分數在60-90之間的學生信息
7.使用in在列舉值內進行查詢:
語法:
select 列名 from 表名 where in(‘值1’,‘值2’)
eg:select * from student where Address in (‘山西呂梁’,‘學生宿舍’)
意思是:只查詢地址為山西呂梁的和學生宿舍的學生信息
8.is null:
查詢指定列名為空的信息
? 連接和分組查詢:
一、分組查詢:
1.語法:select 列名 from 表名 where 條件 group by 分組的列 order by 列名 排序方式(asc/desc)
2.多列分組的語法:
select 列名1,列名2 from 表名 where 條件 group by 分組的列1,分組的列2 order by 列名
3.分組的注意事項:
(1)除聚合函數所在的列之外,from前面的列必須和group by 子句的列一一對應。
(2)order by 后面可以跟聚合函數,eg:order by sum(result) desc,按照總分數降序顯示
4.分組篩選:
(1)having:先分組在篩選
(2)語法:
select 列名 from 表名 group by 列名
having 篩選條件
order by 排序方式
(3)查詢順序:
where -->group by -->order by
(4)查詢的語法:
select 列名 from 表名 where 條件 group by 分組列 having 篩選列 order by 排序列
二、連接查詢:
1.內聯接:
語法:select 列名 from 表名1,表名2
select 列名 from 表名1 join 表名2 on 表名1.外鍵 = 表名2.外鍵
2.外聯接:
需要顯示哪個表的全部信息,然后觀察這個表在左邊還是右邊,左邊的話用左外鏈接,右邊的話用右外連接
(1)左外聯接
查詢左表的全部數據
select 列名 from 表1 left join 表2 on 表1.外鍵=表2.外鍵
(2)右外聯接
查詢右表的全部數據
select 列名 from 表1 right join 表2 on 表1.外鍵=表2.外鍵
總結
- 上一篇: 怎么登录支付宝账号 如何登录支付宝账号
- 下一篇: winform通过ListView绑定数