python数据库有什么特点_python进阶十——mysql初识
1.MySQL是什么
1.1:MYSQL簡介
MySQL 是最流行的數據庫之一,是一個免費開源的關系型數據庫管理系統,但也不意味著該數據庫是完全免費的。MySQL 由瑞典 MySQL AB 公司開發,目前屬于 Oracle 公司。MySQL 適合中小型軟件,被個人用戶以及中小企業青睞。
針對不同的用戶,MySQL 分為兩個版本:
MySQL Community Server(社區版):該版本是自由下載且完全免費的,但是官方不提供技術支持。
MySQL Enterprise Server(企業版):該版本是收費的,而且不能下載,但是該版本擁有完善的技術支持(官方提供電話技術支持)。
注意:MySQL Cluster 主要用于架設群服務器,需要在社區服務或企業版的基礎上使用。
MySQL 的命名機制由 3 個數字和 1 個后綴組成,例如 mysql-5.7.20:
第 1 個數字“5”是主版本號,用于描述文件的格式,所有版本 5 的發行版都有相同的文件夾格式。
第 2 個數字“7”是發行級別,主版本號和發行級別組合在一起便構成了發行序列號。
第 3 個數字“20”是在此發行系列的版本號,隨每次新發行的版本遞增。通常選擇已經發行的最新版本。
1.2:MySQL的特點、優勢
MySQL 數據庫管理系統具有很多的優勢,下面總結了其中幾種。
1)MySQL 是開放源代碼的數據庫
MySQL 是開放源代碼的數據庫,任何人都可以獲取該數據庫的源代碼。這就使得任何人都可以修正 MySQL 的缺陷,并且任何人都能以任何目的來使用該數據庫。MySQL 是一款可以自由使用的數據庫。
2)MySQL 的跨平臺性
MySQL 不僅可以在 Windows 系列的操作系統上運行,還可以在 UNIX、Linux 和 Mac OS
等操作系統上運行。因為很多網站都選擇 UNIX、Linux 作為網站的服務器,所以 MySQL 的跨平臺性保證了其在 Web
應用方面的優勢。雖然微軟公司的 SQL Server 數據庫是一款很優秀的商業數據庫,但是其只能在 Windows
系列的操作系統上運行。因此,MySQL 數據庫的跨平臺性是一個很大的優勢。
3)價格優勢
MySQL 數據庫是一個自由軟件,任何人都可以從 MySQL 的官方網站上下載該軟件,這些社區版本的 MySQL
都是免費試用的,即使是需要付費的附加功能,其價格也是很便宜的。相對于 Oracle、DB2 和 SQL Server
這些價格昂貴的商業軟件,MySQL 具有絕對的價格優勢。
1.3:RDBMS 術語
學習一下RDBMS的一些術語:
數據庫: 數據庫是一些關聯表的集合。
數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
列: 一列(數據元素) 包含了相同類型的數據, 例如郵政編碼的數據。
行:一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
冗余:存儲兩倍數據,冗余降低了性能,但提高了數據的安全性。
主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
外鍵:外鍵用于關聯兩個表。
復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引。
索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄。
參照完整性: 參照的完整性要求關系中不允許引用不存在的實體。與實體完整性是關系模型必須滿足的完整性約束條件,目的是保證數據的一致性。
MySQL 為關系型數據庫(Relational Database Management System), 這種所謂的"關系型"可以理解為"表格"的概念, 一個關系型數據庫由一個或數個表格組成。
表頭(header): 每一列的名稱;
列(col): 具有相同數據類型的數據的集合;
行(row): 每一行用來描述某條記錄的具體信息;
值(value): 行的具體信息, 每個值必須與該列的數據類型相同;
鍵(key): 鍵的值在當前列中具有唯一性。
2.MySQL 安裝
2.1:Linux/UNIX 上安裝 MySQL
Linux平臺上推薦使用RPM包來安裝Mysql,MySQL AB提供了以下RPM包的下載地址:
MySQL -MySQL服務器。你需要該選項,除非你只想連接運行在另一臺機器上的MySQL服務器。
MySQL-client -MySQL 客戶端程序,用于連接并操作Mysql服務器。
MySQL-devel -庫和包含文件,如果你想要編譯其它MySQL客戶端,例如Perl模塊,則需要安裝該RPM包。
MySQL-shared - 該軟件包包含某些語言和應用程序需要動態裝載的共享庫(libmysqlclient.so*),使用MySQL。
MySQL-bench - MySQL數據庫服務器的基準和性能測試工具。
安裝前,我們可以檢測系統是否自帶安裝 MySQL:
rpm -qa | grep mysql
如果你系統有安裝,那可以選擇進行卸載:
rpm -e mysql //普通刪除模式
rpm -e --nodeps mysql //強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除
安裝 MySQL:
接下來我們在 Centos7 系統下使用 yum 命令安裝 MySQL,需要注意的是 CentOS 7 版本中 MySQL數據庫已從默認的程序列表中移除,所以在安裝前我們需要先去官網下載 Yum 資源包,下載地址為:https://dev.mysql.com/downloads/repo/yum/
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
權限設置:
chown mysql:mysql -R /var/lib/mysql
初始化 MySQL:
mysqld --initialize
啟動 MySQL:
systemctl start mysqld
查看 MySQL 運行狀態:
systemctl status mysqld
注意:如果我們是第一次啟動 mysql 服務,mysql 服務器首先會進行初始化的配置
此外,你也可以使用 MariaDB 代替,MariaDB 數據庫管理系統是 MySQL 的一個分支,主要由開源社區在維護,采用 GPL 授權許可。開發這個分支的原因之一是:甲骨文公司收購了 MySQL 后,有將 MySQL 閉源的潛在風險,因此社區采用分支的方式來避開這個風險。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品
yum install mariadb-server mariadb
mariadb數據庫的相關命令是:
systemctl start mariadb #啟動MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重啟MariaDB
systemctl enable mariadb #設置開機啟動
2.2:驗證 MySQL 安裝
在成功安裝 MySQL 后,一些基礎表會表初始化,在服務器啟動后,你可以通過簡單的測試來驗證 MySQL 是否工作正常。
使用 mysqladmin 工具來獲取服務器狀態:
使用 mysqladmin 命令來檢查服務器的版本, 在 linux 上該二進制文件位于 /usr/bin 目錄,在 Windows 上該二進制文件位于C:\mysql\bin
[root@host]# mysqladmin --version
linux上該命令將輸出以下結果,該結果基于你的系統信息:
mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386
如果以上命令執行后未輸出任何信息,說明你的Mysql未安裝成功
2.3:使用 MySQL Client(Mysql客戶端) 執行簡單的SQL命令
你可以在 MySQL Client(Mysql客戶端) 使用 mysql 命令連接到 MySQL 服務器上,默認情況下 MySQL 服務器的登錄密碼為空,所以本實例不需要輸入密碼。
命令如下:
[root@host]# mysql
以上命令執行后會輸出 mysql>提示符,這說明你已經成功連接到Mysql服務器上,你可以在 mysql> 提示符執行SQL命令:
mysql>SHOW DATABASES;+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.13 sec)
2.4:Mysql安裝后需要做的
Mysql安裝成功后,默認的root用戶密碼為空,你可以使用以下命令來創建root用戶的密碼:
[root@host]# mysqladmin -u root password "new_password";
現在你可以通過以下命令來連接到Mysql服務器:
[root@host]# mysql -u root -p
Enter password:123456
注意:在輸入密碼時,密碼是不會顯示了,你正確輸入即可
2.5:MySQL 用戶設置
如果你需要添加 MySQL 用戶,你只需要在 mysql 數據庫中的 user 表添加新用戶即可。
以下為添加用戶的的實例,用戶名為guest,密碼為guest123,并授權用戶可進行 SELECT, INSERT 和 UPDATE操作權限:
root@host# mysql -u root -p
Enter password:123456mysql>use mysql;
Database changed
mysql>INSERT INTO user
(host, user, password,
select_priv, insert_priv, update_priv)
VALUES ('localhost', 'guest',
PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK,1 row affected (0.20sec)
mysql>FLUSH PRIVILEGES;
Query OK,1 row affected (0.01sec)
mysql> SELECT host, user, password FROM user WHERE user = 'guest';+-----------+---------+------------------+
| host | user | password |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)
在添加用戶時,請注意使用MySQL提供的 PASSWORD() 函數來對密碼進行加密。 你可以在以上實例看到用戶密碼加密后為: 6f8c114b58f2ce9e.
注意:在 MySQL5.7 中 user 表的 password 已換成了authentication_string。
注意:password() 加密函數已經在 8.0.11 中移除了,可以使用 MD5() 函數代替。
注意:在注意需要執行 FLUSH PRIVILEGES 語句。 這個命令執行后會重新載入授權表。
如果你不使用該命令,你就無法使用新創建的用戶來連接mysql服務器,除非你重啟mysql服務器。
你可以在創建用戶時,為用戶指定權限,在對應的權限列中,在插入語句中設置為 'Y' 即可,用戶權限列表如下:
Select_priv
Insert_priv
Update_priv
Delete_priv
Create_priv
Drop_priv
Reload_priv
Shutdown_priv
Process_priv
File_priv
Grant_priv
References_priv
Index_priv
Alter_priv
另外一種添加用戶的方法為通過SQL的 GRANT 命令,以下命令會給指定數據庫TUTORIALS添加用戶 yhh ,密碼為 123456
root@host# mysql -u root -p
Enter password:*******mysql>use mysql;
Database changed
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP-> ON TUTORIALS.*
-> TO 'yhh'@'localhost'
-> IDENTIFIED BY '123456';
以上命令會在mysql數據庫中的user表創建一條用戶信息記錄。
注意: MySQL 的SQL語句以分號 (;) 作為結束標識。
2.6:/etc/my.cnf 文件配置
一般情況下,你不需要修改該配置文件,該文件默認配置如下:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
在配置文件中,你可以指定不同的錯誤日志文件存放的目錄,一般你不需要改動這些配置
2.7:數據庫命令行操作
1.查看所有數據庫
show databases;2.切換數據庫
use [數據庫名];3.創建數據庫
create database [數據庫名] ;4.刪除數據庫
drop database [數據庫名];5.對表的操作
查看所有表
show tables;6.創建表
create table [表名](字段1 類型1 約束1,字段2 類型2 約束2);7.刪除表
drop table [表名]8.修改表名字
rename table [表名] to [新名]
2.8:對字段的操作
9.查詢字段(表結構)
desc [表名]10.增加表的字段
alter table [表明]add [字段名 類型 約束]11.刪除字段
alter table [表名]drop[字段名]12.修改字段
alter table [表名] change [字段名] [新字段名 類型 約束]
① 、alter table students change id idint;
②、alter table students drop primary key;
2.9:對數據的操作
13.增加數據
插入一個全字段
insert into students values(0,’xxx’,31,1)
插入多個全字段
insert into students values(0,’liudehua’,24,0),(0,’yangmi’,31,0)
插入一個部分字段
insert into students(id,name) values(0,’zhaoliying’)
插入多個部分字段
insert into students(id,name) values(0,’liushishi’),(0,’linzhiling’)14.刪除某一條
deletefrom students where id=1;15.清空
deletefromstudents;16.修改數據
update studentset name=’xxx’ where name=’liudehua’17.查找所有數據select * fromstudents18.數據庫備份和恢復
備份: sudo mysqldump –u數據庫名 –p數據庫密碼 備份文件夾名> ~/Desktop/文件夾名back.sql
恢復:進入mysql先要創建一個新的數據庫,注意字符集
然后退出mysql
sudo mysql –u數據庫名 –p數據庫密碼< ~/Desktop/備份文件夾名back.sql
總結
以上是生活随笔為你收集整理的python数据库有什么特点_python进阶十——mysql初识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奇瑞瑞虎8+pro的玻璃水多久需要加?
- 下一篇: python做mysql数据迁移_Pyt