数据库的基本概念

  • 数据 
    描述事物的符号记录为数据(Data),包含数字,文字,图形,图像,声音,档案记录等,以“记录”形式统一的格式进行储存
  • 表 
    将不同的记录组织在一起,就形成了“表”,是用来存储具体数据的
  • 数据库 
    表的集合,是存储数据的仓库,以一定的组织方式存储的互相有关的数据 
    image_1cqkcnji115tk11qo19vq1bl7aj69.png-50.6kB
  • 数据库管理系统(Database Management System DBMS) 
    实现对数据库资源有效组织、管理和存取的系统软件,具有以下功能:数据库的建立和维护功能、数据定义功能、数据操纵功能、运行管理功能、通信功能。

  • 数据库系统(Database System,DBS) 
    是一个人-机系统,由硬件、操作系统、数据库、DBMS、应用软件和数据库用户组成。用户可以通过 DBMS 操作数据库,也可以通过应用程序操作数据库

 

数据库简单分为俩种

  • 关系型数据库====>MySQL,Oracle,postgresql 
    • 关系型数据库简单来说就是:数据与数据之间是有关系的通过关系能够将一系列数据都提取出来
  • 非关系型数据库===>Memcached和Redis
 

MySQL数据库简绍

MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多。其功能稳定,性能卓越,且在遵守GPL协议的前提下,可以免费使用与修改,也为MySQL的推广与使用带来了更多的利好。在MySQL成长与发展过程中,支持的功能逐渐增多,性能也不断提高,对平台的支持也越来越多。 
MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样的设计增加了MySQL的读取速度,而且灵活性和可管理性也得到了很大提高。访问及管理MySQL数据库的最常用标准化语言为SQL结构化查询语言。

 

MariaDB 数据库的诞生背景介绍

自甲骨文公司收购MySQL后,其在商业数据库与开源数据库领域市场的占有份额都跃居第一,这样的格局引起了业内很多的人士的担忧,因为商业数据库的老大有可能将MySQL闭源。为了避免Oracle将MySQL闭源,而无开源的类MySQL数据库可用,MySQL社区采用分支的方式来避开这个风险。MariaDB数据库就这样诞生了,MariaDB是一个向后兼容,可能在以后替代MySQL的数据库产品,其官方地址为:https://mariadb.org/ 。不过,这里还是建议大家选择更稳定,使用更广泛的MySQL数据库,可以先测试MariaDB数据库,等使用的人员更多一些,社区更活跃后再考虑使用为好。

 

编译安装MySQL

MySQL 的下载地址:https://dev.mysql.com/downloads/mysql/ 
还需要提前准备cmake包cmake-2.8.6.tar.gz

  • 准备工作

[root@mysql ~]# yum -y install ncurses-devel 
[root@mysql ~]# tar xf cmake-2.8.6.tar.gz -C /usr/src/ 
[root@mysql ~]# cd /usr/src/cmake-2.8.6/ 
[root@mysql cmake-2.8.6]# ./configure && gmake && gmake install 
这是安装msyql的支持包

  • 源码编译及安装
 
  1. 增加程序用户 mysql
  2. [root@mysql ~]# useradd -M -s /sbin/nologin mysql
  3. 解压 mysql-5.5.22.tar.gz
  4. [root@mysql ~]# tar xf mysql-5.5.22.tar.gz -C /usr/src/
  5. cmake 配置,编译及安装
  6. [root@mysql ~]# cd /usr/src/mysql-5.5.22/
  7. [root@mysql mysql-5.5.22]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //主程序安装目录 
-DDEFAULT_CHARSET=utf8 //默认字符集为 utf8 
-DDEFAULT_COLLATION=utf8_general_ci //默认的字符集校对规则 
-DWITH_EXTRA_CHARSETS=all //安装所有字符集 
-DSYSCONFDIR=/etc //配置文件存放目录 

  • 安装后优化操作 
    [root@localhost ~]# cd /usr/local/mysql/

    image_1cqt10arb1u7m14q115mp15he12tip.png-31.1kB

 
  1. 修改 mysql 安装目录的属主与属组
  2. [root@mysql mysql-5.5.22]# chown -R mysql:root /usr/local/mysql/
  3. 创建修改 my.cnf 配置文件
  4. [root@mysql mysql-5.5.22]# /bin/cp support-files/my-medium.cnf /etc/my.cnf

my.cnf 配置文件相关介绍,在 mysql 解压路径 径 support-files/ 下提供的模版

my-huge.cnf 巨大数据量 
my-innodb-heavy-4G.cnf innodb 引擎 
my-large.cnf 大数据量 
my-medium.cnf 测试使用 
my-small.cnf 小数据量

添加系统服务

 
  1. [root@mysql mysql-5.5.22]# /bin/cp support-files/mysql.server /etc/init.d/mysqld
  2. [root@mysql mysql-5.5.22]# chmod +x /etc/init.d/mysqld
  3. [root@mysql ~]# chkconfig mysqld --add
  4. [root@mysql ~]# chkconfig mysqld --list
  5. mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

