MySQL數據庫的基本使用
一、數據庫概述
1. 基本介紹
數據庫就是以一定格式進行組織的數據的集合。通俗來看數據庫就是用戶計算機上 一些具有特殊格式的數據文件的集合
2. 數據庫的特點
持久化存儲
讀寫速度極高
保證數據的有效性
對程序支持性非常好,容易擴展
3. 數據庫管理系統
數據庫管理系統(英語:Database Management System,簡稱DBMS)是為管理數據庫而設計的軟件系統,包括三大部分構成:
- 數據庫文件集合. 主要是一系列的數據文件, 作用是存儲數據.
- 數據庫服務端. 主要負責對數據文件以及文件中的數據進行管理.
- 數據庫客戶端. 對外通信
4. 數據庫的分類
- 關系型數據庫
所謂的關系型數據庫RDBMS,是建立在關系模型基礎上的數據庫,借助於集合代數等數學概念和方法來處理數據庫中的數據,本質上使用一張二維表來表示關系。
- oracle 銀行,電信等項目
- ms sql server:在微軟的項目中使用
- sqlite:輕量級數據庫,主要應用在移動平台
- mysql:web時代使用最廣泛的關系型數據庫。
- 非關系型數據庫
- 鍵值存儲數據庫(key-value): 可以通過key來添加、查詢或者刪除數據庫,Memcached、Redis、MemcacheDB等
- 列存儲(Column-oriented)數據庫: 列存儲數據庫將數據存儲在列族中,一個列族存儲經常被一起查詢的相關數據,Cassandra、HBase
- 面向文檔(Document-Oriented)數據庫: 面向文檔數據庫會將數據以文檔形式存儲,MongoDB、CouchDB
- 圖形數據庫: 圖形數據庫允許我們將數據以圖的方式存儲,Neo4J、InforGrid
二、MySQL數據庫的使用
1. 常用數據類型如下:
- 整數:int,bit
- 小數:decimal
- 字符串:varchar,char
- 日期時間: date, time, datetime
- 枚舉類型(enum)
特別說明的類型如下:
- decimal表示浮點數,如 decimal(5, 2) 表示共存5位數,小數占 2 位.
- char表示-固定長度的字符串,如char(3),如果填充'ab'時會補一個空格為 'ab ' .
- varchar表示可變長度的字符串,如varchar(3),填充'ab'時就會存儲'ab'
- 注意 : 對於圖片、音頻、視頻等文件,不存儲在數據庫中,而是上傳到某個服務器上,然后在表中存儲 這個文件的保存路徑. 字符串 text 表示存儲大文本,當字符大於 4000 時推薦使用, 比如技術博客.
2. 數據約束
- 主鍵 primary key: 物理上存儲的順序. MySQL 建議所有表的主鍵字段都叫 id, 類型為 int unsigned.
- 非空 not null: 此字段不允許填寫空值.
- 惟一 unique: 此字段的值不允許重復.
- 默認 default: 當不填寫字段對應的值會使用默認值,如果填寫時以填寫為准.
- 外鍵 foreign key: 對關系字段進行約束, 當為關系字段填寫值時, 會到關聯的表中查詢此值是否存在, 如果存在則填寫成功, 如果不存在則填寫失敗並拋出異常.
三、數據庫相關的操作
數據庫(database)的操作
Linux下運行數據庫的命令
-
數據庫登錄
mysql -uroot -p
-
提示輸入密碼
mysql -uroot -p'passwd'
-
數據庫服務器狀態的查看
sudo service mysql status
-
數據庫服務器停止
sudo service mysql stop
-
數據庫服務器啟動
sudo service mysql start
-
退出數據庫
Ctrl+d quit exit
數據庫系統命令
-
查看所有數據庫
show databases;
-
查看版本
select version();
-
查看當前使用的數據庫
select database();
-
顯示當前時間
select now();
-
使用數據庫
use 數據庫名;
-
創建數據庫
create database 數據庫名 charset=utf8;
-
刪除數據庫
drop database 數據庫名;
表(table)結構的操作
-
展示當前數據庫中所有的表
show tables;
-
查看表結構的描述信息
desc stu;
-
創建一個表結構
CREATE TABLE table_name()
-
修改表的名字
alter table 原表名 rename 新表明;
-
修改表-添加字段
alter table 表名 add 列名 類型;
-
修改表-修改字段:重命名版
alter table 表名 change 原名 新名 類型及約束;
-
修改表-修改字段:只改約束和類型
alter table 表名 modify 列名 類型及約束;
-
修改表-刪除字段
alter table 表名 drop 列名;
-
刪除表-慎重
drop table 表名;
-
查看表的創建語句-詳細過程
show create table 表名;
表數據的操作
-
增(插入)
insert [into] 表名稱 (列1,列2,列3),(列1,列2,列3)#需要哪個填哪個,不寫默認按照原數據順序 values (值1, 值2, 值3),(值1, 值2, 值3)#要插入的數據值,可以多個元組;
-
刪
delete from 表名 where 條件;
-
改
update 表名 set 字段名=新值(可多個參數,逗號隔開) where 條件(可用比較公式);
-
查
select * from stu; select age,name from stu;