数据库概念和基本操作

一:为什么要使用数据库?

  基于之前所学,数据要想永久保存,都是保存在文件中的,这就存在几个问题:

  1.程序所有的组件就不可能运行在一台机器上

#因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的性能垂直进行扩展是有极限的。

#于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行。

  2.数据安全问题

#根据1的描述,我们将程序的各个组件分布到各台机器,但需知各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的。但每台机器上的组件都只能操作本机的文件,这就导致了数据必然不一致。

#于是我们想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(用socket实现),即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理。。。。

  3.并发

根据2的描述,我们必须写一个socket服务端来管理这台机器(数据库服务器)上的文件,然后写一个socket客户端,完成如下功能:
#1.远程连接(支持并发)
#2.打开文件
#3.读写(加锁)
#4.关闭文件
也就是说:
#我们在编写任何程序之前,都需要事先写好基于网络操作一台主机上文件的程序(socket服务端与客户端程序),于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

二:什么是数据库?

  2.1什么是数据?

  描述事物的符号记录称为数据,描述事物的符号可以是数字,也可以是文字,图片,图像,声音,语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。

  2.2什么是数据库?

  数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

  数据库是长期存放在计算机内、有组织、可共享的。

  数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并且可以为各种用户共享。

  2.3数据库与文件存储数据区别

  数据库本质上是通过文件来存储数据的,数据库的概念即使通过系统的管理存储数据的文件。

三:数据库管理系统(DataBase Management System简称DBMS)

  1.数据库介绍

  数据库服务器端:存放数据库的主机集群

  数据库客户端:可以连接数据库的任意客户端

  数据库管理员:DBA

  #socket套接字的C/S架构应用

  2.数据库分类

    2.1关系型数据库:

    1.有表的概念

    2.以表中一条条记录存储数据

  MySQL,Oracle,SQL sever,access,db2

  MySQL主要用于大型门户,例如搜狗,新浪等,主要优势是开放源代码,因为开放源代码整个数据库是免费的,是甲骨文公司产品。

  Oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高,也是甲骨文公司的产品

  SQL server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

    2.2非关系型数据库

    1.没有表的概念

    2.通过key-value键值对方式存储数据

  mongodb,redis,memcache

  3.数据库服务器,数据库管理系统,数据库,表与记录的关系

  记录:多个字段的信息组成一条记录,即文件中的一行内容

  表:多条记录构成一张表,本质就是文件

  数据库:多张表构成一个数据库,本质就是文件夹

  数据库管理系统:例如MySQL,就是一个软件

  数据库服务器:一台计算机(对内存要求较高)

四:MySQL

  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司。其最流行的就是关系型数据库管理系统,在web应用方面MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。

  1.下载安装

  官网:http://dev.mysql.com/downloads/mysql

  2.解压到安装的指定目录

  3.添加环境变量

  【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】(或者:前往数据库安装路径,bin文件夹下,cmd执行mysqld启动mysql服务器端,前往数据库安装路径,bin文件夹下,cmd执行mysql启动mysql客户端连接服务器端)

   4.初始化

  mysql --install

  5.将mysql服务器添加到系统服务

  在系统服务中启动mysql,mysqld --install,进入系统服务: win+r => services.msc => 找到mysql服务手动启动或关闭

  6.连接数据库

  mysql -hlocalhost -P3306 -uroot -p

通过最高权限进入数据库,要采用root用户进入,连接本地数据库:mysql -uroot -p

查看mysql版本:select version()
查看当前用户:select user()
查看mysql下的(当前用户可以操作)所有数据库:show databases;

  7.密码操作

    7.1知道旧密码的情况下

    修改密码:mysqladmin -uroot -p旧密码 password"新密码"

     7.2遗忘旧密码的情况下

    1.绕过授权表启动服务(安全认证的服务停止): mysqld --skip-grant-tables;

     2.以任意密码登录root用户: mysql -uroot -P任意

    3.更新密码: update mysql.user set password=password("新密码") where user=root and host="localhost"
    4.刷新权限: flush privileges;

   8.统一字符编码(为mysql服务指定配置文件)

  在mysql的解压目录下,新建my.ini文件(在cmd里面创建的命令:type nul>文件名.文件后缀)

   设置配置信息并保存:  

  [mysqld]
  character-set-server=utf8
  collation-server=utf8_general_ci
  [client]
  default-character-set=utf8

   重启服务

  查看修改结果:\s

 五:库的基本操作

前提:连接上数据库
1.增,创建数据库
采用默认编码集: create database db1;  # db1为数据库名
自定义编码集: create database db1 charset="gbk";
2.查,查看数据库全部信息
纵观所有的数据库:show databases;
详细信息:show create database db1;
3.改,修改数据库编码集
alter database db1 charset="utf8"
4.删,移除数据库
drop database db1;

六:表的基本操作

前提:在具体的某个库下创建表
进入指定的数据库:use db1
确定当前使用的数据库:select database();
1.增,创建表(字段1,类型,... ,字段n 类型)
create table t1(name char,age int);
2.查,查看表信息
纵观所有的数据库:show tables;
详细信息:show create table t1;
表字段结构信息:desc t1;
3.改
修改字段属性:alter table t1 modify name char(20);
修改字段名:alter table t1 change name usr char(16);
修改表名:alter table t1 rename t2;
4.删,移除表
drop table t1;

七:字段的基本操作

前提:知道具体操作的是哪张表
1.增,添加字段
insert into t1(usr,age) values ("aa",18),("bb",8);
2.查
select * from t1;
3.改
update t1 set age=28 where usr="aa";
4.删
delete from t1 where age>8;

猜你喜欢

转载自www.cnblogs.com/liuxiaolu/p/10235398.html