首先咱們要明白數據的概念,什麼是數據呢,寬泛來說,咱們以前所建立的文件,以及各類賦值語句,甚至是計算機上的各類圖片,,視頻,音樂,其實最後均可以叫作是數據.node
那麼問題就來了,庫,一般來說庫的定義就是一個能夠存放不少東西的容器,因此數據庫,最簡單的定義就是能夠存放不少數據的一個庫.python
試想一下,若是咱們在一個比較大的公司,就是那種須要同時和上千萬用戶進行交互的軟件的公司,那麼用戶和公司軟件之間的交互應該是什麼樣的?mysql
咱們不是直接和計算機交互,而應該是服務器,甚至一般是一個服務器的集羣.而這些服務器裏面裝的也不是咱們這些經常使用的win10或者mac系統,而是Linux或者是Windows Server系列,這些系統的界面和與用戶的交互性也許沒有那麼優秀,卻足夠穩定.而這些系統上一般就只會放一些數據庫,僅此而已.web
那麼咱們使用數據庫的理由就有了,一方面,咱們要用數據庫來存儲文件,從而實現文件和程序的分離,另一方面,數據庫修改數據的效率比咱們直接手動修改,或者是經過Python修改的效率要高的太多太多了.redis
數據庫按照不一樣的標準,分類也不盡相同,但通常會有三種標準來進行分類:sql
關係型與非關係型數據庫
關係型:顧名思義,關係型數據庫就是其中的表與表之間都有聯繫,每一個表並非獨立存在的,好比MySQL,Oracle,SQLserver等windows
非關係型:非關係型數據庫裏面沒有表的概念,只有單獨的每一行的數據,好比redis,MongoDB等,其優點在於存取速度都比關係型數據庫要快,缺點就是邏輯較複雜,脈絡不清晰.服務器
內存和硬盤(按照工做的區域來分):
硬盤:能夠永久存儲,好比MySQL,MongoDB等
內存:數據的存取率極高,好比redis,memcache等
sql與nosql來區分
sql:就是說數據庫須要經過sql語句來操控,操控較複雜,但效率很高
nosql:數據庫操做是經過直接用key-value的方式進行記錄,而不經過sql語句,
首先,若是你歷來沒有安裝過數據庫,那麼恭喜你,你很是的幸運,你只須要按照下面這個教程來一步一步安裝便可,絕對不會出錯.教程以下:
Windows版本
mysql的安裝、啓動和基礎配置 —— Windows版本:http://www.javashuo.com/article/p-vdkozxfv-bx.html
Linux版本
mysql的安裝、啓動和基礎配置 —— Linux版本:http://www.javashuo.com/article/p-knjgbxlt-bt.html
Mac版本
mysql的安裝、啓動和基礎配置 —— Mac版本:http://www.javashuo.com/article/p-gkiysnzk-bu.html
以上安裝教程均爲博客園,nickchen這位大帥比所寫,很是的詳細,親測沒有任務問題.
下面咱們要說的是,若是你以前安裝過數據庫,並且卸載的不是那麼完全,那麼就會很是麻煩.其實也沒有那麼麻煩,只須要作兩個步驟就能夠了
刪除環境變量裏數據庫的地址
具體爲,右鍵個人電腦-->屬性-->高級系統設置-->高級標籤頁-->環境變量-->找到下面系統變量裏面有一個叫path的東西,雙擊或者編輯,而後從裏面全部的環境變量裏面找到相似於這樣的:
刪除便可,順便把這個路徑下的文件夾也刪除,整個刪除
刪除安裝過的服務的註冊表
註冊表的路徑比較繞,這裏要看本身,首先,打開運行界面
輸入上圖中的regedit,打開註冊表,路徑以下:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
對的,咱們要直接刪除這個MySQL的文件夾,果斷的直接刪除
而後,你須要重啓機器,記住,這點很是重要,重啓完以後,你的電腦就完全乾淨了,再也沒有以前安裝的殘餘了,而後按照上面的安裝步驟安裝就能夠了.
親測,十分有效,若是沒效果,你來找我
在正確的安裝好數據庫以後,咱們打開cmd窗口,輸入mysql,就能夠進入到數據庫裏了~不過這時候你是以遊客方式進入的,並無任何的修改權.
若是這個時候你報錯是這樣的:
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
那麼你須要去服務裏面把MySQL打開,步驟爲:
開始菜單-->搜索框-->服務–>在名稱裏面找到MySQL,而後右鍵啓動便可,以後就能夠用mysql鏈接上數據庫了,固然這是最原始的鏈接數據庫的方法,須要更高級一點的,請看下列網站:
http://www.downxia.com/downinfo/227395.html
xxxxxxxxxx
#1. 直接輸入mysql登陸就是遊客登陸,登錄了也不能操做什麼
>:mysql
#2. 帳號密碼登陸
>:mysql -uroot -p
# 再輸入密碼,沒有任何提示,沒有密碼就直接回車
#3. 鏈接指定服務器的mysql
>:mysql -h ip地址 -P 端口號 -u 對方帳號 -p 密碼
# 回車後敲入密碼
eg:
>:mysql -hlocalhost -P3306 -uroot -p 密碼
#4.退出數據庫
quit
exit
咱們把信息存到數據庫中的目的固然就是爲了查看,或者說調用,單純的存進去沒有任何意義.
查看數據庫信息的經常使用命令爲如下幾個:
xxxxxxxxxx
#1. 查看當前用戶
select user():
#2. root權限下能夠查看全部用戶信息
select * from mysql.user:
select * from mysql.user \G
select user,password,host from mysql.user;
::1ipv6,能夠接收全部的ipv6
#3. root登錄下刪除遊客(重啓服務)
delete from mysql.user where user='';
#4. root登錄下,修改密碼(重啓服務)
update mysql.user set password=password('123456') where host = '127.0.0.1'
mysql> set password for 用戶名@localhost = password('新密碼');
eg:
mysql> set password for root@localhost = password('123');
#5. 沒有登陸
musqladmin -uroot -p舊密碼 password"新密碼"
#6. 建立用戶(root登錄下)
grant 權限 on 數據庫名.表名 to 用戶名@主機名 identified by '密碼';
不論是對數據庫,仍是對錶,或者是對記錄,咱們最經常使用的操做基本大體都是分四種,增刪改查,因此下面咱們分別用這四個方向來簡單說明一下對於數據庫,表和數據記錄三者的一些簡單操做.
xxxxxxxxxx
# 前提:用戶已登陸,且有權限對數據庫操做
1. 增,即增長,建立數據庫,後面爲默認的字符編碼類型
create database 數據庫名[charset='utf8']:
實例以下:
create database db1;
create database db2 charset='utf8'
2. 刪,刪除數據庫,主要用drop
drop database 數據名;
drop database db2
3. 改,即修改,對數據庫的修改通常只修改其編碼集以及數據庫名,可是直接修改數據庫名有丟失數據的風險,由於若是以前有些腳本在取數據的話,會丟失數據,因此其實對數據庫更名的命令在MySQL5.1.7版本的時候被添加進來,可是5.1.23的時候又去掉了,因此咱們瞭解就好
rename database db1 to db2;(現版本已經沒有這個命令)
alter database db1 charset="utf8";# 修改數據庫的默認字符集編碼
4. 查,不論是什麼結構,查都是其重中之重,由於只有你能查到數據,才能把它取出來,才能夠作別的操做
show databases;# 能夠查看當前機器有的全部的數據庫,只顯示數據庫名
show create database db1;# 能夠查看指定數據庫的詳細信息,包括數據庫的名字和其編碼格式
一樣是增,刪,改,查:
x
# 前提:要知道當前在哪一個庫下面
1. 增
create table 表名(
(字段 字段類型)
(字段 字段類型)
(字段 字段類型)
);# 建立一個表
create table student(name char(16),age int,gender char(10))
2. 刪,表的刪除方法和數據庫基本同樣,都是用drop
drop table 表名;
drop table student;
3. 改,表的修改一般是指修改表名和字段名以及字段屬性
alter table 舊錶名 rename 新表名;
alter table student rename teacher;
alter table student change 舊字段名 新字段名 新字段屬性
alter table student modify 字段名 字段的新屬性
4. 查,表的查詢一般能夠查詢三個方面,以下例
show tables;# 查看當前數據庫裏全部的表名
show create table student;# 查看具體某個表的詳細信息
desc student;# 能夠查看錶字段的結構信息,包括字段名,以及每一個字段的類型的定義
x
# 前提: 知道操做的是哪一個表裏面的字段
# 1.增, 添加字段
insert [into][數據庫名.]表名 values(值1,...,值n);
insert into t1 (name, age) values ("1", 18),("2", 8);
# 2.查
select * from [數據庫名.]表名;
select * from student
select * from owen.student
# 注意一點,其中的*實際上是表明全部字段的意思
# 3.改
update [數據庫名.]表名 set 字段1=新值1,字段n=新值n where 字段=舊值;
update t1 set age=28 where name="1";
# 4.刪,字段的刪除用的是delete,不是drop了
delete from [數據庫名.]表名 where 條件
delete from t1 where age>8;