数据库介绍
初识数据库mysql
1.什么是数据
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机。在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
1,zhang,不详,18,2001,wan,swimming
2.什么是数据库
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用
数据库是长期存放在计算机内、有组织、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享
3.为什么要用数据库
第一,将文件和程序存在一台机器上是很不合理的。
第二,操作文件是一件很麻烦的事
-
数据库的优势:
1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。 2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象 3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket 4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
4.什么是数据库管理系统
如何科学地组织和存储数据,如何高效获取和维护数据成了关键,这就用到了一个系统软件---数据库管理系统。
如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
数据库管理员 DBA(Database Administrator)
5.数据库软件的分类
管理数据的工具有很多种,不止mysql一个。
最常使用的分类还是根据他们存取数据的特点来划分的,主要分为关系型和非关系型。
关系型数据库:数据与数据之间可以有关联合限制的,关系型数据库通常都是表结构,也意味着在使用关系型数据库的时候,要先确定表结构;数据存储在硬盘上。
例如:MYSQL,oracle,sqlite,db2,sqlserver
非关系型数据库:通常都是以k、v键值形式存储数据,没有表结构;数据存在内存中。
例如:redis,mongodb(文档型数据库 非常接近关系型的非关系型数据),memcache
6.mysql数据库
本质就是一款基于网络通信的应用软件
任何基于网络通信的软件 底层都是socket
mysql的架构
类似于 socket的客户端和服务端
流程:
1. mysql服务端先启动,监听在某一个特定的端口(3306)
2. mysql客户端连接服务端
3. mysql客户端就可以发送相关的操作命令,去操作服务端存储的数据
MYSQL是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了数据操作的速度,并提高了灵活性。
MYSQL不单单支持MYSQL的客户端来操作,也支持其他编程语言直接操作,Python,Java,C++,PHP等,他们语法都不一样,但都能操作MYSQL数据库。
在MYSQL中,客户端(mysql)发送一条SQL语句,服务端(mysqld)接收命令并相响应,从数据库中查找数据并返回。
库 >>> 文件夹
表 >>> 文件
记录 >>> 文件内一行行的数据叫做一条条的记录
表头 就是表格的第一行数据
字段 字段名+字段类型
7.数据库服务器、数据管理系统、数据库、表记录之间的关系
记录:1 朱葛 13234567890 22(多个字段的信息组成一条记录,即文件中的一行内容)
表:userinfo,studentinfo,courseinfo(即文件)
数据库:db(即文件夹)
数据库管理系统:如mysql(是一个软件)
数据库服务器:一台计算机(对内存要求比较高)
总结:
数据库服务器-:运行数据库管理软件
数据库管理软件:管理-数据库
数据库:即文件夹,用来组织文件/表
表:即文件,用来存放多行内容/多条记录
8.数据库的基本操作
1. 操作文件夹(库)
增:create database db1 charset utf8;
查:show databases; # 查所有
show create database db1; 查单个库的编码方式
改:alter database db1 charset latin1; # 修改编码
删: drop database db1; # 删库
2.操作文件(表)
在操作表的时候 需要先指定库
指定库: use 库名
先切换到文件夹下:use db1
查看当前虽在的库: select database()
增:create table t1(id int,name char);
查(三种):1)show tables; # 查看某个库下面的所有的表
2)show create table userinfo; # 查看指定表的表头所有的字段的名称及对应的约束条件;
3)desc userinfo; <==> describe userinfo; # 与2)相同,区别就是以表格的形式列出信息;
改:alter table t1 modify name char(3);
alter table t1 change name name1 char(2);
删:drop table t1;
3.记录
先创建一个库或者指定一个已经存在的库
切换到该库下 创建表
然后再操作记录
create database db1;
create table userinfo(id int,name char(32),password int);
增
insert into userinfo values(1,'jason',123); 插入单条数据
insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多条数据
查
select * from userinfo; 查询所有的字段信息
select name from userinfo; 查询指定字段信息
select id,name from userinfo where id=1 or name=tank; 带有筛选条件的字段信息
改
update userinfo set name='kevin' where id=1; 修改数据的一个字段信息
update userinfo set name='jason',password=666 where id=1; 修改数据的多个字段
删
delete from userinfo where id =1; 指定删符合条件的数据
delete from userinfo; 将表中的数据全部删除,如果有自增id,新增的数据,仍然是以删除前的最后一个id号数作为起始
truncate table userinfo;数据量大,删除速度比上一条快,且直接从零开始
*auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找