完整版MySQL基础学习超级详细.docx
- 文档编号:5024475
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:28
- 大小:371.72KB
完整版MySQL基础学习超级详细.docx
《完整版MySQL基础学习超级详细.docx》由会员分享,可在线阅读,更多相关《完整版MySQL基础学习超级详细.docx(28页珍藏版)》请在冰豆网上搜索。
完整版MySQL基础学习超级详细
一、MySQL概述
1、什么是数据库?
答:
数据的仓库,如:
在ATM的示例中我们创建了一个db目录,称其为数据库
2、什么是MySQL、Oracle、SQLite、Access、MSSQLServer等?
答:
他们均是一个软件,都有两个主要的功能:
oa。
将数据保存到文件或内存
ob。
接收特定的命令,然后对文件进行相应的操作
3、什么是SQL?
答:
MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。
二、MySQL安装
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下公司.MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。
想要使用MySQL来存储并操作数据,则需要做几件事情:
a.安装MySQL服务端
b.安装MySQL客户端
b.【客户端】连接【服务端】
c.【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)
下载
http:
//
安装
windows:
http:
//
linux:
yuminstallmysql—server
mac:
一直点下一步
客户端连接
连接:
1、mysql管理人默认为root,没有设置密码则直接登录
mysql-hhost—uroot—p不用输入密码按回车自动进入
2、如果想设置mysql密码
mysqladmin-urootpassword123456
3、如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:
mysqladmin-uroot-ppasswordabcdef
退出:
QUIT或者Control+D
三、数据库基础
分为两大部分:
1、数据库和表的创建;
2、数据库和表内容的操作
数据库操作—思路图
1、数据库和表的创建
(一)数据库的创建
1。
1、显示数据库
1SHOWDATABASES;
默认数据库:
mysql-用户权限相关数据
test—用于用户测试数据
information_schema—MySQL本身架构相关数据
1.2、创建数据库
#utf—8
CREATEDATABASE数据库名称DEFAULTCHARSETutf8COLLATEutf8_general_ci;
#gbk
CREATEDATABASE数据库名称DEFAULTCHARACTERSETgbkCOLLATEgbk_chinese_ci;
1.3、打开数据库
USEdb_name;
注:
每次使用数据库必须打开相应数据库
显示当前使用的数据库中所有表:
SHOWTABLES;
1。
4、用户管理
用户设置:
创建用户
createuser’用户名’@’IP地址’identifiedby'密码';
删除用户
dropuser'用户名'@’IP地址';
修改用户
renameuser’用户名’@’IP地址’;to’新用户名'@’IP地址’;;
修改密码
setpasswordfor'用户名'@'IP地址'=Password('新密码’)
PS:
用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
用户权限设置:
showgrantsfor'用户'@’IP地址’——查看权限
grant权限on数据库.表to'用户'@’IP地址'-—授权
revoke权限on数据库.表from'用户’@'IP地址’——取消权限
allprivileges除grant外的所有权限
select仅查权限
select,insert查和插入权限
..。
usage无访问权限
alter使用altertable
alterroutine使用alterprocedure和dropprocedure
create使用createtable
createroutine使用createprocedure
createtemporarytables使用createtemporarytables
createuser使用createuser、dropuser、renameuser和revokeallprivileges
createview使用createview
delete使用delete
drop使用droptable
execute使用call和存储过程
file使用selectintooutfile和loaddatainfile
grantoption使用grant和revoke
index使用index
insert使用insert
locktables使用locktable
process使用showfullprocesslist
select使用select
showdatabases使用showdatabases
showview使用showview
update使用update
reload使用flush
shutdown使用mysqladminshutdown(关闭MySQL)
super使用changemaster、kill、logs、purge、master和setglobal。
还允许mysqladmin调试登陆
replicationclient服务器位置的访问
replicationslave由复制从属使用
对于权限设置
对于目标数据库以及内部其他:
数据库名。
*数据库中的所有
数据库名.表指定数据库中的某张表
数据库名.存储过程指定数据库中的存储过程
*。
*所有数据库
对于数据库名的解释
用户名@IP地址用户只能在改IP下才能访问
用户名@192.168.1。
%用户只能在改IP段下才能访问(通配符%表示任意)
用户名@%用户可以再任意IP下访问(默认IP地址为%)
对于ip地址的访问
grantallprivilegesondb1.tb1TO’用户名’@’IP'
grantselectondb1.*TO’用户名'@’IP’
grantselect,inserton*.*TO'用户名’@’IP'
revokeselectondb1。
tb1from’用户名'@'IP'
实际例子
1。
4、备份库和恢复库
备份库:
MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成。
1。
在Windows下MySQL的备份与还原
备份
1、开始菜单|运行|cmd|利用“cd/ProgramFiles/MySQL/MySQLServer5。
0/bin”命令进入bin文件夹
2、利用“mysqldump—u用户名-pdatabasename〉exportfilename"导出数据库到文件,如mysqldump—uroot—pvoice>voice.sql,然后输入密码即可开始导出。
还原
1、进入MySQLCommandLineClient,输入密码,进入到“mysql>”。
2、输入命令”showdatabases;",回车,看看有些什么数据库;建立你要还原的数据库,输入”createdatabasevoice;",回车。
3、切换到刚建立的数据库,输入"usevoice;”,回车;导入数据,输入"sourcevoice.sql;”,回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。
2、在linux下MySQL的备份与还原
2.1备份(利用命令mysqldump进行备份)
[root@localhostmysql]#mysqldump—uroot-pvoice>voice.sql,输入密码即可。
2.2还原
方法一:
[root@localhost~]#mysql-uroot—p回车,输入密码,进入MySQL的控制台"mysql>”,同1.2还原。
方法二:
[root@localhostmysql]#mysql—uroot—pvoice sql,输入密码即可. 3、更多备份及还原命令 备份: 1.备份全部数据库的数据和结构 mysqldump-uroot-p123456-A>F: \all.sql 2.备份全部数据库的结构(加—d参数) mysqldump—uroot—p123456-A—d〉F: \all_struct。 sql 3.备份全部数据库的数据(加-t参数) mysqldump-uroot-p123456—A—t>F: \all_data。 sql 4.备份单个数据库的数据和结构(,数据库名mydb) mysqldump—uroot—p123456mydb〉F: \mydb。 sql 5。 备份单个数据库的结构 mysqldump—uroot—p123456mydb—d>F: \mydb。 sql 6.备份单个数据库的数据 mysqldump-uroot—p123456mydb—t〉F: \mydb。 sql 7。 备份多个表的数据和结构(数据,结构的单独备份方法与上同) mysqldump—uroot—p123456mydbt1t2>f: \multables。 sql 8.一次备份多个数据库 mysqldump—uroot—p123456—-databasesdb1db2〉f: \muldbs。 sql 还原: 还原部分分 (1)mysql命令行source方法和 (2)系统命令行方法 1.还原全部数据库: (1)mysql命令行: mysql>sourcef: \all。 sql (2)系统命令行: mysql-uroot-p123456〈f: \all。 sql 2。 还原单个数据库(需指定数据库) (1)mysql〉usemydb mysql>sourcef: \mydb。 sql (2)mysql—uroot—p123456mydb〈f: \mydb。 sql 3.还原单个数据库的多个表(需指定数据库) (1)mysql>usemydb mysql>sourcef: \multables.sql (2)mysql—uroot-p123456mydb〈f: \multables.sql 4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库) (1)mysql命令行: mysql〉sourcef: \muldbs。 sql (2)系统命令行: mysql—uroot—p123456〈f: \muldbs。 sql 更多备份 更多备份知识: (二)数据表的创建 1。 1、显示数据表 showtables; 1。 2、创建数据表 createtable表名( 列名类型是否可以为空, 列名类型是否可以为空 )ENGINE=InnoDBDEFAULTCHARSET=utf8 是否可空,null表示空,非字符串 notnull—不可空 null-可空 设置是否为空 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值 createtabletb1( nidintnotnulldefalut2, numintnotnull ) 设置默认值 自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列) createtabletb1( nidintnotnullauto_incrementprimarykey, numintnull ) 或 createtabletb1( nidintnotnullauto_increment, numintnull, index(nid) ) 注意: 1、对于自增列,必须是索引(含主键)。 2、对于自增可以设置步长和起始值 showsessionvariableslike’auto_inc%’; setsessionauto_increment_increment=2; setsessionauto_increment_offset=10; shwoglobalvariableslike'auto_inc%'; setglobalauto_increment_increment=2; setglobalauto_increment_offset=10; 设置自增 主键,一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一. createtabletb1( nidintnotnullauto_incrementprimarykey, numintnull ) 或 createtabletb1( nidintnotnull, numintnotnull, primarykey(nid,num) ) 设置主键 外键,一个特殊的索引,只能是指定内容 creattablecolor( nidintnotnullprimarykey, namechar(16)notnull ) createtablefruit( nidintnotnullprimarykey, smtchar(32)null, color_idintnotnull, constraintfk_ccforeignkey(color_id)referencescolor(nid) ) 设置外键 主键与外键关系(非常重要) http: //blogs。 com/programmer—tlh/p/5782451。 html 1。 3删除表 droptable表名 1.4、清空表 deletefrom表名 truncatetable表名 1。 5、基本数据类型 MySQL的数据类型大致分为: 数值、时间和字符串 bit[(M)] 二进制位(101001),m表示二进制位的长度(1-64),默认m=1 tinyint[(m)][unsigned][zerofill] 小整数,数据类型用于保存一些范围的整数数值范围: 有符号: -128~127. 无符号: 0~255 特别的: MySQL中无布尔值,使用tinyint (1)构造. int[(m)][unsigned][zerofill] 整数,数据类型用于保存一些范围的整数数值范围: 有符号: -2147483648~2147483647 无符号: 0~4294967295 特别的: 整数类型中的m仅用于显示,对存储范围无限制。 例如: int(5),当插入数据2时,select时数据显示为: 00002 bigint[(m)][unsigned][zerofill] 大整数,数据类型用于保存一些范围的整数数值范围: 有符号: —9223372036854775808~9223372036854775807 无符号: 0~184********709551615 decimal[(m[,d])][unsigned][zerofill] 准确的小数值,m是数字总个数(负号不算),d是小数点后个数.m最大值为65,d最大值为30。 特别的: 对于精确数值计算时需要用此类型 decaimal能够存储精确值的原因在于其内部按照字符串存储。 FLOAT[(M,D)][UNSIGNED][ZEROFILL] 单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 无符号: -3.402823466E+38to—1。 175494351E—38, 0 1.175494351E-38to3.402823466E+38 有符号: 0 1.175494351E—38to3.402823466E+38 ****数值越大,越不准确**** DOUBLE[(M,D)][UNSIGNED][ZEROFILL] 双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 无符号: —1。 7976931348623157E+308to—2.2250738585072014E-308 0 2。 2250738585072014E—308to1.7976931348623157E+308 有符号: 0 2。 2250738585072014E—308to1.7976931348623157E+308 ****数值越大,越不准确**** char(m) char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。 其中m代表字符串的长度。 PS: 即使数据小于m长度,也会占用m长度 varchar(m) varchars数据类型用于变长的字符串,可以包含最多达255个字符。 其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。 注: 虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。 因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡 text text数据类型用于保存变长的大字符串,可以组多到65535(2**16−1)个字符. mediumtext ATEXTcolumnwithamaximumlengthof16,777,215(2**24−1)characters. longtext ATEXTcolumnwithamaximumlengthof4,294,967,295or4GB(2**32−1)characters. enum 枚举类型, AnENUMcolumncanhaveamaximumof65,535distinctelements.(Thepracticallimitislessthan3000。 ) 示例: CREATETABLEshirts( nameVARCHAR(40), sizeENUM(’x—small’,'small’,'medium',’large’,'x-large') ); INSERTINTOshirts(name,size)VALUES(’dressshirt’,’large'),(’t—shirt','medium'),(’poloshirt’,'small'); set 集合类型 ASETcolumncanhaveamaximumof64distinctmembers. 示例: CREATETABLEmyset(colSET(’a',’b','c',’d')); INSERTINTOmyset(col)VALUES(’a,d'),(’d,a’),('a,d,a’),('a,d,d’),(’d,a,d'); DATE YYYY-MM—DD(1000—01-01/9999—12-31) TIME HH: MM: SS(’—838: 59: 59'/’838: 59: 59’) YEAR YYYY(1901/2155) DATETIME YYYY—MM-DDHH: MM: SS(1000—01-0100: 00: 00/9999-12-3123: 59: 59Y) TIMESTAMP YYYYMMDDHHMMSS(1970—01-0100: 00: 00/2037年某时) 1。 6、修改表(alter) 添加列: altertable表名add列名类型 删除列: altertable表名dropcolumn列名 修改列: altertable表名modifycolumn列名类型;-—类型 altertable表名change原列名新列名类型;--列名,类型 添加主键: altertable表名addprimarykey(列名); 删除主键: altertable表名dropprimarykey; altertable表名modify列名int,dropprimarykey; 添加外键: altertable从表addconstraint外键名称(形如: FK_从表_主表)foreignkey从表(外键字段)references主表(主键字段); 删除外键: altertable表名dropforeignkey外键名称 修改默认值: ALTERTABLEtestalter_tblALTERiSETDEFAULT1000; 删除默认值: ALTERTABLEtestalter_tblALTERiDROPDEFAULT; 修改表 更多参考: ∙http:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 MySQL 基础 学习 超级 详细
![提示](https://static.bdocx.com/images/bang_tan.gif)