mysql的简单实用_MySQL的简单实用

1、如何安装mysql服务器:

咱们使用当前MY-SQL的比较新的版本MY SQL 5.0版。首先,如何获得MY SQL 5.0 咱们能够从网上下载(

[url]www.mysql.cn[/url])。

咱们来看一下如何进行安装MY SQL支持多平台,也就是说它能够工做在WINDWOS平台上,也能够工做在LINUX平台上,在LINUX下的安装可能会复杂那么一点点,但在WINDOWS下的安装仍是很简单的,和我们平时安装软件没什么两样,下面我们开始安装:咱们拿到的是一个可执行文件,双击Setup.exe文件,开始mysql5.0的安装。先是等待,直到出现下面的欢迎窗口

*********

安装过程略!

********

怎么检测你的mysql正确安装了。那大家是怎么检测 SQL SERVER是否是正确安装的?

Netstat  -an

看有没有3306口吧!或者你就去看看你的服务有没有启动!

2、登陆到mysql服务器:

两种方法:

一、 mysql –hlocalhost –uroot –p口令

二、 直接利用开始菜单!开始----程序---mysql5.0

3、命令的简单使用:

下面的操做通常就是使用标准SQL命令:也就是说你在SQL SERVER里面怎么用,这里就怎么用,可是有的命令也不是彻底同样的。有一点点细微的差异!下面我们就把这个命令简单的过一遍:

my sql 命令的使用:以分号或\g结束,\c取消一行命令,\h帮助

一、 显示数据库:show databases;

二、 建数据库:create database  [if not exists] 数据库名;

三、 建数据表: create table [if not exists] 表名 (字段名1   类型。。。。。。。。)

create table student (编号 int auto_increment primary key, 姓名 varchar(10));

注意:设置了自动增加,就要定为主键,若是选择了BIT 类型,0不显示,非0显示为一个特殊符号!

四、 显示数据表:show tables;

五、 删除库: drop database [if exists] 库名;

六、 删除表: drop table   [if exists] 表名;

七、 显示表结构: desc 表名

八、 如何修改表结构:增加一个字段; alter table 表名 add 字段名  类型

九、               删除一个字段: alter table  表名 drop 字段名

十、          修改一个字段的属性:  alter table 表名modify 字段 新属性

十一、 修改主键: 增长一个主键  alter table 表名 add primary key(字段名)

十二、          删除一个主键  alter table 表名  drop primary key(字段名)

4、表的三种基本操做:

插入记录、删除记录、更新记录、 这个和sql server是同样的,你在SQL SERVER里面怎么操做,在MYSQL里面就怎么操做!没什么大区别,固然小区别仍是有的。好比;insert命令,SQL SERVER2000 一次只能插入一条记录,MYSQL能够插入多条记录。

Insert into 表 (字段表列表) values(字段值),(字段值)。。。。。。

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

1三、 删除数据库:Drop DATABASE 数据库名

1四、 删除表:    Drop TABLE    表名

1五、 表更名:    RENAME TABLE 旧表中  TO  新表名 数据库不能更名,但也不是绝对不能改,但改很差会形成里面的数据没法正常读出,后果自负!

1六、 库更名: 经常使用方法是把新库建立出来,而后把旧库里的数据导入进去.

5、查询: 这应该是SQL中的一大块。

Select 查询:也和SQL SERVER没有什么大差异:

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

如:查找姓王的记录:Select  * FROM YUANGONG  Where 姓名  like '王%';

查找姓名中有五的记录:Select * FROM YUANGONG  Where 姓名  like '%王%';

查找以王结尾的记录:Select  * FROM YUANGONG  Where 姓名  like '%王';

其中linit是SQL SERVER没有的。

例如:我想显示第三条到第七条记录

select * from 表名 limit 2,5;

通配符 描述 示例

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

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

再也不含有 [ ] 不一样于SQL SERVER

注意:若是用like发现结果不正确,有多是编码的问题

6、记录排序

利用order by 对记录进行排序

格式:select 字段名列表 from 表名 [where 条件] order by 排序字段1 [asc ] [desc] [排序字段2……]

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

Select  * from yuangong order by 年龄  asc 或  select  * from yuangong order by 年龄

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

Select  * from yuangong order by 年龄  desc

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

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

7、汇集函数:

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

求和:   sum()        汇总: count ()

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

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

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

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

此句错误。SQL规定在分组中使用条件不能用 Where 而是用 having

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

8、多表查询:

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

