mysql级联删除_每天学一点学点MySQL数据库之第二节

三、快速安装运行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

下载后直接解压:

d9b2c21b3014d934ae604948aa39c461.png

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

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

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

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

16ffc61dcccefc5b7c99f43690ebb7c0.png

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

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

9afd0d0a4949e064530f26a2ca95f6ee.png

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

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

d952ae3bc5347e61db10456fe0c76d77.png

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命令窗口,进入该目录下(一定要进入该目录,否则操作错误)

e336fab707d85f60c42eb6a667a7cd8a.png

执行DOS命令:

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

2cbd7efdabccac2de8eafa4e322cc3dd.png

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

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

bced429a1dca659644b7ce3ff482b166.png

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/

选择自定义:

fd26cd7fcb404c1e2c9d5a79d3f0a9bc.png

安装的组件信息:

8ed043190b36105c27bbfd571cd394aa.png

服务器软件目录:2816b4f13da2afd7ad065dba6b4a3686.png

数据目录:

dcb2816585caa2ea9883269a4b890ba9.png

点击install安装即可:

413da4c06ca542c8b36bfb2d5dc89338.png
配置:

413da4c06ca542c8b36bfb2d5dc89338.png

ab04640ec55eee5460a102d9dd4a8f84.png

机器类型

2f5a1cf73d27c53eb5292263ba339f16.png
是否支持事务功能:

0befcd641c93aed5082fc495692a1943.png

innodb表空间:

df0a61b0471e91953cffab59858717af.png
连接数量:

43acdc7a71244972004ee6ec46616a2d.png

53eecb9757259b695bf1e83bd4e772c5.png
字符集设定:

3ddeb29e41c928c76452d6cc41e37074.png
配置windows管理相关:

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

80bd197709d584677967cc8e68229dae.png
最后执行配置即可:

7f557e70f9471eb5650aa231aeeb39d1.png
配置后,会启动服务。

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

四、使用GUI操作MySQL

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

数据库 databse:数据的仓库

b5fc193f69d9d9a0b0bea90d60599754.png

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

行:行用于记录数据

记录:行内的数据

列:列用于规定数据格式

字段:数据的某个列

2a9e334ad9878177ff639afbd878a0ed.png

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

8171fdf01edfdf8b27bf31cc72e061f8.png

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

4.2、登录数据库

3d6ef7419d13549fa41f68f37424d8de.png

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

94d4baeb640d1b7385a186f1f6df3939.png

4.3、创建数据库

 dc267415acfa2875b97dd1c3461921b5.png

6e3cea5bbeb738a02d57a5e4ffd94d3c.png

4.4、创建表

df7b87546922a86e6499b626ff1ef2b9.png

1cee6ab9fddf308757179e8d0cf962ea.png

列的类型:

6149172758b2379bb9e93305733a4929.png

数字类型

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

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

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

列的约束:

69ad49b58d3d9a54db07c422ce43029e.png

4.5、管理数据

4.5.1、添加数据

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

25c5d4369a662727213b5511a99abe4e.png

4.5.2、删除数据

d9b6f7665723e19261d20e6d4220bef6.png

4.5.3、修改表结构

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

5f15efb91aafe848b82ce6d76635db48.png

4.5.4、外键

d5c3a01be6d9e00e423b79aa30998821.png

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

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

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

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

6958783fa4df91a08255c934efa5e68a.png

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

添加外键:

班级表:

adf8645ccc2a7700ab9eb0ae5f6cae80.png

学生表:

a4ec3e8608bfdaf488bd3a7f28fefc89.png

添加外键:

a354407412a2a9978186dd96f66035eb.png

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

3b96de0b07cd03623928430ccef301e2.png

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字段
)

3b96de0b07cd03623928430ccef301e2.png

4.5.5、唯一键

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

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

85381da7537a3ed396c5d7debd3fc54f.png

3b96de0b07cd03623928430ccef301e2.png

#查询select id,name from yuangongselect * from yuangongselect * 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

3b96de0b07cd03623928430ccef301e2.png

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值