資料庫是可以獨立執行的,並且可以對資料的增刪改查提供高效便捷方式的工具。
解決了操作檔案的效率和便捷問題
解決了多個服務同時使用資料時的一致性問題
解決了安全問題
解決了併發問題
程式穩定性:應用伺服器的崩潰不會影響資料的安全
資料的一致性:將所有資料的管理統一,所有對資料的操作統一
併發:資料庫支援併發的網路操作,不需要我們自己寫socket
效率:使用資料庫對資料進行增刪改查的效率比操作檔案的效率高甚多
database
資料庫,簡稱db,存放資料的倉庫,資料按照一定的格式存放
資料庫中的資料按照一定的模型組織、描述和純屬,具有較小的冗餘,較高的資料獨立性和易擴充套件性,可為各種使用者共享資料
dbms
資料庫管理系統 ,對資料進行科學的組織和儲存,以及能夠高效的獲取和維護資料
常見資料庫分類:
【關係型資料庫】通過某些條件都可以同一條目;資料之間關聯性比較緊密;訪問效率相對低;mysql oracle sql server sqllite(輕量級) access
【非關係型資料庫】速度快;通過key找資料;資料之間關聯關係是k-v模式;訪問效率相對高;redis mongodb(輕量級) memcache(記憶體級別,斷電消失)
資料庫管理員 dba
各個概念之間的關係
記錄:多個欄位的資訊組成一條記錄
表:stable,檔案,用來存放多條資訊或記錄
資料庫:資料夾,用來組織檔案/表
資料庫管理系統:管理資料庫
資料庫伺服器:執行資料庫管理軟體
解除安裝資料庫:
停止資料庫服務: net stop mysql 停止mysql服務,還可以在服務裡找到停掉
刪除服務: mysqld remove
刪除安裝檔案
刪除環境變數
清除登錄檔或者重啟電腦
安裝資料庫:
找到安裝包:路徑不能有中文;路徑中不能由特殊字元\t \n \b \1 \2 ;
修改配置檔案:utf-8;所有配置項後面不要由特殊的符號;修改兩個路徑basedir,datadir
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[mysqld]
#設定3306埠
port = 3306
# 設定mysql的安裝目錄
basedir=d:\mysql\mysql-5.6.45-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=d:\mysql\mysql-5.6.45-winx64\data
# 允許最大連線數
max_connections=200
# 服務端使用的字符集預設為8位元編碼的latin1字符集
character-set-server=utf8
# 建立新錶時將使用的預設儲存引擎
default-storage-engine=innodb
配置環境變數:把bin目錄的路徑新增到環境變數中
以管理員身份開啟cmd: mysqld install net start mysql
資料庫命令分類
sql:structured query language,結構化查詢語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢、更新、管理關係型資料庫
【按功能分類】
進入與退出mysql
mysql
mysql> select user() # 檢視當前使用者
mysql> exit # 退出
# 指定使用者密碼登入
mysql -uroot -p
enter password: # 第一次使用root使用者登入時,預設是沒有密碼的,回車直接登入
mysql> set password = password('root'); # 給當前資料庫設定密碼
# 遠端登陸
mysql -utest -p -h 192.168.13.121
建立賬號
格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"
許可權包括:select,insert,update,delete == all
資料庫名.*:與該資料庫裡的所有表建立連線; *.* 表示所有資料庫的所有表
# 建立本地賬戶
mysql> create user 'admin'@'localhost' identified by 'admin';
# 建立可用於遠端登陸賬號
mysql> create user 'test'@'192.168.10.%' identified by '12345' #'192.168.10.%' 指的是乙個網段,可以指定單獨一台主機的ip
mysql> create user 'test1'@'%' # 表示所有機器都可以連線
# 給賬號賦許可權
mysql> grant all on *.* to 'admin'@'localhost'; # 許可權全開
mysql> grant select on *.* to 'test1'; # 開部分許可權,給test1使用者賦予查詢所有資料庫所有表的許可權
mysql> flush privileges; # 賦權立馬生效
# 檢視使用者許可權
mysql> show grants for 'admin'@'localhost';
操作資料夾(庫)
操作命令
建立資料庫
create database 資料庫名 charset utf8 ;
刪除資料庫(千萬別用)
drop database 資料庫名;
檢視所有資料庫
show databases;
檢視當前資料庫
select database();或者status;
連線資料庫
use 資料庫名
修改資料庫
alter database 資料庫名 charset latin1;
進入到其他資料庫時使用: use 資料庫名
操作檔案(表)
操作命令
建立資料表
create table 表名([欄位1] [型別],[欄位2] [型別]);
刪除資料表
drop table 表名;
清空表delete from 表名;或者 truncate 表名;
檢視表的結構
desc 表名; 或者 describe 表名 ;
檢視建表語句
show create table 表名;
重新命名資料表
aletr table 現表名 rename 新錶名;
增加列alter table 表名 add 列名 列型別 ;
刪除列alter table 表名 drop 列名;
重新命名列
alter table 表名 change 現列名 新列名 型別;
修改列的屬性
alter table 表名 modify 列名 新屬性;
新增索引
alter table 表名 add index 索引名(欄位名 1,欄位名 2…);
檢視索引
show index from 表名;
刪除索引
alter table 表名 drop index 索引名
表中的每一行叫做乙個字段
運算元據
操作命令
增加insert into 表名 values(欄位1),(欄位2),(欄位3);字段內部資料以,隔開
檢視select 內容 from 表名 ;
修改update 表名set 修改的內容 where 條件 ;
刪除delete from 表名 where 條件 ;
清空表delete from 表名; truncate table 表名;(比第一條執行速度快)
刪除欄位自增長
alter table 表名 change 列名 列名 型別 ;注意列名稱要重複一次,即需要將列的名稱寫兩次
增加欄位自增長
alter table 表名 modify 列名 型別 auto_increment;
(反方向)alter table 表名 change 列名 列名 型別auto_increment;
修改自增長起始值
alter table 表名 auto_increment=[value];
文章參考:
資料庫 初識
通俗講,資料庫就是以一定格式進行組織資料的集合,直觀來看,資料庫就是電腦上一些具有特殊格式的資料檔案的集合.通常談到資料庫會涉及4個基本概念,即資料,資料庫,資料管理系統,資料庫系統.資料描述世界或者事物的符號記錄稱為資料.數字,文字,聲音,影象 這些都是資料.對於計算機來說,只能處理二進位制資料 ...
Python學習之資料庫操作
在python中,我們可以通過mysqldb這一介面卡連線並運算元據庫。其中有兩個主要的物件connection和cursor,分別用來與資料庫連線和通訊。下面給出乙個與資料庫連線的例項 conn mysqldb.connect host 127.0.0.1 主機名 127.0.0.1 為本機ip ...
python學習之 Redis資料庫
redis常用作伺服器與資料庫之間的乙個快取 客戶端 伺服器 redis 資料庫 客戶端向伺服器發起登入請求,伺服器將使用者名稱和密碼拿去與redis中的快取匹配,若存在匹配值,且驗證通過。則允許登入。若存在匹配值,且驗證不通過,則不允許登入 若redis中找不到匹配值,則向資料庫發起請求,驗證完成...