转载 一个小时学会MySQL数据库(2)

三、快速安装运行MySQL数据库

MySQL以前一直是开源免费的,被Oracle收购后有些变化:以前的版本都是免费的,社区版按GPL协议开源免费,商业版提供更加丰富的功能,但收费。

社区版的下载地址:https://dev.mysql.com/downloads/ (免费)

企业版的下载地址:https://www.mysql.com/downloads/(收费)

3.1、使用绿色版

为了方便快捷的使用MySQL我已经准备好了一个绿化了的MySQL,解压后就可以直接使用,不需要任何配置。

下载地址1:https://pan.baidu.com/s/1K08GU-E4CyEKKIseBYwRYA 密码: e59m

下载地址2:http://download.csdn.net/detail/zhangguo5/9773842

下载后直接解压:

点击启动PStart.exe这是一个自定义菜单的小工具,为了整理资源用的。

里面有两个MySQL的绿色版软件5.0,5.5

Navicat for MySQL是一个数据库客户端管理工具

点击启动PStart.exe后的结果如下:

点击启动MySQL服务,运行Navicat for MySQL即可。

*注意:上面的PStart只是一个整理文档资料的工具,并非必要,如果启动时有错误或为空时,可以直接关闭,直接启动MySQL服务,如:

mysql_start.bat用于启动MySql数据库,mysql_stop.bat用于关闭MySql数据库。

开发工具的启动方式也一样,如下所示:

navicat.exe用于启动Navicat数据库客户端,最好发送快捷方式到桌面,省去每次打开文件夹的麻烦。

3.1.1、设置mysql远程访问

执行mysql 命令进入mysql 命令模式,执行如下SQL代码 

mysql> use mysql; 
mysql> GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION; 

#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server 
#必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆

3.1.2、修改mysql用户密码

1.mysqladmin命令

格式如下(其中,USER为用户名,PASSWORD为新密码):

mysqladmin -u USER -p password PASSWORD

该命令之后会提示输入原密码,输入正确后即可修改。
例如,设置root用户的密码为123456,则

mysqladmin -u root -p password 123456

2.UPDATE user 语句

这种方式必须是先用root帐户登入mysql,然后执行:

UPDATE user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;

3.SET PASSWORD 语句

这种方式也需要先用root命令登入mysql,然后执行:

SET PASSWORD FOR root=PASSWORD('123456');

4.root密码丢失的情况

使用 MySQL 自带的一个工具"MySQL GUI Tools",我一直用的是5.0版本的。 在安装目录中运行一个程序 MySQLSystemTrayMonitor.exe,运行完后在系统托盘会出现图标。如果MySQL服务尚未安装,则不会出现,可先通过Action>Manage MySQL Instances 先配置和安装服务。如果已经安装服务,鼠标右键点击后,会出现"Configure Instance"的菜单。点击后出现如下MySQL Administrator窗口: 
假如原来的服务配置都正常的情况下,选中左侧列表中的“启动变量”,并在相应的右侧标签中选择“安全”,勾选“禁用grant表”,然后“应用更改”。 
并回到左侧的“服务器控制”,和右侧相应的“开始/停止服务”标签,点击启动服务。此时,连接mysql已经不需要用户名和密码了,你可以修改root密码。

3.1.2、安装服务

首先我们先进入mysql的安装目录下的bin目录、之后打开DOS命令窗口,进入该目录下(一定要进入该目录,否则操作错误)

执行DOS命令:

输入命令:mysqld --install,之后出现如下界面。提示安装服务成功。

注意是mysqld --install不是mysql --install

如果要卸载服务,可以输入如下命令:mysqld --remove。出现如下界面。提示移除服务成功。

3.2、使用安装版

MySQL5.5.27_64位安装包下载地址1: https://pan.baidu.com/s/1minwz1m 密码: ispn

MySQL5.5.27_64位安装包下载地址2: http://download.csdn.net/detail/zhangguo5/9775460

MySQL5.7.17安装包官网下载地址: https://dev.mysql.com/downloads/windows/installer/

选择自定义:

安装的组件信息:

服务器软件目录:

数据目录:

点击install安装即可:


配置:

机器类型


是否支持事务功能:

innodb表空间:


连接数量:


字符集设定:


配置windows管理相关:


配置安全选项,设置管理员的用户名与密码:


最后执行配置即可:


配置后,会启动服务。

新版的MySQL安装包大了很多,安装过程也有些不一样。

