您好,登錄后才能下訂單哦!
數據:
描述事物的符號記錄稱為數據(Data)
包括數字,文字,圖形,圖像,聲音,檔案記錄等
以"記錄"形式按統一的格式進行存儲
表:
將不同的記錄組織在一起,就形成了"表"
是用來存儲具體數據的
數據庫:
數據庫就是表的集合,是存儲數據的倉庫
以一定的組織方式存儲的相互有關的數據
SQL_Server(微軟公司)
面向Windows操作系統
簡單,易用
Oracle(甲骨文公司產品)
面向所有主流平臺
安全,完善,操作復雜
DB2(IBM公司產品)
面向所有主流平臺
大型,安全,完善
MySQL(甲骨文公司收購)
免費,開源,體積小
關系數據庫系統是基于關系模型的數據庫系統,它的基本概念來自于關系模型
關系模型建立在關系代數的理論基礎上,數據結構使用簡單易懂的二維數據表,可以用簡單“實體-關系”(E-R)圖來直接表示
E-R圖中包含了實體(數據對象),關系和屬性三個要素
實體:
也稱為實例,對應現實世界中可區別于其他對象的“事件”或“事物”,如銀行客戶,銀行賬戶等
屬性:
實體所具有的某一特性,一個實體可以有多個屬性。例如“銀行客戶”實體集中的每個實體均具有姓名,地址,電話等屬性
聯系:
實體集之間的對應關系成為聯系,也稱為關系。例如,銀行客戶和銀行賬戶之間存在“儲蓄”的關系
所有實體及實體之間聯系的集合構成一個關系數據庫
關系數據庫的存儲結構是二維表格,反映事物及其聯系的數據是以表格形式保存的
在每個二維表中,每一行稱為一條記錄,用來描述一個對象的信息;每一列稱為一個字段,用來描述對象的一個屬性
非關系數據庫也被稱作NoSQL(Not Only SQL),存儲數據不以關系模型為依據,不需要固定的表格式
非關系型數據庫作為關系數據庫的一個補充,在日益快速發展的網站時代,發揮著高效率與高性能
非關系型數據庫的優點:
數據庫高并發讀寫的需求
對海量數據高效率存儲與訪問
數據庫的高擴展性與高可用性的需求
鍵-值方式(key-value),以鍵為依據存儲,刪,改數據
列存儲(Column-oriented),將相關的數據存儲在列族中
文檔的方式,數據庫由一系列數據項組成,每個數據項都有名稱與對應的值
圖形方式,實體為頂點,關系為邊,數據保存為一個圖形
Memcached是一個開源的,高性能的,具有分布式內存對象的緩存系統,以key-value方式存儲數據
緩存數據以減輕數據庫壓力并能加快訪問速度
加速動態web應用
緩存的內容保存在內存中
Redis也是一個以key-value方式存儲數據的,數據也是保存在內存中,但會定期將數據寫入磁盤中
相對于Mencached有以下特點:
支持內存緩存
支持持久化
數據類型更多
支持群集,分布式
支持隊列
Redis應用舉例:
數據庫前端緩存
session共享
當需要緩存除了key/value之外的更多數據類型時
當緩存的數據需要長久保存時
MySQL是一款深受歡迎的開源關系型數據庫
Oracle旗下的產品
遵守了GPL協議,可以免費試用與修改
特點:
性能卓越,服務穩定
開源,無版權限制,成本低
多線程,多用戶
基于C/S(客戶端/服務器)架構
安全可靠
[root@localhost ~]# mysql -uroot -p ##進入數據庫
Enter password:
...
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mysql; ##使用數據庫
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables; ##查看庫中的表
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db
mysql> desc user; ##顯示數據表的結構
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(10) | NO | PRI |
以一個數據為參考,比它小的放左邊,比它大的放右邊
是Structured Query Language的縮寫,即結構化查詢語言
是關系型數據庫的標準語言
用于維護管理數據庫,如數據查詢,數據更新,訪問控制,對象管理等功能
DDL:數據定義語言
DML:數據操縱語言
DQL:數據查詢語言
DCL:數據控制語言
mysql> create database test; ##創建數據庫
Query OK, 1 row affected (0.00 sec)
mysql> use test; ##使用數據庫
Database changed
mysql> create table info( ##創建表
-> ID int(3) not null,
-> 姓名 varchar(5) not null,
-> 住址 varchar(10) not null,
-> 分數 decimal default 0,
-> primary key (ID));
mysql> desc info; ##查看表結構
+--------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| ID | int(3) | NO | PRI | NULL | |
| 姓名 | varchar(5) | NO | | NULL | |
| 住址 | varchar(10) | NO | | NULL | |
| 分數 | decimal(10,0) | YES | | 0 | |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
mysql> insert into info values (1,'周幾輪','南京',80); ##表中插入數據
Query OK, 1 row affected (0.00 sec)
mysql> insert into info values (2,'王峰','南京',0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into info values (3,'娜英','北京',default);
Query OK, 1 row affected (0.01 sec)
mysql> update info set 住址='上海' where ID=1; ##修改表中數據
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> delete from info where ID=2; ##刪除表中指定數據記錄
Query OK, 1 row affected (0.00 sec)
mysql> select * from info; ##查看表內容(DQL語句)
+----+-----------+--------+--------+
| ID | 姓名 | 住址 | 分數 |
+----+-----------+--------+--------+
| 1 | 周幾輪 | 上海 | 80 |
| 3 | 娜英 | 北京 | 0 |
+----+-----------+--------+--------+
2 rows in set (0.00 sec)
mysql> drop table info; ##刪除表
Query OK, 0 rows affected (0.00 sec)
mysql> show tables; ##查看表
Empty set (0.00 sec)
mysql> drop database test; ##刪除庫
Query OK, 0 rows affected (0.00 sec)
mysql> show databases; ##查看庫
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
DQL是數據查詢語句,只有一條:select
用于從數據表中查找符合條件的數據記錄
查詢時可不指定條件
mysql> select * from info; ##查看表內容
+----+-----------+--------+--------+
| ID | 姓名 | 住址 | 分數 |
+----+-----------+--------+--------+
| 1 | 周幾輪 | 上海 | 80 |
| 3 | 娜英 | 北京 | 0 |
+----+-----------+--------+--------+
2 rows in set (0.00 sec)
查詢時指定條件
mysql> select 住址 from info where 住址='北京'; ##查看指定條件
+--------+
| 住址 |
+--------+
| 北京 |
+--------+
1 row in set (0.00 sec)
##設置用戶權限(用戶不存在時,則新建用戶)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
##查看用戶的權限
mysql> show grants for 'root'@'%';
+-------------------------------------------+
| Grants for root@% |
+-------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' |
+-------------------------------------------+
1 row in set (0.00 sec)
##撤銷用戶的權限
mysql> revoke all on *.* from 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。