广告
返回顶部
首页 > 资讯 > 数据库 >一、MySQL数据库基础
  • 515
分享到

一、MySQL数据库基础

2024-04-02 19:04:59 515人浏览 八月长安
摘要

1.1、数据库模型  数据库由一批数据构成有序集合,这些数据被存在结构化的数据表中。数据表之间互相关联,反应客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。数据库的发展大致划分为

1.1、数据库模型

  数据库由一批数据构成有序集合,这些数据被存在结构化的数据表中。数据表之间互相关联,反应客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。数据库的发展大致划分为几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。其种类大概有3种:层次式数据库、网络式数据库和关系式数据库。

  文本数据库缺陷:数据冗余和不一致,数据访问困难,数据孤立,完整性问题,原子性问题并发访问问题,安全性问题。

  数据库系统的特性:数据管理独立性;有效地完成数据存取;数据完整性和安全性;数据集中管理;并发存储与故障恢复;减少应用程序开发时间。

  数据库系统由硬件部分和软件部分共同构成,硬件主要用于存储数据库中的数据,包括计算机、存储设备等。软件部分则主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。

 通用关系型数据库架构

一、MySQL数据库基础

1.2、数据类型与约束

  数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有:

字符:CHAR(n)  VARCHAR(n)  BINARY(n)  VARBINARY(n)  TEXT(n)  BLOB(n)

数值:

  整型:TINYINT  SMALLINT  MEDIUMINT  INT  BIGINT

  修饰符:UNSIGNED  NOT NULL

  浮点型:FLOAT  DOUBLE

日期时间:DATE  TIME  DATETIME STAMP

布尔

NULL

内置:ENUM, SET


字段修饰符:

NOT NULL    非空

NULL        空

UNSIGNED    无符号

DEFAULT     不适用于TEXT类型

PRIMARY KEY 主键

UNIQUE KEY  唯一键

AUTO_INCREMENT:自动增长类型的字段必须为主键或惟一键


域约束:数据类型约束

外键约束:引用完整性约束

主键约束:某字段能惟一标识此字段所属的实体,并且不允许为空,一张表中只能有一个主键。

惟一性约束:每一行的某字段都不允许出现相同值,可以为空一张表中可以有多个

检查性约束:用户自定义有效取值范围。

1.3、Mysql介绍

  mysql是一个小型关系数据库管理系统,与其他大型数据库管理系统(oracle、DB2)相比,Mysql规模小、功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用来说已经够用。

  MySQL的主要运行流程如下所示:

一、MySQL数据库基础

  MySQL数据库管理系统提供了许多命令行工具,这些工具可以用要管理MySQL服务器、对数据库进行访问控制、管理MySQL用户以及数据库备份和恢复工具等。

  服务器端工具程序:

mysqld:SQL后台程序。该程序运行后,客户端才能连接服务器来访问数据库。

mysqld_safe:服务器启动脚本。

mysqld_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器。

myisamchk:用来描述、检查、优化和维护MyISAM表的实用工具。

mysqlbug:MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告。

mysql_install_db:该脚本用默认权限创建MySQL授权表。通常只是在系统首次安装MySQL时执行一次。                

  客户端工具程序:

myisampack:压缩MyISAM表以产生更小的只读表的工具

mysql:交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具

mysqlaccess:检查访问主机名、用户名和数据库组合的权限的脚本

mysqladmin:执行管理操作的客户端程序,如创建或删除数据库,重载授权表,重新打开日志文件等,还可以用来检查版本、进程、以及服务器的状态信息

mysqlbinlog:从二进制日志读取语句的工具,二进制日志文件中包含执行过的语句,可以用来帮助系统从崩溃中恢复

mysqlcheck:检查、修复、分析以及优化表    

mysqldump:将mysql数据库转储到一个文件                   

mysqlhotcopy:当服务器运行时,快速备份MyISAM表的工具

mysqlimport:使用LOAD DATA INFILE将文本文件导入相关表的库户程序 