如今有三个表:

yg

Name  sex  age

宋洋  男   20

马冬旭 女   40

Gs

Name   title      date       单位

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

马冬旭 linux    2005-01-01   人民大学

dz

单位     地址

清华大学  五道口

人民大学   黄庄

第一种方法称为:交叉链接,在SQL SERVER中又称为笛卡尔乘积

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

select * from yg,gs;

select * from yg,gs where yg.name=gs.name;

这才是咱们想要的记录

第二种方法是用join链接:

内链接

select * from yg join gs on yg.name=gs.name

左外链接

右外链接

但没有全外链接

9、联合:

除了链接,mysql4。0以上的版本还支持UNION运算符,它用来把多个select查询号的输出链接成一个单独的结果集。大多数状况下,这个运算符用来把查询产生的结果集添加到不一样的表,同时建立包括全部结果的一个单独表。好比面试的时候问你,有两个表,字段信息同样,让你用一条语句把两个表的信息组合为一个单独的表!

为了说明UNION运算符的使用方法,咱们举一个例子:如今有两个表,分别存放的是男同窗信息和女同窗信息,若是用一个语句将全部同窗的信息显示出来!

mysql> select * from nan;

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

| name   | score |

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

| 彭聪留 |    80 |

| 费优优 |    81 |

| 曲权   |    82 |

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

3 rows in set (0.00 sec) mysql> select * from nv;

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

| name | score |

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

| 彭红 |    80 |

| 费红 |    81 |

| 曲红 |    82 |

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

3 rows in set (0.00 sec)

mysql> select * from nan union select * from nv;

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

| name   | score |

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

| 彭聪留 |    80 |

| 费优优 |    81 |

| 曲权   |    82 |

| 彭红   |    80 |

| 费红   |    81 |

| 曲红   |    82 |

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

6 rows in set (0.00 sec)

那若是有三个表怎么办?也是同样的操做!

但注意的是若是两个表的某条记录信息彻底一致,则只显示为一条;若是想显示所有记录则在union后 加 all

mysql> select * from nan union all  select * from nv;

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

mysql> create table 表名 select 语句;

10、数据库备份与恢复

备份:

第一种方法:   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 -p111111 net14  >net14.txt

删除数据库net14:         drop database net14

进行恢复:

C:\test>mysql -u root  -p111111 net14

ERROR 1049 (42000): Unknown database 'net14'

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

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

C:\test>mysql -u root  -p111111 net14

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

格式: mysqldump –u用户名  -p密码  -B 数据库1   数据库2 >文本文件名

如:    C:\test>mysqldump -uroot -p111111 -B net14 net28  >net1428.txt

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

可是要注意:必须一个一个的恢复,不能同时恢复两个:

如: C:\test>mysql -uroot -p111111 -B net14  

C:\test>mysql -uroot -p111111 -B net28  

第二种方法:  select into 做备份:这相对于第一种方法就简单多了!

格式:  select 语句 into outfile “路径及文件名”;

如: mysql> select * from student into outfile 'c:\\abc1.txt';

Query OK, 13 rows affected (0.00 sec)

注意:

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

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

恢复方法:

那么怎么恢复呢::

用LOAD DATA来恢复:

格式: load data infile ‘路径及文件名’ into table 表名

如: load data infile 'c:\\student.txt' into table student;

注意:表必须存在.可用delete,清空其中的全部记录 或者用: truncate 表名,只删除记录,不删除结构!

若是恢复出错怎么办?

1. 权限问题.

2. 分界符不匹配!

3. 路径和文件名不对!

11、数据的导入/导出:

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

例如:如何将  SQL server 的数据导到mysql中来

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

注意打开backup.txt

观察其中的分隔字符 MS SQL 2000好像是用逗号分隔的

2. 在mysql中利用 load data infile 命令导入

mysql> load data infile 'c:\\sql.txt' into table abc fields terminated by ',';

Query OK, 5 rows affected (0.00 sec)

Records: 5  Deleted: 0  Skipped: 0  Warnings: 0

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

ACCESS 导到 MYSQL:

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

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

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

mysql> load data infile 'c:\\abc1.txt' into table abc fields terminated by ',';

Query OK, 3 rows affected (0.00 sec)

EXCEL 导到mysql

步骤同上。只是要注意的是:excel默认是以 TAB 分隔的因此应用如下的语句:

mysql> load data infile 'c:\\book1.txt' into table abc fields terminated by '\t';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值