MySQL入门篇Word格式文档下载.docx

上传人:b****6 文档编号:17356716 上传时间:2022-12-01 格式:DOCX 页数:12 大小:23.78KB
下载 相关 举报
MySQL入门篇Word格式文档下载.docx_第1页
第1页 / 共12页
MySQL入门篇Word格式文档下载.docx_第2页
第2页 / 共12页
MySQL入门篇Word格式文档下载.docx_第3页
第3页 / 共12页
MySQL入门篇Word格式文档下载.docx_第4页
第4页 / 共12页
MySQL入门篇Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

MySQL入门篇Word格式文档下载.docx

《MySQL入门篇Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MySQL入门篇Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

MySQL入门篇Word格式文档下载.docx

设置了自动增长,就要定为主键,如果选择了BIT类型,0不显示,非0显示为一个特殊符号!

4、显示数据表:

showtables;

5、删除库:

dropdatabase[ifexists]库名;

6、删除表:

droptable[ifexists]表名;

7、显示表结构:

desc表名

8、如何修改表结构:

增长一个字段;

altertable表名add字段名类型

9、删除一个字段:

altertable表名drop字段名

10、修改一个字段的属性:

altertable表名modify字段新属性

11、修改主键:

增加一个主键altertable表名addprimarykey(字段名)

12、删除一个主键altertable表名dropprimarykey(字段名)

四、表的三种基本操作:

插入记录、删除记录、更新记录、这个和sqlserver是一样的,你在SQLSERVER里面怎么操作,在MYSQL里面就怎么操作!

没什么大区别,当然小区别还是有的。

比如;

insert命令,SQLSERVER2000一次只能插入一条记录,MYSQL可以插入多条记录。

Insertinto表(字段表列表)values(字段值),(字段值)。

删除,更新和SQLSERVER没有什么区别,不再累述!

13、删除数据库:

DROPDATABASE数据库名

14、删除表:

DROPTABLE表名

15、表改名:

RENAMETABLE旧表中TO新表名数据库不能改名,但也不是绝对不能改,但改不好会造成里面的数据无法正常读出,后果自负!

16、库改名:

常用方法是把新库创建出来,然后把旧库里的数据导入进去.

五、查询:

这应该是SQL中的一大块。

SELECT查询:

也和SQLSERVER没有什么大差别:

关键是大家要熟练运用各种运算符,数学运算符比较简单,重点在于字符型运算符LIKE、关系运算符和逻辑运算符

如:

查找姓王的记录:

SELECT*FROMYUANGONGWHERE姓名like'

王%'

;

查找姓名中有五的记录:

%王%'

查找以王结尾的记录:

%王'

其中linit是SQLSERVER没有的。

例如:

我想显示第三条到第七条记录

select*from表名limit2,5;

通配符描述示例

%通配零个或多个任意字符

_(下划线)通配任意一个字符

不再含有[]不同于SQLSERVER

注意:

如果用like发现结果不正确,有可能是编码的问题

六、记录排序

利用orderby对记录进行排序

格式:

select字段名列表from表名[where条件]orderby排序字段1[asc][desc][排序字段2……]

按年龄对yuangong表进行升序排列!

Select*fromyuangongorderby年龄asc或select*fromyuangongorderby年龄

按年龄对yuangong表进行降序排列!

Select*fromyuangongorderby年龄desc

对员工表先按性别升序排列,性别相同的再按年龄从大到小排序

Select*from员工表orderby性别asc,年龄desc

七、聚集函数:

最大值:

max()最小值min()平均值avg()

求和:

sum()汇总:

count()

求每个部门的基本工资平均值

select部门,avg(基本工资)as部门基本工资from员工表groupby部门

显示平均基本工资大于3000的部门

Select部门,avg(基本工资)from员工表group部门whereavg(基本工资)>

3000

此句错误。

SQL规定在分组中使用条件不能用WHERE而是用having

Select部门,avg(基本工资)from员工表groupby部门havingavg(基本工资)>

八、多表查询:

一个数据库中的多个表,存在一定的联系,怎么样正常的显示这么表的信息?

现在有三个表:

yg

Namesexage

宋洋男20

马冬旭女40

Gs

Nametitledate单位

宋洋AD详解2006-11-10清华大学

马冬旭linux2005-01-01人民大学

dz

单位地址

清华大学五道口

人民大学黄庄

第一种方法称为:

交叉连接,在SQLSERVER中又称为笛卡尔乘积

但是要注意的默认生成的记录总数是两表记录之积

select*fromyg,gs;

select*fromyg,gswhereyg.name=gs.name;

这才是我们想要的记录

第二种方法是用join连接:

内连接

select*fromygjoingsonyg.name=gs.name

左外连接

右外连接

但没有全外连接

九、联合:

