当前位置: 首页 > news >正文

淄博市网站云平台虎丘苏州网站建设

淄博市网站云平台,虎丘苏州网站建设,徐州英才招聘网,网站如何做参考文献目录 什么是数据库 从软件角度出发 从网络角度出发 MySQL数据库的client端和sever端进程 mysql的client端进程连接sever端进程 mysql配置文件 MySql存储引擎 MySQL的sql语句的分类 数据库 库的操作 创建数据库 不同校验规则对查询的数据的影响 不区分大小写 区…

目录

什么是数据库 

从软件角度出发

从网络角度出发 

MySQL数据库的client端和sever端进程

mysql的client端进程连接sever端进程

mysql配置文件

MySql存储引擎 

MySQL的sql语句的分类 

数据库 库的操作

创建数据库

不同校验规则对查询的数据的影响

不区分大小写

 区分大小写

查看数据库

​编辑

查看数据库创建语句

修改数据库(强烈不建议)

​编辑

删除数据库 

​编辑 查看连接状态 

表的操作

创建表 

查看表结构 

对表的操作 

向表中插入记录

向表中插入新的字段 

修改表的某一个字段(强烈不建议)

修改表名(强烈不建议)

删除表的某一字段

删除表


         在此之前,我们已经学习了C++,数据结构,操作系统和计算机网络的相关知识,本期开始,我们将进行MySQL数据库相关知识的学习。

什么是数据库 

        数据库是一个大家都耳熟能详的技术,但是数据库到底是什么呢?

        要了解数据库是什么,我们可以从两个角度去探讨数据库是什么。

从软件角度出发

        应用层的软件中的一些表的数据,其实都是持久化存储在磁盘之上的,我们要去磁盘上访问表中的数据,这是很麻烦的一件事,我们要自己在应用层软件之中写入大量的访问磁盘中表数据的接口,这样就会导致,应用层软件访问表资源的效率非常的慢,且应用层软件设计时非常的复杂。所以我们引入了数据库的概念,数据库其实就是基于应用层软件和磁盘中间的一个应用层软件,可以帮助用户进行复杂的表的各种增删查改操作,因为其里面封装了大量的增删查改接口。

图示如下。 

从网络角度出发 

        数据库我们也可以称其为一款网络服务,但这其实并不是一个准确的说法,更准确的说法应该其实就是一款客户端进程和服务器端进程组合起来的一种进行数据存储技术。 

图示如下。

        我们通过netstat -nltp查看MySQL数据库的网络服务。

        大家只需要记得, 数据库中包含了网络服务就行,这个网络服务是可以被多个client端进程访问的,所以数据库安全问题就此产生,不过这不是我们本期的重点。

        数据库的种类有很多种,我们要学习的是一款应用最为广泛的数据库,即MySQL数据库。 

MySQL数据库的client端和sever端进程

        我们上文已经讲过了,数据库本质上其实就是两个进程,一个是client端mysql进程,一个是sever端mysql进程。

         一般情况下,我们自己使用数据库时,client端数据库进程和sever端数据库进程都是处于同一台主机的,我个人的mysql进程和mysqld进程是出于同一服务器主机上的。对应的目录分别为。

  1. client端mysql进程(可执行程序)路径:/usr/bin/mysql
  2. sever端mysql进程(可执行程序)路径:/usr/sbin/mysqld

mysql的client端进程连接sever端进程

连接指令如下。

mysql -h 127.0.0.1 -P 3306 -u root -p

-h表示连接的主机的ip地址,-p表示连接的主机中对应的端口号,-u代表登录数据库的用户试是谁,-p代表着要输入密码。 

mysql配置文件

在/etc目录下有一个my.cnf文件,这个文件为MySQL的client端进程mysql和sever端进程mysqld的配置文件。

MySql存储引擎 

可以通过show engine查看mysql支持的存储引擎。

        mysql中常用的存储引擎就是InnoDB和MyISAM。 

        说了这么多,那么这个存储引擎到底是个啥?

        上文我们已经讲过了,client端mysql进程发送sql请求至sever端mysqld进程,然后mysqld进程处理sql语句创建数据库和数据库表,我们也说过了创建的数据库和数据库表会存储在主机中的特定的目录下,数据库和数据库表都是文件,也就意味着创建的数据库和数据库表最终会持久化在磁盘上。此时存储引擎就可以发挥出它的作用了,它可以采取一些高效的措施将生成的数据库和表文件持久化在磁盘上,将来从磁盘上访问数据库和数据库表也会有自己的检索策略,从而提高数据库文件和数据库表文件的存储效率,以及检索文件中数据的效率。

MySQL的sql语句的分类 

 上文已经说过了,在MySQL中我们使用sql语句进行数据库和数据库表的创建,所以sql语句也会被分类,在MySQL中sql语句被分了三类。

  1. DDL【Data Definition Language】:数据库定义语言,用来维护数据库数据的结构。相关的指令有create,drop,alter。
  2. DML【Data Manipulation Language】: 数据库操纵语言,用来对数据进行操作。相关的指令有insert,delete,select,update。
  3. DCL【Data Control Language】:数据控制语言,用来负责权限管理和事务。相关的指令有grant,revoke,commit。

数据库 库的操作

创建数据库

首先说明,在sql语句中,不区分大小写,一条sql语句以一个 ; 隔开。 

