日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python数据库有什么特点_python进阶十——mysql初识

發(fā)布時間:2025/4/5 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据库有什么特点_python进阶十——mysql初识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.MySQL是什么

1.1:MYSQL簡介

MySQL 是最流行的數(shù)據(jù)庫之一,是一個免費開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),但也不意味著該數(shù)據(jù)庫是完全免費的。MySQL 由瑞典 MySQL AB 公司開發(fā),目前屬于 Oracle 公司。MySQL 適合中小型軟件,被個人用戶以及中小企業(yè)青睞。

針對不同的用戶,MySQL 分為兩個版本:

MySQL Community Server(社區(qū)版):該版本是自由下載且完全免費的,但是官方不提供技術(shù)支持。

MySQL Enterprise Server(企業(yè)版):該版本是收費的,而且不能下載,但是該版本擁有完善的技術(shù)支持(官方提供電話技術(shù)支持)。

注意:MySQL Cluster 主要用于架設(shè)群服務(wù)器,需要在社區(qū)服務(wù)或企業(yè)版的基礎(chǔ)上使用。

MySQL 的命名機制由 3 個數(shù)字和 1 個后綴組成,例如 mysql-5.7.20:

第 1 個數(shù)字“5”是主版本號,用于描述文件的格式,所有版本 5 的發(fā)行版都有相同的文件夾格式。

第 2 個數(shù)字“7”是發(fā)行級別,主版本號和發(fā)行級別組合在一起便構(gòu)成了發(fā)行序列號。

第 3 個數(shù)字“20”是在此發(fā)行系列的版本號,隨每次新發(fā)行的版本遞增。通常選擇已經(jīng)發(fā)行的最新版本。

1.2:MySQL的特點、優(yōu)勢

MySQL 數(shù)據(jù)庫管理系統(tǒng)具有很多的優(yōu)勢,下面總結(jié)了其中幾種。

1)MySQL 是開放源代碼的數(shù)據(jù)庫

MySQL 是開放源代碼的數(shù)據(jù)庫,任何人都可以獲取該數(shù)據(jù)庫的源代碼。這就使得任何人都可以修正 MySQL 的缺陷,并且任何人都能以任何目的來使用該數(shù)據(jù)庫。MySQL 是一款可以自由使用的數(shù)據(jù)庫。

2)MySQL 的跨平臺性

MySQL 不僅可以在 Windows 系列的操作系統(tǒng)上運行,還可以在 UNIX、Linux 和 Mac OS

等操作系統(tǒng)上運行。因為很多網(wǎng)站都選擇 UNIX、Linux 作為網(wǎng)站的服務(wù)器,所以 MySQL 的跨平臺性保證了其在 Web

應(yīng)用方面的優(yōu)勢。雖然微軟公司的 SQL Server 數(shù)據(jù)庫是一款很優(yōu)秀的商業(yè)數(shù)據(jù)庫,但是其只能在 Windows

系列的操作系統(tǒng)上運行。因此,MySQL 數(shù)據(jù)庫的跨平臺性是一個很大的優(yōu)勢。

3)價格優(yōu)勢

MySQL 數(shù)據(jù)庫是一個自由軟件,任何人都可以從 MySQL 的官方網(wǎng)站上下載該軟件,這些社區(qū)版本的 MySQL

都是免費試用的,即使是需要付費的附加功能,其價格也是很便宜的。相對于 Oracle、DB2 和 SQL Server

這些價格昂貴的商業(yè)軟件,MySQL 具有絕對的價格優(yōu)勢。

1.3:RDBMS 術(shù)語

學(xué)習(xí)一下RDBMS的一些術(shù)語:

數(shù)據(jù)庫: 數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合。

數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣。在一個數(shù)據(jù)庫中的表看起來像一個簡單的電子表格。

列: 一列(數(shù)據(jù)元素) 包含了相同類型的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)。

