1.資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫 2.RDBMS即關係資料庫管理系統(Relational Database Management System)的特點: 1).數據以表格的形式出現 2).每行為各種記錄名稱 3).每列為記錄名稱所對應的數據域 4).許多的行 ...
1.資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫
2.RDBMS即關係資料庫管理系統(Relational Database Management System)的特點:
1).數據以表格的形式出現
2).每行為各種記錄名稱
3).每列為記錄名稱所對應的數據域
4).許多的行和列組成一張表單
5).若幹的表單組成database
3.RDBMS 術語
資料庫: 資料庫是一些關聯表的集合。.
數據表: 表是數據的矩陣。在一個資料庫中的表看起來像一個簡單的電子錶格。
列: 一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。
行: 一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
冗餘: 存儲兩倍數據,冗餘可以使系統速度更快。(表的規範化程度越高,表與表之間的關係就越多;查詢時可能經常需要在多個表之間進行連接查詢;而進行連接操作會降低查詢速度。例如,學生的信息存儲在student表中,院系信息存儲在department表中。通過student表中的dept_id欄位與department表建立關聯關係。如果要查詢一個學生所在系的名稱,必須從student表中查找學生所在院系的編號(dept_id),然後根據這個編號去department查找系的名稱。如果經常需要進行這個操作時,連接查詢會浪費很多的時間。因此可以在student表中增加一個冗餘欄位dept_name,該欄位用來存儲學生所在院系的名稱。這樣就不用每次都進行連接操作了。)
主鍵: 主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
外鍵: 外鍵用於關聯兩個表。
複合鍵: 複合鍵(組合鍵)將多個列作為一個索引鍵,一般用於複合索引。
索引: 使用索引可快速訪問資料庫表中的特定信息。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證數據的一致性。
4.mysql的使用
1)show databases; #顯示資料庫
2)use <資料庫名>; # 連接資料庫
3)show tables; #顯示表
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; #添加phone欄位並且不能為空
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'
mysql命令大全
http://www.jb51.net/article/74564.htm