create database [if not exists db_name  [charset=utf8] [collate utf8_general_ci];

        其中,charset表示创建的数据库的编码规则,collate表示数据库校验规则,校验规则可以通俗的理解为,在数据库中建表以后,采用相同的sql进行查询,但是可能因为校验规则的不同导致将来查询的结果不同。 

        括号中的sql语句都是可以省略的,但是要注意的是,编码规则和校验规则如果省略了,就是用数据库默认的编码规则和校验规则,可以在/etc/my.cnf中配置默认的编码规则和校验规则,默认情况下,数据库的编码和校验规则分别为utf8和utf8_general_ci。

上图我们创建了一个名为study的数据库,打开/var/lib/mysql目录。

我们不难发现,创建了一个study的数据库,本质就是在/var/lib/mysql目录下创建了一个study数据库目录,目录里就是数据库的配置文件。

可以使用 show charset 和 show collation 查看MySQL数据库支持的编码规则和校验规则。

不同校验规则对查询的数据的影响

不区分大小写

        使用 utf8_general_ci 校验规则,查询出来的数据不区分大小写。

        我们使用上述校验规则,创建了一个学生表,如果创建的表没有限定编码规则和校验规则,则继承数据库的编码规则和校验规则。

        依次插入  'A','a','B','b'  字符。

        查询性别为  'a' ,'B' 的学生记录。

        我们发现,这两次查询没有区分大小写,将  'A','a','B','b'都查询了出来。

 区分大小写

        使用 utf8_bin 校验格式在将来查询数据时,是区分大小写的。

        创建了一个student表,校验格式为 utf8_bin。

     依次插入  'A','a','B','b'  字符。

        查询性别为  'A' ,'b' 学生记录。 

        我们发现,最终查询出来的记录都是查询的大写 'A' 和 小写 'b' 。 

        由此不难发现,数据库表的校验规则的不同,想通条件查询出来的数据记录也是不同的。

查看数据库

show databases;

查看数据库创建语句

show create database db_name;

修改数据库(强烈不建议)

        修改数据库的操作很有可能为上层应用代码造成很大的影响,所以数据库一旦创建好了就不建议再去修改。 

alter dataebase db_name;

        修改数据库study的编码规则为gbk。

        修改数据库study1的名称为study2。

        我们使用上述方法是改不了数据库名称的,因为MySQL为了避免更改数据库带来不必要的风险,一般情况下是不允许更改数据库名称的,但是有其它的方法更改,但是我们仍然强烈建议不要更改数据库, 不要更改数据库,不要更改数据库,重要的事情说三遍!!!

删除数据库 

drop database db_name;

 查看连接状态 

可以通过下列sql语句查看有多少mysql客户端进程连接上了mysqld服务器端进程。

show processlist;

表的操作

创建表 

CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 存储引擎;

        创建一个person表。 

         创建表其实也是在var/lib/mysql下的数据库目录中创建对应的表相关文件。

  • person.frm:表结构
  • person.MYD:表数据
  • person.MYI:表索引 

        我们创建的person表的存储引擎为MyISAM,需要注意的是,不同的存储引擎在对应目录下生成的表文件是不一样的。        

查看表结构 

desc tb_name;

对表的操作 

        在数据库中,一列的标题我们就称之为一个字段,一行我们就称之为一条记录。

向表中插入记录

向表中插入新的字段 

向person表中插入home字段。

修改表的某一个字段(强烈不建议)

        修改name字段,数据类型为 char(20)。

        修改name字段名称为user字段。强烈不建议修改字段名称,因为会对应用层代码造成不必要的影响。烈不建议 ,强烈不建议 ,强烈不建议 重要的事情说三遍!!!

        需要注意的是,修改之后的新的user字段必须是完整定义的,也就是必须定义类型字段。 

修改表名(强烈不建议)

      修改person表的名称为people。

        更改数据库表的名称时,rename to 中的to是可以省略的。同样的,修改表的名称可能会对应用层程序造成不必要的风险,所以强烈不建议,强烈不建议,强烈不建议!!! 

删除表的某一字段

删除people表中的home字段。

        删除字段时也要小心,因为删除字段会删除所有记录的该字段。 

删除表 

删除study数据库中的student表。

        以上便是数据库以及MySQL数据库的基本概念。

        本期内容到此结束^_^

http://www.yayakq.cn/news/646010/

相关文章:

  • 做网站找哪里安卓应用开发语言
  • 广州做网站信科网络公司营销策划方案案例
  • 常宁网站设计威海网站制作怎么样
  • 水务公司网站建设方案wordpress页面和文章
  • 网站编辑能在家做h5制作收费标准
  • 长春设计网站企业家居网站建设
  • 沈阳设计网站公司哪家好一键自助建站
  • 国外素材网站上海啥情况
  • jsp电影网站开发教程网页版 微信
  • 网站制作网站建深圳保障性住房多少钱一平米
  • 怎样自己做网站卖钱怎么做好营销型网站
  • wordpress建站 知乎网页设计需要学什么东西
  • 网站建设费应计入什么科目wordpress有自定义时间发布文章
  • 织梦游戏网站源码建设门户网站需要注意什么意思
  • 长沙做网站推荐著名营销成功案例
  • 大连手机自适应网站建设价格如何优化网站打开速度
  • 加强宣传阵地建设 高校 网站镜像的网站怎么做排名
  • 网站建设合同要存档几年邯郸网站建设推荐驰捷网络公司
  • 外贸网站推广工具微信小程序设计软件
  • 加快建设企业门户网站建html网站正在建设源码
  • 网站建设制作开发 小程序开发定制 软件系统开发投资公司网站设计
  • 芜湖有哪些招聘网站国际新闻最新消息今天时政
  • 中国移动网站建设情况分析广东专业网站建设效果
  • 做旅游网站的开题报告网络公司经营范围可以加技
  • 网站更改指定字段工程外包平台
  • 网站敏感关键词西安知名的集团门户网站建设企业
  • 制作网站需要钱吗网页维护包括哪些
  • 网站设计内容wordpress评论框优化
  • 上海网站建设中心网站怎么做搜索引擎优化_
  • 毕业设计代做的网站安义网站建设