除了连接,mysql4。

0以上的版本还支持UNION运算符,它用来把多个select查询号的输出连接成一个单独的结果集。

大多数情况下,这个运算符用来把查询产生的结果集添加到不同的表,同时创建包括所有结果的一个单独表。

比如面试的时候问你,有两个表,字段信息一样,让你用一条语句把两个表的信息组合为一个单独的表!

为了说明UNION运算符的使用方法,我们举一个例子:

现在有两个表,分别存放的是男同学信息和女同学信息,如果用一个语句将所有同学的信息显示出来!

mysql>

select*fromnan;

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

|name|score|

|彭聪留|80|

|费优优|81|

|曲权|82|

3rowsinset(0.00sec)mysql>

select*fromnv;

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

|彭红|80|

|费红|81|

|曲红|82|

3rowsinset(0.00sec)

select*fromnanunionselect*fromnv;

6rowsinset(0.00sec)

那如果有三个表怎么办?

也是一样的操作!

但注意的是如果两个表的某条记录信息完全一致,则只显示为一条;

如果想显示全部记录则在union后加all

select*fromnanunionallselect*fromnv;

如果面试官又问你,如果想把显示的信息保存到一个表中怎么办?

createtable表名select语句;

十、数据库备份与恢复

备份:

第一种方法:

mysqldump

备份一个表mysqldump-h主机名–u用户名–p口令数据库表名>

文本文件

恢复:

mysql-h主机名–u用户名–p口令数据库<

备份一个数据库中的两个表或是多个表怎么办?

Mysqldump–h主机名–u用户名–p口令数据库表名1表名2>

恢复的时候:

mysql–h主机名–u用户名–p口令数据库<

备份整个数据库:

格式:

mysqldump–u用户名-p密码数据库名>

文本文件名

如:

C:

\test>

mysqldump-uroot-p111111net14>

net14.txt

删除数据库net14:

dropdatabasenet14

进行恢复:

mysql-uroot-p111111net14<

ERROR1049(42000):

Unknowndatabase'

net14'

报错.说找不到数据库net14;

必须先手工建立一个空的net14数据库,然后才能把数据导进来!

那还有一个问题,如果想同时备份两个以上的数据库怎么办?

mysqldump–u用户名-p密码-B数据库1数据库2>

C:

mysqldump-uroot-p111111-Bnet14net28>

net1428.txt

然后删除net14和net28再进行恢复

但是要注意:

必须一个一个的恢复,不能同时恢复两个:

mysql-uroot-p111111-Bnet14<

mysql-uroot-p111111-Bnet28<

第二种方法:

selectinto作备份:

这相对于第一种方法就简单多了!

select语句intooutfile“路径及文件名”;

mysql>

select*fromstudentintooutfile'

c:

\\abc1.txt'

QueryOK,13rowsaffected(0.00sec)

1.路径中的盘符后是两个\\,其中第一个代表转义作用,第二个才是代表根目录.有时写成一个\时不会报错,因此要注意检查备份的正确性;

2.不允许重写文本文件;

恢复方法:

那么怎么恢复呢:

:

用LOADDATA来恢复:

loaddatainfile‘路径及文件名’intotable表名

loaddatainfile'

\\student.txt'

intotablestudent;

表必须存在.可用delete,清空其中的所有记录或者用:

truncate表名,只删除记录,不删除结构!

如果恢复出错怎么办?

1.权限问题.

2.分界符不匹配!

3.路径和文件名不对!

十一、数据的导入/导出:

如何与其他数据源之间进行数据的导入与导出!

例如:

如何将SQLserver的数据导到mysql中来

1.先在MSSQL2000的导入导出工具将数据导出成*.txt文件格式

注意打开backup.txt

观察其中的分隔字符MSSQL2000好像是用逗号分隔的

2.在mysql中利用loaddatainfile命令导入

\\sql.txt'

intotableabcfieldsterminatedby'

'

QueryOK,5rowsaffected(0.00sec)

Records:

5Deleted:

0Skipped:

0Warnings:

0

注意目标表必须已经存在,并结构要与源表的结构相同!

ACCESS导到MYSQL:

1.先建立一个access文件,保存成文本文件

2.打开文本文件,再转换一下编码成ansi

3.建立数据库,导入到mysql中!

QueryOK,3rowsaffected(0.00sec)

EXCEL导到mysql

步骤同上。

只是要注意的是:

excel默认是以TAB分隔的所以应用以下的语句:

\\book1.txt'

\t'

关于mysql的具体内容我们就介绍这么多,下面我们来看一下php的搭建环境.因为现在apache+mysql+php称为网站设计的经典组合.这是大家必须要掌握的.

有关数据库方面的操作。

你必须首先登录到mysql中,以下操作都是在mysql的提

