一、認識數據庫
1.數據庫的由來
之前所認識的數據都是存存某一個文件當中,但是一個文件只能存在於一台機子上,但在現實中不可能所有的數據都是存放在一台機子上的。
(1)現實中是不可能將所有的應用程序放在一台機子上的
假設所有的應用程序只安裝在一台機子上,若該機子崩掉,則意味着數據永久性的消失,所以除非煞筆,要不然沒有人會這么做的。並且一台機子的性能是有限的,有些人就想到了給機子添加硬件,關鍵是你再怎么添加硬件來提升性能,到最后肯定是會達到一個極限的,所以,將所有的應用程序都安裝在一台機子上的做法是不可取的。
(2)數據的安全型沒有保障
數據若之存放於單獨某一台機子上,數據的共享性就必然不一致了。所以,盡量不要將所有的數據存放於一台機子上。
(3)並發效果
必須寫一個socket服務端來管理這台機器(數據庫服務器)上的文件,然后寫一個socket客戶端,完成如下功能:
#1.遠程連接(支持並發) #2.打開文件 #3.讀寫(加鎖) #4.關閉文件
總結上述幾點:
在編寫任何程序之前,都需要事先寫好基於網絡操作一台主機上文件的程序(socket服務端與客戶端程序),於是有人將此類程序寫成一個專門的
處理軟件,這就是mysql等數據庫管理軟件的由來,但mysql解決的不僅僅是數據共享的問題,還有查詢效率,安全性等一系列問題,總之,把程序員從數
據管理中解脫出來,專注於自己的程序邏輯的編寫。
二、數據庫概述
1.數據的概念
世界中用來描述一切事物狀態的記錄符號稱之為數據,它可以是圖片、視頻、文件等等。
2.數據庫的概念
數據庫即存放所有數據的一個倉庫,只是這個倉庫是位於計算機上的,並且是按照一定的格式來儲存的。
3.數據庫管理系統(DataBase Management System-DBMS)
為了科學地組織和存儲數據,高效獲取和維護數據,這就用到了一個系統軟件---數據庫管理系統,如MySQL、Oracle、SQLite、Access、MS SQL Server。
4. 數據庫服務器、數據管理系統、數據庫、表與記錄的關系--重點理解
記錄:1 張大胖 324245234 22(多個字段的信息組成一條記錄,即文件中的一行內容)
表:student,scholl,class_list(即文件)
數據庫:oldboy_stu(即文件夾)
數據庫管理系統:如mysql(是一個軟件)
數據庫服務器:一台計算機(對內存要求比較高)
總結:
數據庫服務器-:運行數據庫管理軟件
數據庫管理軟件:管理-數據庫
數據庫:即文件夾,用來組織文件/表
表:即文件,用來存放多行內容/多條記錄
三、Mysql介紹
1.mysql是什么?
MySQL是一個關系型數據庫管理系統,是一個基於socket編寫的c/s架構軟件。
客戶端的軟件:MySQL自帶>>如MySQL命令,mysqldump命令等
python模塊>>如pymysql
2.數據庫管理軟件的分類
主要分成兩大類:
關系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql語句通用
非關系型:mongodb,redis,memcache
可以理解成:
關系型數據庫需要有表結構
非關系型數據庫是key-value存儲的,沒有表結構
四、安裝
linux版本

1.解壓tar包 cd /software tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21 2.添加用戶與組 groupadd mysql useradd -r -g mysql mysql chown -R mysql:mysql mysql-5.6.21 3.安裝數據庫 su mysql cd mysql-5.6.21/scripts ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data 4.配置文件 cd /software/mysql-5.6.21/support-files cp my-default.cnf /etc/my.cnf cp mysql.server /etc/init.d/mysql vim /etc/init.d/mysql #若mysql的安裝目錄是/usr/local/mysql,則可省略此步 修改文件中的兩個變更值 basedir=/software/mysql-5.6.21 datadir=/software/mysql-5.6.21/data 5.配置環境變量 vim /etc/profile export MYSQL_HOME="/software/mysql-5.6.21" export PATH="$PATH:$MYSQL_HOME/bin" source /etc/profile 6.添加自啟動服務 chkconfig --add mysql chkconfig mysql on 7.啟動mysql service mysql start 8.登錄mysql及改密碼與配置遠程訪問 mysqladmin -u root password 'your_password' #修改root用戶密碼 mysql -u root -p #登錄mysql,需要輸入密碼 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允許root用戶遠程訪問 mysql>FLUSH PRIVILEGES; #刷新權限 源碼安裝mysql