mysqlshow:显示数据库、表、列以及索引相关信息的客户程序

perror:显示系统或MySQL错误代码含义的工具


mysqladmin [options] command [arg] [command [arg]] ...

[options]:所有通行选项都可使用

command:

  create DB_NAME  创建数据库drop DB_NAME删除数据库

  debug: 打开调试日志并记录于error log中;

  status:显示简要状态信息  (--sleep #: 间隔时长--count #: 显示的批次)

  extended-status: 输出mysqld的各状态变量及其值,相当于执行mysql> SHOW GLOBAL STATUS

  variables: 输出mysqld的各服务器变量

  flush-hosts: 清空主机相关的缓存:DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机列表

  flush-logs: 日志滚动,二进制日志和中继日志

  refresh: 相当于同时使用flush-logs和flush-hosts

  flush-privileges、reload:刷新授权表

  flush-status: 重置状态变量的值

  flush-tables: 关闭当前打开的表文件句柄

  flush-threads:清空线程缓存

  passWord: 修改当前用户的密码;

  ping: 测试服务器是否在线

  processlist:显示mysql线程列表

  shutdown: 关闭mysqld进程;

  start-slave/stop-slave: 启动/关闭从服务器线程

  kill: 杀死指定的线程,可以一次杀死多个,以逗号分隔,不能有多余空格

                                                       

1.4、源码安装MySQL5.5

安装cmake软件与依赖包:

[root@mylinux home]# yum install -y cmake ncurses-devel

创建用户和组

[root@mylinux home]# groupadd mysql
[root@mylinux home]# useradd mysql -s /sbin/nologin -M -g mysql

解压编译MySQL

[root@mylinux home]#wget 
[root@mylinux home]#tar xf mysql-5.5.56.tar.gz
[root@mylinux home]#cd mysql-5.5.56
[root@mylinux home]#cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.56 \
-DMYSQL_DATADIR=/application/mysql-5.5.56/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.56/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
[root@mylinux home]#make 
[root@mylinux home]#make install
[root@mylinux application]# cd /application/
[root@mylinux application]# ln -s /application/mysql-5.5.56/ /application/mysql
[root@mylinux application]# mkdir /application/mysql/data -p
[root@mylinux application]# cd mysql
[root@mylinux mysql]#chown  -R root:mysql  /application/mysql
[root@mylinux mysql]#mdkir -p /application/mysql-5.5.56/tmp   
[root@mylinux mysql]#chmod -R 777 /application/mysql-5.5.56/tmp

选择配置文件与环境变量

[root@mylinux mysql]#cp support-files/my-large.cnf  /etc/my.cnf             
[root@mylinux mysql]#vim /etc/profile.d/mysql.sh
   export PATH=/application/mysql/bin:$PATH

初始化数据库

[root@mylinux mysql]# ./scripts/mysql_install_db  --user=mysql --data=/application/mysql/data/
Installing MySQL system tables...
170711 22:09:40 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
170711 22:09:40 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
170711 22:09:40 [Note] ./bin/mysqld (mysqld 5.5.56-log) starting as process 28738 ...
OK
Filling help tables...
170711 22:09:41 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
170711 22:09:41 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
170711 22:09:41 [Note] ./bin/mysqld (mysqld 5.5.56-log) starting as process 28745 ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h mylinux password 'new-password'

Alternatively you can run:
./bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems at Http://bugs.mysql.com/

添加启动脚本与设置开机启动

[root@mylinux mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@mylinux mysql]# chmod +x /etc/init.d/mysqld 
[root@mylinux mysql]# chkconfig --add mysqld
[root@mylinux mysql]# chkconfig --level 2345 mysqld on
[root@mylinux mysql]# service mysqld start 
Starting MySQL.. SUCCESS!

mysql的配置文件:

 /etc/my.cnf或/etc/mysql/my.cnf-->$MYSQL_BASE/my.cnf -->--defaults-extra-file=my.cnf

-->~/ .my.cnf

使用配置文件的方式

  1、它依次查找每个需要查找的文件,结果是所有文件并集;

  2、如果某参数在多个文件中出现多次,后读取的最终生效;

1.5、MySQL变量与作用域


服务器变量:@@变量名

  显示:SELECT @@变量名

  设定:SET GLOBAL|SESSION 变量名='value'

设定服务器变量的值:(仅用于支持动态的变量)

  支持修改的服务器变量:

    动态变量:可以MySQL运行时修改,可即时修改

    静态变量:于配置文件中修改其值,并重启后方能生效;

  动态调整参数的生效方式:

    全局变量:服务器级别,修改之后仅对新建立的会话有效;

    会话变量:会话级别,仅对当前会话有效;会话建立时,从全局继承各变量;

查看服务器变量:

mysql> SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE ''];
mysql> SELECT @@{GLOBAL|SESSION}.VARILABLE_NAME;
mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='NAME';
mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='NAME';