添加 MySQL 命令执行的路径到 PATH 环境变量

 
  1. [root@mysql ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
  2. [root@mysql ~]# . /etc/profile
  3. [root@mysql ~]# echo $PATH
  4. /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lo
  5. cal/mysql/bin

这是把mysql里所有的命令加到系统变量中,让系统可以找到命令 
执行 mysql_install_db 脚本初始 化数据库

 
  1. [root@mysql ~]#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

--basedir=/usr/local/mysql/ //指定安装目录(产品目录) 
--datadir=/usr/local/mysql/data //指定数据目录 
--user=mysql //指定用户身份 
启动 mysql 服务,并查看运行状态

 
  1. [root@mysql ~]# /etc/init.d/mysqld start
  2. Starting MySQL... [确定]
  3. [root@mysql ~]# netstat -anpt |grep :3306
  4. tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
  5. 22858/mysqld

连接并登录到 mysql 操作环境 
mysql -u 指定用户名 
-p 指定密码 
-h 指定主机 
-P 指定端口 

[root@mysql ~]# mysql 
[root@mysql ~]# mysql -uroot -p 

设置数据库用户名密码 

 


[root@mysql ~]# mysqladmin -uroot password '123123' 

 

数据库操作

 

SQL语句概括

SQL 语言是(Structured Query Language 的缩写,即结构化查询语言),是关系型数据库的标准语言,用于维护管理数据库,如数据查询、数据更新、访问控制、对象管理等功能 
SQL 分类: 
·DDL:数据定义语言,用于增删改数据库的对象,如库、表、索引等 
·DML:数据操纵语言,用于对表中的数据进行增删改 
·DQL:数据查询语言,用于数据查询 
·DCL:数据控制语言 
image_1cqkg3n6mot01v901pcl1s0m1coam.png-25.7kB

 

MySQL 数据库表的管理操作

  • 查看数据库结构 
    格式:show databases; 
    image_1cqkgehcd17isurvf4h1ji8oso2j.png-10.7kB
 

查看数据库中的数据表信息

格式:use 数据库名; 
show tables ; 
image_1cqkglaiv1bav1rtn106218af3au30.png-11.2kB 
显示数据表的结构(字段 
格式:describe [ 数据库.] 表名 
image_1cqkgovg81frq74buj744a1u7o3d.png-12.9kB

create创建新库,创建新表

格式:create database ; 
create table 表名 ( 定义字段); 
image_1cqkh1aeu1q294lh1bfm26o35c3q.png-22.3kB

 
  1. mysql> use yunjisuan; //使用yunjisuan这个数据库
  2. mysql> create table users (user_name char(20) not null, user_passwd char(30) default '', primary key (user_name));// 在 yunjisuan 库中,创建名为 users 的表,表内两个字段为(user_name 最多 20 个字节 不能为空 ,user_passwd 最多 30 个字节 默认为空,索引关键字 user_name

image_1cqki660n18somu4cpq1u1askg4k.png-8.6kB

insert 插入新数据

格式:insert into 表名( 字段 1, 字段 2,……) values(‘ 字段 1 的值’,’ 字段 2 的值’……); 
image_1cqkhrli512fm48ad21fkuai447.png-18.3kB 
在 users 表的(字段 user_name ,字段 user_passwd )中添加(‘zhangsan ’,调用函数 password(‘123123 ’));

image_1cqki9oon1lt175bmu2193l1vi51.png-10.2kB

image_1cqklripndgu18c819qi1h0q139j9.png-30.7kB

update更改原有数据

格式 :update 表名 set 字段名 1=值 值 1 [, 字段 2=值 值 2] where 条件表达式; 
image_1cqkm7eig10ri1eq7j8oai41ljd26.png-26.9kB
有时显示不出来需要用 flush privileges;这是刷新的意思

select查询语句

格式 :select 字段名 1, 字段名 2,……from 表名; 
select 字段名 1, 字段名 2,……from 表名 where 条件表达式; 
image_1cqkmfuod1msn1aoh1ah5q7l13432j.png-15.1kB

image_1cqkmk25hb2g77sq3ofnvmv30.png-10.3kB

image_1cqkmn4qs1ue919ov1l3nica13tv3d.png-11.7kB

delete删除不需要的数据

格式:delete from 表名 where 条件表达式; 
image_1cqkn0fl74f8fv212jm6ll7eu47.png-31.4kB 
delete from mysql.user where user=''; //在 在 mysql 库中的 user 表中,删除空的用户 
名的记录

drop删除库,删除表

格式:drop table [ 数据库名.] 表名; 
drop database 数据库名; 
image_1cqkn7uuq1ergefh1vouaa134c4k.png-20kB

image_1cqknfmnm44h7nd7341mf76bu61.png-31.9kB