示符下进行的,而且每个命令以分号结束。

一、操作技巧

1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回

车就可以了。

也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束

标志就OK。

2、你可以使用光标上下键调出以前的命令。

但以前我用过的一个mysql旧版本不支持。

我现在用的是mysql-3.23.27-beta-win。

二、显示命令

1、显示数据库列表。

刚开始时才两个数据库:

mysql和test。

mysql库很重要它里面有mysql的系统信息,

我们改密码和新增用户,实际上就是用这个库进行操作。

2、显示库中的数据表:

usemysql;

//打开库,学过FOXBASE的一定不会陌生吧

3、显示数据表的结构:

describe表名;

4、建库:

createdatabase库名;

5、建表:

use库名;

createtable表名(字段设定列表);

6、删库和删表:

dropdatabase库名;

droptable表名;

7、将表中记录清空:

deletefrom表名;

8、显示表中的记录:

select*from表名;

三、一个建库和建表以及插入数据的实例

dropdatabaseifexistsschool;

//如果存在SCHOOL则删除

createdatabaseschool;

//建立库SCHOOL

useschool;

//打开库SCHOOL

createtableteacher//建立表TEACHER

idint(3)auto_incrementnotnullprimarykey,

namechar(10)notnull,

addressvarchar(50)default'

深圳'

yeardate

);

//建表结束

//以下为插入字段

insertintoteachervalues('

'

glchengang'

深圳一中'

1976-10-10'

jack'

1975-12-23'

注:

在建表中

(1)将ID设为长度为3的数字字段:

int(3),并让它每个记录自动加一:

auto_increment,

并不能为空:

notnull,而且让它成为主字段primarykey

(2)将NAME设为长度为10的字符字段

(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。

varchar和char有什么区别

呢,只有等以后的文章再说了。

(4)将YEAR设为日期字段。

如果你在mysql提示符键入上面的命令也可以,但不方便调试。

你可以将以上命令

原样写入一个文本文件中假设为school.sql,然后复制到c:

下,并在DOS状态进入目录

mysql_in,然后键入以下命令:

mysql-uroot-p密码<

c:

school.sql

如果成功,空出一行无任何显示;

如有错误,会有提示。

(以上命令已经调试,你

只要将//的注释去掉即可使用)。

四、将文本数据转到数据库中

1、文本数据应符合的格式:

字段数据之间用tab键隔开,null值用来代替。

例:

3rose深圳二中1976-10-10

4mike深圳一中1975-12-23

2、数据传入命令loaddatalocalinfile"

文件名"

intotable表名;

你最好将文件复制到mysql_in目录下,并且要先用use命令选表所在的库。

五、导出和导入数据:

(命令在DOS的mysql_in目录下执行)

导出表

mysqldump--optschool>

school.sql

注释:

将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,

文件名任取,打开看看你会有新发现。

mysqldump--optschoolteacherstudent>

school.teacher.student.sql

将数据库school中的teacher表和student表备份到school.teacher.student.sql文

件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。

导入表

mysql

sourceschool.sql;

(或将school.sql换为school.teacher.sql/school.teacher.student.sql)

导出数据库

mysqldump--databasesdb1db2>

db1.db2.sql

将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名

任取,打开看看你会有新发现。

(举个例子:

mysqldump-hhost-uuser-ppass--databasesdbname>

file.dump

就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。

导入数据库

mysql<

复制数据库

mysqldump--all-databases>

all-databases.sql

将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,

文件名任取。

dropdatabasea;

dropdatabaseb;

dropdatabasec;

...

sourceall-databases.sql;

(或exit退出mysql后mysql<

all-databases.sql)

后记:

其实mysql的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看

看。

我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。

最好的mysql教程还是"

晏子"

译的"

mysql中文参考手册"

不仅免费,每个相关网站都有

下载,而且它是最权威的。

可惜不象"

PHP4中文手册"

那样是chm的格式,在查找函数命令的

时候不太方便。

3.打开数据库:

usedbname;

显示所有数据库:

显示数据库mysql中所有的表:

先usemysql;

然后showtables;

显示表的列信息:

describeuser;

(显示表mysql数据库中user表的信息);

4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个

GRANTALLPRIVILEGESON*.*TOmonty@localhostIDENTIFIEDBY'

something'

WITHGRANTOPTION;

GRANTALLPRIVILEGESON*.*TOmonty@"

%"

IDENTIFIEDBY'

5.删除授权:

REVOKEALLPRIVILEGESON*.*FROMroot@"

USEmysql;

DELETEFROMuserWHEREUser="

root"

andHost="

FLUSHPRIVILEGES;

6.创建一个用户custom在特定客户端wei

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

当前位置:首页 > 高中教育 > 初中教育

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

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