行:一行(=元組,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶訂閱的數(shù)據(jù)。

冗余:存儲兩倍數(shù)據(jù),冗余降低了性能,但提高了數(shù)據(jù)的安全性。

主鍵:主鍵是唯一的。一個數(shù)據(jù)表中只能包含一個主鍵。你可以使用主鍵來查詢數(shù)據(jù)。

外鍵:外鍵用于關(guān)聯(lián)兩個表。

復(fù)合鍵:復(fù)合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復(fù)合索引。

索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構(gòu)。類似于書籍的目錄。

參照完整性: 參照的完整性要求關(guān)系中不允許引用不存在的實體。與實體完整性是關(guān)系模型必須滿足的完整性約束條件,目的是保證數(shù)據(jù)的一致性。

MySQL 為關(guān)系型數(shù)據(jù)庫(Relational Database Management System), 這種所謂的"關(guān)系型"可以理解為"表格"的概念, 一個關(guān)系型數(shù)據(jù)庫由一個或數(shù)個表格組成。

表頭(header): 每一列的名稱;

列(col): 具有相同數(shù)據(jù)類型的數(shù)據(jù)的集合;

行(row): 每一行用來描述某條記錄的具體信息;

值(value): 行的具體信息, 每個值必須與該列的數(shù)據(jù)類型相同;

鍵(key): 鍵的值在當(dāng)前列中具有唯一性。

2.MySQL 安裝

2.1:Linux/UNIX 上安裝 MySQL

Linux平臺上推薦使用RPM包來安裝Mysql,MySQL AB提供了以下RPM包的下載地址:

MySQL -MySQL服務(wù)器。你需要該選項,除非你只想連接運行在另一臺機器上的MySQL服務(wù)器。

MySQL-client -MySQL 客戶端程序,用于連接并操作Mysql服務(wù)器。

MySQL-devel -庫和包含文件,如果你想要編譯其它MySQL客戶端,例如Perl模塊,則需要安裝該RPM包。

MySQL-shared - 該軟件包包含某些語言和應(yīng)用程序需要動態(tài)裝載的共享庫(libmysqlclient.so*),使用MySQL。

MySQL-bench - MySQL數(shù)據(jù)庫服務(wù)器的基準和性能測試工具。

安裝前,我們可以檢測系統(tǒng)是否自帶安裝 MySQL:

rpm -qa | grep mysql

如果你系統(tǒng)有安裝,那可以選擇進行卸載:

rpm -e mysql  //普通刪除模式

rpm -e --nodeps mysql  //強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除

安裝 MySQL:

接下來我們在 Centos7 系統(tǒng)下使用 yum 命令安裝 MySQL,需要注意的是 CentOS 7 版本中 MySQL數(shù)據(jù)庫已從默認的程序列表中移除,所以在安裝前我們需要先去官網(wǎng)下載 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

權(quán)限設(shè)置:

chown mysql:mysql -R /var/lib/mysql

初始化 MySQL:

mysqld --initialize

啟動 MySQL:

systemctl start mysqld

查看 MySQL 運行狀態(tài):

systemctl status mysqld

注意:如果我們是第一次啟動 mysql 服務(wù),mysql 服務(wù)器首先會進行初始化的配置

此外,你也可以使用 MariaDB 代替,MariaDB 數(shù)據(jù)庫管理系統(tǒng)是 MySQL 的一個分支,主要由開源社區(qū)在維護,采用 GPL 授權(quán)許可。開發(fā)這個分支的原因之一是:甲骨文公司收購了 MySQL 后,有將 MySQL 閉源的潛在風(fēng)險,因此社區(qū)采用分支的方式來避開這個風(fēng)險。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品

yum install mariadb-server mariadb

mariadb數(shù)據(jù)庫的相關(guān)命令是:

systemctl start mariadb #啟動MariaDB

systemctl stop mariadb #停止MariaDB

systemctl restart mariadb #重啟MariaDB

systemctl enable mariadb #設(shè)置開機啟動

2.2:驗證 MySQL 安裝

在成功安裝 MySQL 后,一些基礎(chǔ)表會表初始化,在服務(wù)器啟動后,你可以通過簡單的測試來驗證 MySQL 是否工作正常。

使用 mysqladmin 工具來獲取服務(wù)器狀態(tài):

使用 mysqladmin 命令來檢查服務(wù)器的版本, 在 linux 上該二進制文件位于 /usr/bin 目錄,在 Windows 上該二進制文件位于C:\mysql\bin

[root@host]# mysqladmin --version

linux上該命令將輸出以下結(jié)果,該結(jié)果基于你的系統(tǒng)信息:

mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386

如果以上命令執(zhí)行后未輸出任何信息,說明你的Mysql未安裝成功

2.3:使用 MySQL Client(Mysql客戶端) 執(zhí)行簡單的SQL命令

你可以在 MySQL Client(Mysql客戶端) 使用 mysql 命令連接到 MySQL 服務(wù)器上,默認情況下 MySQL 服務(wù)器的登錄密碼為空,所以本實例不需要輸入密碼。

命令如下:

[root@host]# mysql

以上命令執(zhí)行后會輸出 mysql>提示符,這說明你已經(jīng)成功連接到Mysql服務(wù)器上,你可以在 mysql> 提示符執(zhí)行SQL命令:

mysql>SHOW DATABASES;+----------+

| Database |

+----------+

| mysql |

| test |

+----------+

2 rows in set (0.13 sec)

2.4:Mysql安裝后需要做的

Mysql安裝成功后,默認的root用戶密碼為空,你可以使用以下命令來創(chuàng)建root用戶的密碼:

[root@host]# mysqladmin -u root password "new_password";

現(xiàn)在你可以通過以下命令來連接到Mysql服務(wù)器:

[root@host]# mysql -u root -p

Enter password:123456

注意:在輸入密碼時,密碼是不會顯示了,你正確輸入即可

2.5:MySQL 用戶設(shè)置

如果你需要添加 MySQL 用戶,你只需要在 mysql 數(shù)據(jù)庫中的 user 表添加新用戶即可。

以下為添加用戶的的實例,用戶名為guest,密碼為guest123,并授權(quán)用戶可進行 SELECT, INSERT 和 UPDATE操作權(quán)限:

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() 函數(shù)來對密碼進行加密。 你可以在以上實例看到用戶密碼加密后為: 6f8c114b58f2ce9e.

注意:在 MySQL5.7 中 user 表的 password 已換成了authentication_string。

注意:password() 加密函數(shù)已經(jīng)在 8.0.11 中移除了,可以使用 MD5() 函數(shù)代替。

注意:在注意需要執(zhí)行 FLUSH PRIVILEGES 語句。 這個命令執(zhí)行后會重新載入授權(quán)表。

如果你不使用該命令,你就無法使用新創(chuàng)建的用戶來連接mysql服務(wù)器,除非你重啟mysql服務(wù)器。

你可以在創(chuàng)建用戶時,為用戶指定權(quán)限,在對應(yīng)的權(quán)限列中,在插入語句中設(shè)置為 'Y' 即可,用戶權(quán)限列表如下:

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 命令,以下命令會給指定數(shù)據(jù)庫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數(shù)據(jù)庫中的user表創(chuàng)建一條用戶信息記錄。

注意: MySQL 的SQL語句以分號 (;) 作為結(jié)束標(biāo)識。

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:數(shù)據(jù)庫命令行操作

1.查看所有數(shù)據(jù)庫

show databases;2.切換數(shù)據(jù)庫

use [數(shù)據(jù)庫名];3.創(chuàng)建數(shù)據(jù)庫

create database [數(shù)據(jù)庫名] ;4.刪除數(shù)據(jù)庫

drop database [數(shù)據(jù)庫名];5.對表的操作

查看所有表

show tables;6.創(chuàng)建表

create table [表名](字段1 類型1 約束1,字段2 類型2 約束2);7.刪除表

drop table [表名]8.修改表名字

rename table [表名] to [新名]

2.8:對字段的操作

9.查詢字段(表結(jié)構(gòu))

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:對數(shù)據(jù)的操作

13.增加數(shù)據(jù)

插入一個全字段

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.修改數(shù)據(jù)

update studentset name=’xxx’ where name=’liudehua’17.查找所有數(shù)據(jù)select * fromstudents18.數(shù)據(jù)庫備份和恢復(fù)

備份: sudo mysqldump –u數(shù)據(jù)庫名 –p數(shù)據(jù)庫密碼 備份文件夾名> ~/Desktop/文件夾名back.sql

恢復(fù):進入mysql先要創(chuàng)建一個新的數(shù)據(jù)庫,注意字符集

然后退出mysql

sudo mysql –u數(shù)據(jù)庫名 –p數(shù)據(jù)庫密碼< ~/Desktop/備份文件夾名back.sql

總結(jié)

以上是生活随笔為你收集整理的python数据库有什么特点_python进阶十——mysql初识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。