Redhat
作者:汤海京
第十二章 MySQL
简 介
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。
MySQL的官方发音是"My Ess Que Ell"(不是 MY-SEQUEL )。
第一节 MySQL的安装
1.1 所需资源
MySQL-3.22.32-1.i386.rpm
MySQL-client-3.22.32-1.i386.rpm
1.2 安装方法
第一步:rpm -ivh MySQL-3.22.32-1.i386.rpm
第二步:rpm -ivh MySQL-3.22.32-1.i386.rpm
第三步:执行mysql,启动MySQL monitor就可以使用mysql数据库了。
第二节 MySQL的使用
2.1 启动MySQL守护进程
/etc/rc.d/init.d/mysql start
2.2 关闭MySQL守护进程
/etc/rc.d/init.d/mysql stop
2.3 检查MySQL服务器是否已经运行
2.3.1 检查MySQL的属性
/usr/bin/mysqladmin variables
2.3.2 检查MySQL的版本信息
/usr/bin/mysqladmin version
2.3.3 检查MySQL的运行状态
/usr/bin/mysqladmin status
2.3.4 检查MySQL服务器此时正运行的线程信息
/usr/bin/mysqladmin processlist
2.4 连接和断开服务器
2.4.1 连接服务器
mysql -h host -u user -p
#要求输入口令
2.4.2 断开服务器
quit
#进入MySQL之后可以敲help来获取帮助信息
2.5 MySQL存取权限的控制
MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的加密算法与Unix系统不尽相同,其用户名可以长达16个字符。
先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to thj@localhost identified by 'thj' with grant option; 这样,无论用户thj从什么地方登陆到这台服务器都可以使用MySQL。
第三节 MySQL数据库的简单操作语句
3.1 对数据库的操作
MySQL的数据库实际上对应的是一个目录,它被系统存储在/var/lib/mysql 中。
3.1.1 创建数据库
命令:create database 数据库名;
3.1.2 删除数据库
命令:drop database 数据库名;
3.1.3 查询MySQL中都有什么数据库
命令:show databases;
3.1.4 更改当前使用的数据库
命令:use tbl_name
3.2 对数据表的操作
MySQL中的TABLE才是真正的数据库。
3.2.1 创建数据表
命令:create table tbl_name ( column_specs );
说明:tbl_name 数据表名 column_specs 表中列的说明
3.2.2查询指定的数据表的结构
命令:describe tbl_name;
3.2.3 查询数据库中都有什么数据表
命令:show tables;
3.3 对数据记录的操作
3.3.1 增加新记录
命令:insert into tbl_name (col_name1,col_name2,…) values(values1,values2,….)
说明:insert语句简单易用,但是它也有一个缺陷,就是每次只能插入一条记录。
3.3.2 批量装载数据
命令:load data local infile "filename.txt" into table tbl_name;
说明:MySQl的版本不得低于3.22.15,否则load data local不起作用。该语句实际上是调用了/usr/bin/mysqlimport。
3.3.3 检索信息
命令:select 要选择的东西 from 一个或多个表 where 数据必须满足的条件
注:在MySQL中,每键入一条命令之后,在命令行的结尾都要敲入";",标志是一条命令,或者敲回车之后再敲go,提示系统执行上边的命令;另外,在多数关于MySQL的参考书中,命令都为大写,实际上小写也可以;还有,use语句可以不加";",这是所有MySQL语言中唯一一个不需要加";"就可以执行的语句。

mySqlStringTypesimpactStorageAndPerformanCeaseAsfollows:1)長度,始終使用theSamestoragespace,whatcanbefasterbutlessspace-felfficity.2)varCharisvariable varcharisvariable length,morespace-morespace-morespace-effficitybuteftife buteftife butfority butfority textifforlyslower.3)

mysqlStringTypesIncludeVarChar,文本,char,Enum和set.1)varCharisVersAtileForvariable-lengthStringStringSuptoPuptOuptoPepePecifiedLimit.2)textisidealforlargetStortStorStoverStoverStorageWithoutAutAdefinedLength.3)charlisfixed-lenftenge,for forConsistentDatalikeCodes.4)

MySQLoffersvariousstringdatatypes:1)CHARforfixed-lengthstrings,2)VARCHARforvariable-lengthtext,3)BINARYandVARBINARYforbinarydata,4)BLOBandTEXTforlargedata,and5)ENUMandSETforcontrolledinput.Eachtypehasspecificusesandperformancecharacteristics,sochoose

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

toadduserInmysqleffect和securly,跟隨台詞:1)USEtheCreateUserStattoDaneWuser,指定thehostandastrongpassword.2)GrantNecterAryAryaryPrivilegesSustherthing privilegesgeStatement,usifementStatement,adheringtotheprinciplelastprefilegege.3)

toaddanewuserwithcomplexpermissionsinmysql,loldtheSesteps:1)創建eTheEserWithCreateuser'newuser'newuser'@''localhost'Indedify'pa ssword';。 2)GrantreadAccesstoalltablesin'mydatabase'withGrantSelectOnMyDatabase.to'newuser'@'localhost';。 3)GrantWriteAccessto'

MySQL中的字符串數據類型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT,排序規則(Collations)決定了字符串的比較和排序方式。 1.CHAR適合固定長度字符串,VARCHAR適合可變長度字符串。 2.BINARY和VARBINARY用於二進制數據,BLOB和TEXT用於大對像數據。 3.排序規則如utf8mb4_unicode_ci忽略大小寫,適合用戶名;utf8mb4_bin區分大小寫,適合需要精確比較的字段。

最佳的MySQLVARCHAR列長度選擇應基於數據分析、考慮未來增長、評估性能影響及字符集需求。 1)分析數據以確定典型長度;2)預留未來擴展空間;3)注意大長度對性能的影響;4)考慮字符集對存儲的影響。通過這些步驟,可以優化數據庫的效率和擴展性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。