修改变量:默认仅管理员有权限修改全局变量

mysql> SET {GLOBAL|SESSION} VARIABLE_NAME='VALUE';

注意:无论是全局还是会话级别的动态变量修改,在重启mysqld后都会失效;想永久有效,可定义在配置文件中的相应段中[mysqld]。

1.6、MySQL中文数据乱码解决办法

1)、向表中插入数据之前先设置客户端的字符集与表保持一致

  SELECT CREATE TABLE tb_name \G   查看表的字符集
  set names 字符集;

2)、在SQL文件中指定字符集然后登陆MYSQL导入数据

  source tb_naMQ.sql;

3)、在SQL文件中指定字符集,通过mysql命令导入数据

  mysql  -uroot  -p’password’  tb_name<tb_name.sql

4)、指定mysql命令设置字符集

 mysql  -uroot -p’password’ --default-character-set=字符集 tb_name<tb_name.sql

5)、配置文件my.cnf中设置客户端与服务器端字符集

6)、进入MySQL,可以查看各配置字符集是否一致

SHOW VARIABLES LIKE ‘character_set%’;



您可能感兴趣的文档:

--结束END--

本文标题: 一、MySQL数据库基础

本文链接: https://www.lsjlt.com/news/44428.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一、MySQL数据库基础
    1.1、数据库模型  数据库由一批数据构成有序集合,这些数据被存在结构化的数据表中。数据表之间互相关联,反应客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。数据库的发展大致划分为...
    99+
    2022-10-18
  • 【MySQL】 MySQL数据库基础
    文章目录 🐱‍👓数据库的操作📌显示当前的数据库📌创建数据库🎈语法:🎈语法说明🎈示...
    99+
    2023-09-18
    数据库 mysql 基础操作 oracle
  • 【MySQL】数据库基础
    文章目录 1. 登陆选项的认识2. 什么是数据库3. 存储数据为什么不用文件?4. 见一见数据库创建数据库创建表 5. SQL语句分类6. 查看MysQL存储引擎 1. 登陆选项的认识...
    99+
    2023-10-18
    数据库 mysql
  • Mysql数据库理论基础一:MySQL编译安装
     Mysql数据库理论基础一:编译安装一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软...
    99+
    2022-10-18
  • 【MySQL】数据库基础知识
    文章目录 一. 什么是数据库二. 为什么要有数据库三. 数据库分类四. 数据库的基本使用1. MySQL安装2. 检查MySQL后端服务器是否启动3. 连接MySQL服务器4. 服务器,数据库...
    99+
    2023-09-03
    数据库 mysql
  • MySQL数据库基础笔记
    数据库 数据库就是存储和管理数据的仓库,用户可以对数据库中的数据进行增删改查等操作。 数据库的分类 关系型数据库(Oracle、MySQL、SQLite等) 非关系型数据库(Redis、MongoDB等) MySQL简介 M...
    99+
    2019-07-29
    MySQL数据库基础笔记
  • 数据库(mysql)基础操作
     声明:    1)仅作为个人学习,如有冒犯,告知速删!    2)不想误导,如有错误,不吝指教! ------------------------------------分隔符--------------------------...
    99+
    2021-09-02
    数据库(mysql)基础操作
  • MySQL数据库基础知识
    day02 MySQL数据库基础知识一、基础知识概述:    基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如。才能够对数据库有更深入的...
    99+
    2022-10-18
  • 【Mysql】数据库基础与基本操作
    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。 🛸Mysql专栏:Mys...
    99+
    2023-08-16
    mysql
  • DBA成长之路---mysql数据库服务基础(一)
    mysql 数据库服务#主配置文件 /etc/my.cnf #查看服务状态 systemctl status mysqld #数据库目录 /var/lib/mysql #数据库进程名 ...
    99+
    2022-10-18
  • 一篇文章带你了解MySQL数据库基础
    目录1. 数据库概念1.1 数据库是干嘛的?1.2 数据库和数据结构是啥关系?1. 数据库是一个软件/程序1.3 两种类型的数据库2. MySQL数据库2.1 MySQL数据...
    99+
    2022-11-12
  • JavaWeb Mysql数据库基础知识
    1、常用命令 1.1安装数据库  以mysql56为例,存放在d盘,打开cmd,依次输入如下命令:(1)d:(2)cd mysql56(3)cd bin(4)mysqld -install即可安装。1.2启...
    99+
    2022-10-18
  • Mysql数据库理论基础二
     Mysql数据库理论基础二一、简介由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:1、是一种数据库管理系统2、是一种关联数据库管理系统3、是一种开放源码软件,且有大...
    99+
    2022-10-18
  • MySQL 数据库的基础知识
    目录1. 认识数据库1.1 数据库和数据结构的关系1.2 为什么需要数据库1.3 数据库的存储2. SQL2.1 介绍2.2 分类3. 数据库的类别3.1 关系型数据库3.2 非关系...
    99+
    2022-11-12
  • 3.2 - 编程基础 - MySQL数据库
    「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」:此文章已录入专栏《网络安全入门到精通》 MySQL数据库 一、环境准备 ...
    99+
    2023-09-03
    数据库 mysql 网络安全
  • MySQL数据库~~~~初识、基础数据类型
    一 数据库初识 1.1 什么是数据库 数据库(DataBase,简称DB),简而言之可视为电子化的文件柜----存储电子文件的处所,用户可以对文件中的数据运行新增,截取,更新,删除等操作. 所谓数据库是以一定方式储存在一起,能予多个用户 共...
    99+
    2022-04-19
    MySQL数据库~~~~初识 基础数据类型
  • ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库
    1、MySQL存储过程       1.1、什么是存储过程       带有逻辑的sql语句;带有流程控制语句(if  while)等等 的sql语句   1.2、存储过程的特点       1)执行效率非常快,存储过程是数据库的服务器端执...
    99+
    2019-07-25
    ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库 数据库入门 数据库基础教程 数据库 mysql
  • MySQL数据库基础(三)——SQL语言
    MySQL数据库基础(三)——SQL语言 一、SQL语言简介 1、SQL语言简介 SQL是结构化查询语言(Structured Query Language),是用于访问和处理数据库的标准的计算机语言。SQ...
    99+
    2022-10-18
  • MySQL数据库基础回顾【详细】
    目录数据库的de增删改查【CRUD】创建数据库查询数据库修改数据库删除数据库使用数据库综合练习:数据库表的de增删改查【CRUD】数据库里的数据类型:C(Create)R(Retrieve)U(Updat&#...
    99+
    2020-10-20
    MySQL数据库基础回顾【详细】
  • mysql数据库基础命令结尾
    27 使用mysqladmin 关闭数据库mysqladmin -uroot -poldboy123 shutdownps -ef |grep mysql28 mysql忘记密码重新修改密码过程:mysql...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作