数据库应用——MySQL数据库基础

                                              第一章 MySQL数据库基础

一、数据库简介
1、使用数据库的必要性
(1)可搞笑且调理分明的存储数据,使人们迅速、方便的管理数据
(2)特点
①结构化存储大量数据信息,方便用户进行有效检索访问
②有效的保持数据信息一致性、完整性,降低数据冗余
③满足应用的共享和安全方面的要求
2、数据库的基本概念
(1)数据(Data):以记录的形式按统一格式存储的数字、文字、图形、图像、声音、档案等
(2)数据库和数据库表(Database,DB,Table):
①不同的记录组织在一期,形成了数据库的表
②表的集合形成数据库
(3)数据库管理系统和数据库系统
①数据库管理系统(DBMS):实现对数据库资源有效组织和管理存取的系统软件:
1)数据库的建立和维护功能
2)数据定义功能
3)数据操作功能
4)数据库的运行管理功能
5)通信功能
②数据库系统(DBS):一个人——机系统,一般由硬件、操作系统、数据库、DBMS、应用软件和数据库用户组成
3、数据库发展史
(1)数据库系统发展史
①初级阶段——第一代数据库:20世纪60年代,层次模型与网站模型的数据库系统
②中级阶段——第二代数据库:20世纪70年代,DB2关系数据库
③高级阶段——第三代数据库:20世纪80年代,各种适应不同领域的新型数据库系统不断涌现,特别是面对对象数据库系统,由于其实用性强、适应面广而受到人们青睐。
(2)经典数据模型
①网状模型
②层次模型
③关系模型
(3)主流数据库介绍
①关系数据库:SQL server、Oracle、DB2、MySQL
②非关系数据库:Memcached、Redis、MongoDB、HBase
1)数据库高并发读写
2)对海量数据高效存储于访问
3)数据库的高扩展性与高可用性
4)存储数据不以关系模型为依据,不需要固定的表格式。非关系型数据库作为关系型数据库的一个补充,在日益快速发展的网站时代,发挥着高效与高性能。
4、关系数据库的基本概念
(1)基本结构
①多个二维表格组成
②数据表通常是一个由行和列组成的二维表,每个数据表分别说明数据库中某一特定的方面或部分的对象及其属性
③数据表中的行通常叫做记录或者元组,代表众多具有相同属性的对象中的一个
④列通常叫做字段或者属性,代表相应数据库中存储对象的共有属性
(2)主键与外键
①主键:数据表中唯一标识,一个主键对应一行数据,具有唯一性,不允许取空
②外键:用于建立和加强两个数据表之间连接的一列或多列
(3)数据完整性规则
①实体完整性:关系中的元组再主键的树形上不能有空值
②域完整性规则:指定一个数据集对某一个列是否有效或确定是否允许空值
③引用完整性:两表之间相互关联,那么引用完整性要求不允许引用不存在的元组
④用户定义的完整性:针对某一具体数据的约束条件,有应用环境决定。

二、MySQL服务基础
MySQL是一个真正的多线程、多用户的SQL数据库服务
1、编译安装(CentOS7)
(1)准备工作
卸载mariadb
安装 gcc、gcc-c++、ncurses-devel
下载安装cmake:http://cmake.org/download/
下载安装Boots:http://sourceforge.net/projects/boost/files/boost/
(2)编译及安装
创建用户:useradd -M -s /sbin/nologin mysql
②编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_BOOST=/usr/local/boost
DCMAKE_INSTALL_PREFIX:安装目录
DSYSCONFDIR:初始化参数目录
DDEFAULT_CHARSET:指定默认字符编码
DDEFAULT_COLLATION:指定默认字符集校对规则
DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码
DWITH_BOOST:指定BOOST库的位置,5.7版本必须添加此参数
③安装:make && make install
(3)安装后的调整
权限设置:chmod -R mysql:mysql /usr/local/mysql
创建配置文件:cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
初始化数据库:/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
1)最后一行会生成一个随机的临时密码
④配置环境变量
1)ln -s /usr/local/mysql/bin/* /usr/local/bin/
(4)添加系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
2、访问数据库
(1)登录:mysql -u root -p
①修改密码:set password =password(‘h@O123.com);
1)mysqladmin -u root -p password ‘h@O123.com’
②5.7中启用了密码增强插件validate_password,新密码需符合复杂性要求,测试环境中可禁用此插件
(2)操作语句
①查看数据库:SHOW DATABASES;
②退出:quit/exit

三、使用MySQL数据库
1、查看数据库结构
(1)查看数据库:show databases;
(2)选择库:use test;
(3)查表:show tables;
(4)查看表结构:describe mysql.user;
2、创建及删除库和表
(1)创建库:create database 库名;
(2)创建表:create table 表名(字段1 类型,字段2 类型……,PRIMARY KEY(主键名));
(3)删除库:drop database 库名;
(4)删除表:drop table 库名.表名;
3、管理表中数据
(1)插入数据:instert into 表名(字段1,字段2……) values(值1,值2……);
(2)查询记录:select 字段名1,字段名2…… from 表名 where 条件
(3)修改数据:update 表名 set 字段1=值1,字段2=值2…… where 条件
删除数据:delete from 表名 where 条件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sakila是MySQL官方提供的一个样例数据库,用于演示和练习MySQL数据库的使用。数据库包含了一个虚构的DVD租赁店的数据,其中包括客户、电影、租赁记录等等。 Sakila数据库包含16张表,包括: 1. `actor`:演员表,包含演员的ID、名字和最后更新时间。 2. `address`:地址表,包含地址的ID、地址、邮编、电话和最后更新时间。 3. `category`:电影类别表,包含类别的ID和名称以及最后更新时间。 4. `city`:城市表,包含城市的ID、城市名称、国家ID和最后更新时间。 5. `country`:国家表,包含国家的ID、国家名称和最后更新时间。 6. `customer`:客户表,包含客户的ID、姓名、地址、邮编、电话、积分、注释和最后更新时间。 7. `film`:电影表,包含电影的ID、标题、描述、发行年份、语言ID、原始语言ID、租金、长度、评级和最后更新时间。 8. `film_actor`:电影演员表,包含电影ID和演员ID。 9. `film_category`:电影类别表,包含电影ID和类别ID。 10. `inventory`:库存表,包含DVD的ID、电影ID和最后更新时间。 11. `language`:语言表,包含语言的ID、名称和最后更新时间。 12. `payment`:支付表,包含支付的ID、客户ID、租赁ID、支付时间、租赁时长和支付金额。 13. `rental`:租赁表,包含租赁的ID、客户ID、电影ID、租赁时间和最后更新时间。 14. `staff`:员工表,包含员工的ID、姓名、地址、邮编、电话、邮箱、店铺ID、用户名、密码和最后更新时间。 15. `store`:店铺表,包含店铺的ID、地址、邮编、电话和最后更新时间。 16. `sales_by_film_category`:按电影类别统计销售额的视图,包含类别名称和销售额。 使用Sakila数据库可以练习SQL查询、联结、聚合、子查询等等操作,是学习MySQL的很好的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值