使用文件來管理數據php
1.管理不方便 java
2.文件操做效率問題python
3.一個程序產生的數據不能共享mysql
因此產生了數據庫c++
本質:將保存數據的部分 存到一個公共的地方 全部的用戶涉及到數據相關 都必須來這個公共地方查找redis
補充 假如存發數據庫的計算機 炸了 那麼 他的數據就都會沒了 因此就會有多個計算機來存放數據庫 數據共享 sql
本質就是一款基於網絡通訊的應用軟件
任何基於網絡通訊的軟件 底層都是socketmongodb
模擬 mysql服務端數據庫
- 基於socket通訊編程
- 收發消息
- SQL語句(實際上是一個公共的標準)
模擬 mysql客戶端
- 基於socket通訊
- 收發消息
- SQL語句(實際上是一個公共的標準)
ps:MySQL不僅僅支持MySQL的客戶端來操做 也支持其餘編程語言直接操做 python java c++ php語法都不同
關係型數據庫一般都是表結構,也就意味着你在用關係型數據庫的時候第一步就是肯定表結構
先搞清楚什麼是 記錄 : 記錄就是 文件內(表內)的一行行數據
補充: 庫 : 一個個文件夾 表: 一個個文件 字段: 表內寫的第一行數據 字段 :字段名+字段類型
字段特定的類型 存名字用的 字符串
存密碼用的 數字
存生日用的 日期
常見的 非關係型數據庫 MySQL(免費 開源 性能不差 支持大量的高併發)
SQLserver (微軟的產品 僅僅支持windows)
Oracle (最牛B的數據庫 可是收費高)
DB2 (收費)
一般都是以k,v鍵值的形式 存儲數據 (速度快 二級緩存)
redis,mongodb(文檔型數據庫 很是接近關係型的非關係型數據),memcache
MySQL其實能夠把它當作一款支持遠程操做文件的軟件
安裝MySQL 在IT行業 不要輕易的嘗試最新版本的軟件 下載以後 是將MySQL的服務端和客戶端都下載了下來 解壓 查看文件目錄 服務端 mysqld 客戶端 mysql 啓動mysqld 1.切換到bin目錄下 2.執行mysqld ps:作前期MySQL配置的時候 終端建議你用管理員身份運行 windows+r啓動的是普通用戶 mysql在初始登錄的時候 是沒有密碼的 直接回車便可 mysql中的sql語句 是以分號結束的 不敲分號 默認你沒有輸入完 客戶端還會讓你繼續輸入
mysql中的sql語句 是以分號結束的 不敲分號 默認你沒有輸入完
客戶端還會讓你繼續輸入
客戶端登錄 mysql -h 127.0.0.1 -P 3306 -uroot -p 能夠簡寫 mysql -uroot -p 若是不輸入用戶名和密碼 默認是訪客模式登錄 所能用到的功能不多 客戶端退出登錄 exit; quit; 查看全部的數據庫 show databases; 查看某個進程 tasklist |findstr 名稱(這個要退出才能查看!) 殺死進程 taskkill /F /PID 進程號 製做環境變量 將啓動文件所在的路徑添加到系統的環境變量中 注意:配置完以後一段要從新啓動mysql服務端及cmd終端 將mysqld製做成系統服務(電腦啓動,客戶端自動啓動,只要啓動客戶端便可) 製做系統服務 你的cmd終端必定要是管理員身份 mysqld --install(要將cmd所有退出,再從新打開,直接輸入該命令!) 修改密碼 沒有密碼的狀況下 mysqladmin -uroot -p password 123 有密碼的狀況下 mysqladmin -uroot -p123 password 123456 當命令輸入錯誤的時候 能夠用\c取消前面的命令 cancel 破解密碼 現將已經啓動的服務端停掉 1.跳過用戶名和密碼的驗證功能 啓動服務端 mysqld --skip-grant-tables 啓動服務端 跳過受權表 2.修改管理員用戶對應的密碼 update mysql.user set password=password(123) where user='root' and host='localhost'; 3.關閉當前服務端 從新以校驗用戶名密碼的方式啓動 4.正常以用戶名密碼的方式 鏈接mysql服務端 配置文件 \s查看 mysql服務端簡單配置 一般狀況下配置文件的後綴都是ini結尾 mysql自帶的配置文件不要修改 可是你能夠新建一個配置文件 my.ini mysql服務端在啓動就會自動加載你的my.ini配置文件內的配置 修改完配置文件以後須要先將服務端中止 從新啓動 才能生效 修改了配置文件必定要重啓服務端 數據庫的基本操做 庫 相似於文件夾 增 create database db1; 查 show databases; 查全部 show create database db1; 查單個 改 alter database db1 charset='gbk'; 修改編碼 刪 drop database db1; 刪庫 表 在建立表的時候 須要先指定庫 指定庫: use 庫名 查看當前雖在的庫: select database() 增 create table userinfo(id int,name char); 查 show tables; 查看某個庫下面的全部的表 show create table userinfo; desc userinfo; <==> describe userinfo; 改 alter table userinfo modify name char(32); 刪 drop table userinfo; 記錄 先建立一個庫或者指定一個已經存在的庫 切換到該庫下 建立表 而後再操做記錄 create database db1; create table userinfo(id int,name char(32),password int); 增 insert into userinfo values(1,'jason',123); 插入單條數據 insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多條數據 查 select * from userinfo; 查詢全部的字段信息 select name from userinfo; 查詢指定字段信息 select id,name from userinfo where id=1 or name=tank; 帶有篩選條件的字段信息 改 update userinfo set name='kevin' where id=1; 修改數據的一個字段信息 update userinfo set name='jason',password=666 where id=1; 修改數據的多個字段 刪 delete from userinfo where id =1; 指定刪符合條件的數據 delete from userinfo; 將表中的數據所有刪除