MySQL入门篇Word格式文档下载.docx
- 文档编号:17356716
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:12
- 大小:23.78KB
MySQL入门篇Word格式文档下载.docx
《MySQL入门篇Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MySQL入门篇Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
设置了自动增长,就要定为主键,如果选择了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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 入门
![提示](https://static.bdocx.com/images/bang_tan.gif)