1.數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫mysql
2.RDBMS即關係數據庫管理系統(Relational Database Management System)的特色:
1).數據以表格的形式出現
2).每行爲各類記錄名稱
3).每列爲記錄名稱所對應的數據域
4).許多的行和列組成一張表單
5).若干的表單組成databasesql
3.RDBMS 術語
數據庫: 數據庫是一些關聯表的集合。.
數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
列: 一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。
行: 一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。數據庫
冗餘: 存儲兩倍數據,冗餘可使系統速度更快。(表的規範化程度越高,表與表之間的關係就越多;查詢時可能常常須要在多個表之間進行鏈接查詢;而進行鏈接操做會下降查詢速度。例如,學生的信息存儲在student表中,院系信息存儲在department表中。經過student表中的dept_id字段與department表創建關聯關係。若是要查詢一個學生所在系的名稱,必須從student表中查找學生所在院系的編號(dept_id),而後根據這個編號去department查找系的名稱。若是常常須要進行這個操做時,鏈接查詢會浪費不少的時間。所以能夠在student表中增長一個冗餘字段dept_name,該字段用來存儲學生所在院系的名稱。這樣就不用每次都進行鏈接操做了。)數據結構
主鍵: 主鍵是惟一的。一個數據表中只能包含一個主鍵。你可使用主鍵來查詢數據。
外鍵: 外鍵用於關聯兩個表。
複合鍵: 複合鍵(組合鍵)將多個列做爲一個索引鍵,通常用於複合索引。
索引: 使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。相似於書籍的目錄。
參照完整性: 參照的完整性要求關係中不容許引用不存在的實體。與實體完整性是關係模型必須知足的完整性約束條件,目的是保證數據的一致性。ide
4.mysql的使用
1)show databases; #顯示數據庫編碼
2)use <數據庫名>; # 鏈接數據庫.net
3)show tables; #顯示錶htm
4)desc <表名>; #查看錶結構 ,也能夠用show columns from <表名>;排序
5)selsct * from <表名>; #查看錶數據索引
6)selsct * from <表名>\G #查看錶數據(顯示內容清晰)不用加 ;
7)grant all on *.* to 'username'@'localhost' identified by 'passwd'; # 建立用戶以及設置權限 all是賦予全部權限
8)create database <數據庫名>; #建立數據庫
9)create table student(
id int auto_increment,
name char(32) not null,
age int not null,
register_date date not null,
primary key(id));
#建立一個簡單的表
10)show create database <數據庫名>; #查看數據庫的character
11)create database <數據庫名> charset utf8; #建立數據庫並設置character爲utf-8
12)drop table <表名>; #刪除表
13)drop database <數據庫名>; #刪除數據庫
14)select * from <表名> limit 3 offset 2; #從第三個開始查詢限制(limit)3個
15)select * from <表名> where register_date like '2018-04%'; #查找register_date爲2018-04的全部數據
16)update <表名> set name='海上',age=34 where id=5; #修改id爲5的name和age爲'海上'、'34'
17)delete from <表名> where id>4; #刪除id>4的全部數據
18)select * from <表名> order by id asc/desc; #查詢的表是id的升序(asc)/倒序(desc)
19)select name ,count(*) as stu_num from <表名> group by name; #選擇name屬性並統計整個表格(count(*)) 按name進行分組統計數量一列命名爲stu_num
20)select name ,sum(age) from <表名> group by name; #統計相同名字的年齡總和並按照name分組
21)select coalesce(name,'總年齡') ,sum(age) from <表名> group by name with rollup;#統計相同名字的年齡總和並按照name分組,在最後一行顯示全部總數,coalesce做用是命名
22)alter table <表名> add sex int(11) not null; #添加sex字段而且不能爲空
23)alter table <表名> drop sex; #從student表刪除sex字段
24)alter table <表名> modify sex <字段類型> not null; #修改字段sex不能爲空,在修改前sex字段必須不能是空的
25)alter table <表名> change sex gender char(32) not null default 'X'; #更改字段sex爲gender,數據類型爲char(32),且不能爲空,默認數值爲'X'