四、使用GUI操作MySQL

4.1、关系型数据库的典型概念

数据库 databse:数据的仓库

表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式

行:行用于记录数据

记录:行内的数据

列:列用于规定数据格式

字段:数据的某个列

SQL:用来管理数据的语言。结构化查询语言(SQL,Structured Query Language)

主键:唯一地标识表中的某一条记录,不能空,不能重复

4.2、登录数据库

*连接本地数据库时需要启动服务

4.3、创建数据库

 

4.4、创建表

列的类型:

数字类型

整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year

字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext

二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

列的约束:

4.5、管理数据

4.5.1、添加数据

双击新建好的表名,打开表,就可以添加数据了。

4.5.2、删除数据

4.5.3、修改表结构

如果想向现有的表中添加一列,则可以修改表结构:

4.5.4、外键

上面这个学生表是有些问题的:

a)、不便于修改,比如教室换成了305教室,则每个学员都要修改

b)、数据冗余,大量的重复数据

将表拆分成两个,分解后问题解决,如下图所示:

这里的班级编号就是外键,可以空,但不为空时他的值一定在要引用表中存在。如果学生表中的编号是主键这里就不应该重复,外键则可以重复也允许为空。

添加外键:

班级表:

学生表:

添加外键:

删除与更新时可以实现级联更新与删除,当更新设置为CASCADE时主键变化引用主键的表也会一起变化,当删除设置为CASCADE时删除主键表,引用的记录都将被删除。

复制代码

create table s_orderform(

          o_id int auto_increment primary key,
         o_buyer_id int,
         o_seller_id int,
         o_totalprices double,
         o_state varchar(50),
         o_information varchar(200),
         foreign key(o_buyer_id) references s_user(u_id),      #外链到s_user表的u_id字段
         foreign key(o_seller_id) references s_user(u_id)      #外链到s_user表的u_id字段
)

复制代码

 

4.5.5、唯一键

唯一键,也称(唯一约束),和主键的区别是可以为有多个唯一键并且值可以为NULL,但NULL也不能重复,也就是说只能有一行的值为NULL。它会隐式的创建唯一索引。

设置方法:索引 --> 添加索引 -->  栏位名 添加你想设置唯一约束的列 --> 索引类型选择 Unique 

复制代码

#查询
select id,name from yuangong

select * from yuangong

select * from yuangong where salary>5000

#增加
INSERT into yuangong(name,salary,bumenId,mobile) value('张为剑',2190.6,2,19889007867);

INSERT into yuangong(name,salary,bumenId,mobile) value('张娜拉',9871.6,1,19889007777);


#修改
update yuangong set salary=salary+1 where id=7

#删除
INSERT into yuangong(name,salary,bumenId,mobile) value('张拉拉',9871.6,1,19889007777);

delete from yuangong where id=8

复制代码

 

4.6、上机练习

1、请创建一个新的数据库叫HR,在HR数据库中添加EMP表,EMP表的表结构如下所示

EMP表:员工信息

名称

类型

描述

1

EMPNO

int

雇员的编号,主键,自动增长

2

ENAME

VARCHAR(10)

雇员的姓名,由10位字符所组成,不为空,唯一键

3

JOB

VARCHAR(9)

雇员的职位

4

MGR

int

雇员对应的领导编号,领导也是雇员,可空(可删除这一列)

5

HIREDATE

TimeStamp

雇员的雇佣日期,默认为当前日期

6

SAL

Numeric(7,2)

基本工资,其中有两位小数,五位整数,一共是七位

7

COMM

Numeric(7,2)

奖金,佣金

8

DEPTNO

int

雇员所在的部门编号,可空,外键fk_deptno

9

DETAIL

Text

备注,可空

Dept:部门表

名称

类型

描述

1

DeptNO

int

部门的编号,主键,自动增长

2

DNAME

VARCHAR(10)

部门名,由50位字符所组成,不为空,唯一键

3

DTel

VARCHAR(10)

电话,可空

2、根据上面的表结构完成表的创建,表名为emp

3、在表中添加5条以上的数据

4、完成下列查询要求

4.1查询所有员工信息

4.2查询所有工资介于2000-5000间的员工姓名、职位与工资

4.3查询所有姓“张”的员工

4.4 按工资降序查询出2014年到2015年间入职的员工

4.5、将工资普遍上调20%

4.6、将工资低于3000元的员工奖金修改为工资的2.8倍

4.7、删除编号为5或者姓“王”的员工

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值