初识MySql数据库

数据库简介

简单的说,数据库(因为Database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种方式来管理数据库里的数据。
更简单形象的理解,数据库和我们生活中存放杂物的储物间仓库性质一样,区别只是存放的东西不同,杂物间存放实体的物件,而数据库里存放的是数据。

数据库的种类

在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。
非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Olnly SQL”。因此,NoSQL的产生并不是要彻底地否定非
关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率
和高性能。

MySql简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软
件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就
增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

mysql社区版和企业版区别:

1.企业版只包含稳定之后的功能,社区版包含所有Mysql的最新功能。
也就是说,社区版是企业版的测试版,但是,前者的功能要比后者多。
2.官方的支持服务只针对企业版,用户在使用社区版时出现任何问题,Mysql官方概不负责。
至于管理工具,Mysql官方提供的工具都是免费的,从官方网站都可以下载到,同样可以用在社区版的Mysql上

MySql的安装配置
Windows安装配置

数据库的安装通常有可执行文件与压缩包安装两种方式。

Ubuntu安装配置
  • 安装

    sudo apt-get install mysql-server mysql-client
    然后按照提示输入

  • 设置root密码
    ubuntu系统新版本mysql安装是没有提供root密码设置引导
    需要在usr/bin目录下运行 mysql_secure_installation

    sudo mysql_secure_installation

根据提示运行设置
设置完毕重启mysql服务
启动需要使用

sudo mysql -u root -p
管理服务
  • 启动

    service mysql start

  • 停止

    service mysql stop

  • 重启

    service mysql restart

允许远程连接

找到mysql配置文件并修改

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address=127.0.0.1注释
卸载
sudo apt-get --purge remove mysql-server mysql-common mysql-client
基础概念
相关术语
  • 主键:一个记录中有若干个属性,其中一个能唯一标识该记录,该属性就是主键
    比如一条记录包括身份证号,姓名,年龄,身份证号是唯一确定这个人的,它就是主键
  • 外键:外键是与另一张表的关联,能确定另一个表中的记录
    比如:
    有三个表:
    客户表:记录客户的信息,如客户编号,客户名称,地址,联系方式等
    商品表:记录商品的信息,比如商品编号,商品名称,品牌,单价,库存数量等
    订单表:包括订单信息
    一条订单记录:包括客户编号,商品编号,商品数量,金额等属性
    客户编号是客户表中的主键,它就是订单表的外键
  • 约束:一种限制,通过对表的行或列的数据做出限制,来确保数据的完整性、唯一性
    比如:在订单记录中,指定的客户编码,必须是客户表中存在的客户
    商品编号,必须是商品表中存在的商品
表字段约束

• 主键primary key
• 非空not null
• 惟一unique
• 默认default
• 外键foreign key

表字段类型

• 在mysql中包含的数据类型很多,这里主要列出来常用的几种
• 数字:int,decimal,float
• 字符串:varchar,text
• 日期:datetime
• 布尔:bit

图形化界面

在学习数据库初期,使用一款方便的图形化管理界面是非常有利于数据库的辅助学习的
可以选用mysql自带的MySqlWorkBench 或者 Navicat

MySqlWorkBench图形化界面

MySqlWorkBench图形化界面
MySqlWorkBench图形化界面

MySqlWorkBench图形化界面

Navicat图形化界面

Navicat图形化界面
Navicat图形化界面

数据库设计

数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能
够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

数据库三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范
式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

第一范式(确保每列保持原子性)

第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
第一范式的合理遵循需要根据系统的实际需求来定。
比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经
常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式

第二范式(确保表中的每列都和主键相关)

第二范式在第一范式的基础之上更进一层。
第二范式需要确保数据库表中的每一列都和主键相关。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

第三范式(确保每列都和主键列直接相关,而不是间接相关)

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

MySQL命令
连接命令
  • 使用命令连接
    打开终端,运行命令(前提需要配置mysql环境变量)

    mysql -uroot -p
    回车后输入密码,当前设置的密码为mysql
    完整命令 mysql -h 192.168.10.123 -P 3306 -u root -p 其中-h参数为主机地址 -P为端口值

  • 退出登录

    quit或exit

数据库操作
  • 显示数据库列表

    show databases;

  • 创建数据库

    create database 数据库名 charset=utf8;

  • 删除数据库

    drop database 数据库名;

  • 切换数据库

    use 数据库名;

  • 查看当前选择的数据库

    select database();

表操作
  • 查看当前数据库中所有表

    show tables;

  • 创建表

    create table 表名(列及类型);
    create table students(
    id int auto_increment primary key not null,
    sname varchar(10) not null,
    );

  • 修改表
    alter table 表名 add|change|drop 列名 类型;

    alter table 表名 add 列名 类型;–添加某一列
    alter table 表名 change 原列名 新列名 类型; --修改表的列属性名
    alter table 表名 drop 列名; --删除表的某一列
    alter table 表名 rename 新表名; --修改表名

  • 删除表

    drop table 表名;

  • 查看表结构

    desc 表名;

数据操作CURD
  • 查询

    select * from 表名

  • 增加

    全列插入:insert into 表名 values(…)
    缺省插入:insert into 表名(列1,…) values(值1,…)
    缺省插入:insert into 表名 set field1=value1,field2=value2
    同时插入多条数据:insert into 表名 values(…),(…)…;

主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准

  • 修改

    update 表名 set 列1=值1,… where 条件

  • 删除

    delete from 表名 where 条件

外键

MYSQL数据表建立外键
MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
1.两个表必须是InnoDB数据引擎
2.使用在外键关系的域必须为索引型(Index)
3.使用在外键关系的域必须与数据类型相似
外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;

定义外键
constraint FK_TEAID foreign key (teaid) references tea (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
添加外键
alter table stu add constraint FK_TEAID foreign key(teaid) references tea(id);
删除外键
alter table stu drop foreign key FK_TEAID;

在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表
的外键时指定的on update/on delete子句。

MySQL表

数据备份与恢复
  • 进入mysql库目录

    运行mysqldump命令
    mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
    按提示输入mysql的密码

  • 数据恢复

    连接mysqk,创建数据库
    退出连接,执行如下命令
    mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql
    根据提示输入mysql密码

数据库的授权
grant all on *.* to zzy@localhost identified by '1234';

grant select on db.stu to zzy@localhost identified by '1234';
删除用户
use mysql
delete from user where user ='zzy';
修改密码
use mysql
update user set password=password('新密码') where User="zzy" ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值