完整版MySQL基础学习超级详细.docx

上传人:b****5 文档编号:5024475 上传时间:2022-12-12 格式:DOCX 页数:28 大小:371.72KB
下载 相关 举报
完整版MySQL基础学习超级详细.docx_第1页
第1页 / 共28页
完整版MySQL基础学习超级详细.docx_第2页
第2页 / 共28页
完整版MySQL基础学习超级详细.docx_第3页
第3页 / 共28页
完整版MySQL基础学习超级详细.docx_第4页
第4页 / 共28页
完整版MySQL基础学习超级详细.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

完整版MySQL基础学习超级详细.docx

《完整版MySQL基础学习超级详细.docx》由会员分享,可在线阅读,更多相关《完整版MySQL基础学习超级详细.docx(28页珍藏版)》请在冰豆网上搜索。

完整版MySQL基础学习超级详细.docx

完整版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:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1