1. 解壓 tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需這樣,很多腳本或可執行程序都會直接訪問這個目錄 2. 權限 groupadd mysql //增加 mysql 屬組 useradd -g mysql mysql //增加 mysql 用戶 並歸於mysql 屬組 chown mysql:mysql -Rf /usr/local/mysql // 設置 mysql 目錄的用戶及用戶組歸屬。 chmod +x -Rf /usr/local/mysql //賜予可執行權限 3. 拷貝配置文件 cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //復制默認mysql配置 文件到/etc目錄 4. 初始化 /usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化數據庫 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //復制mysql服務程序 到系統目錄 chkconfig mysql on //添加mysql 至系統服務並設置為開機啟動 service mysql start //啟動mysql 5. 環境變量配置 vim /etc/profile //編輯profile,將mysql的可執行路徑加入系統PATH export PATH=/usr/local/mysql/bin:$PATH source /etc/profile //使PATH生效。 6. 賬號密碼 mysqladmin -u root password 'yourpassword' //設定root賬號及密碼 mysql -u root -p //使用root用戶登錄mysql use mysql //切換至mysql數據庫。 select user,host,password from user; //查看系統權限 drop user ''@'localhost'; //刪除不安全的賬戶 drop user root@'::1'; drop user root@127.0.0.1; select user,host,password from user; //再次查看系統權限,確保不安全的賬戶均被刪除。 flush privileges; //刷新權限 7. 一些必要的初始配置 1)修改字符集為UTF8 vi /etc/my.cnf 在[client]下面添加 default-character-set = utf8 在[mysqld]下面添加 character_set_server = utf8 2)增加錯誤日志 vi /etc/my.cnf 在[mysqld]下面添加: log-error = /usr/local/mysql/log/error.log general-log-file = /usr/local/mysql/log/mysql.log 3) 設置為不區分大小寫,linux下默認會區分大小寫。 vi /etc/my.cnf 在[mysqld]下面添加: lower_case_table_name=1 修改完重啟:#service mysql restart
window版本

#1、下載:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2、解壓 如果想要讓MySQL安裝在指定目錄,那么就將解壓后的文件夾移動到指定目錄,如:C:\mysql-5.7.16-winx64 #3、添加環境變量 【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】 #4、初始化 mysqld --initialize-insecure #5、啟動MySQL服務 mysqld # 啟動MySQL服務 #6、啟動MySQL客戶端並連接MySQL服務 mysql -u root -p # 連接MySQL服務器

上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL服務器時,當前終端會被hang住,那么做一下設置即可解決此問題: 注意:--install前,必須用mysql啟動命令的絕對路徑 # 制作MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --remove 注冊成服務之后,以后再啟動和關閉MySQL服務時,僅需執行如下命令: # 啟動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql
五、軟件管理
待更。。
六、初識 sql 語句
mysql服務端軟件即mysqld幫我們管理好文件夾以及文件,前提是作為使用者的我們,需要下載mysql的客戶端,或者其他模塊來連接到mysqld,
然后使用mysql軟件規定的語法格式去提交自己命令,實現對文件夾或文件的管理。該語法即sql(Structured Query Language 即結構化查詢語言)

SQL語言主要用於存取數據、查詢數據、更新數據和管理關系數據庫系統,SQL語言由IBM開發。SQL語言分為3種類型: #1、DDL語句 數據庫定義語言: 數據庫、表、視圖、索引、存儲過程,例如CREATE DROP ALTER #2、DML語句 數據庫操縱語言: 插入數據INSERT、刪除數據DELETE、更新數據UPDATE、查詢數據SELECT #3、DCL語句 數據庫控制語言: 例如控制用戶的訪問權限GRANT、REVOKE
1.登錄MySQL數據庫

mysql -u root -p
2.庫的操作

# charset:給數據庫指定編碼格式 增: create database db charset utf8; # 查詢數據庫中所有的庫 查: show databases; # 因還未增添數據,故只能修改字符編碼 改: alter database db charset gbk; # 刪除指定的庫 刪: drop database db;
3.文件夾的操作

# 首先得切換至需要操作的文件夾下 use db; # 創建文件夾,並指定表字段數據類型 增:create table student(id int,name char); create table db.student(id int,name char); # 查詢當前庫下的所有文件夾 查:show tables; # 只能改表字段下的數據 改:alter table student modify name char(15); # 更改表字段的同時可以更改表字段下的數據 alter table student change name new_name char(10); 刪:drop table student;
4.文件的操作

# 增加數據是最后一個一定不能加逗號 增:insert into student values(1,'Luffy'),(2,'Namy'),(3,'Brooke'); 查: 表格式化:desc student; 指定條件查找:select * from student where id>1; 查所有:select * from student; 改:update student set name='LUFFY' where id =1; 刪: # 如果有自增id(即id默認主動增加),新增的數據,仍然是以刪除前的最后一條記錄作為起始 delete from student where id=1; # 數據量大,刪除速度比上一條快,且新增的記錄直接從零開始 truncate table student; auto_increment 表示:自增(即在默認情況下,往表格中加一條數據,id會自動加1) primary key 表示:約束(不能重復且不能為空--not null unique);加速查找