0375-3382118

可以设置电话、微信、qq,并显示不同的图标

php与数据库的关系,PHP关系型数据库介绍

admin9个月前51

  Mysql数据库:永久性保存数据的仓库

  PHP的变量,在php的执行周期,临时性保存变量的概念!

  Mysql数据是关系型数据库:何谓关系型,利用关系,去描述实体信息,与实体之间的关系的数据库架构就是关系型数据!

  所谓关系:指的就是二维表

  5f9426e137702d95ddc820b44ad634b4.png

  行:记录,一行就是一条记录

  列:字段,一列就是一个字段

  sql:一门语言,结构化查询语言,操作关系型数据的语言

  nosql:not only sql,非关系型数据库。典型的是key/value型,键值对型

  操作mysql的基本流程:

  什么是数据库系统:mysql就是数据库系统!数据库系统最基本应该由:数据库(数据主体部分)+数据库管理系统(操作数据的工具)

  DBS (database system) = DB(database) + DBMS(database management system)

  2113c45fee83363baa875a038605301f.png

  mysql的操作,是基于C/S!

  SQL:大体分成典型:DML(数据管理语句,数据操作),DDL(数据定义语句,数据结构的控制语句,表操作和库操作)

  库操作,DDL?(Data Definition Language 数据定义语言)

  创建:create (几乎所有的结构都是用该语法完成)

  create database 库名 [库选项]; //库选项只有字符集与校对集的概念

  如:create database ginvip;

  注意:每个库,会对应一个数据目录,存放在当前mysql的总数的数据库目录内

  数据库名的问题:

  大小写问题,取决于mysql服务器所在的操作系统(建议是,认为它区分大小写)

  特殊名称,关键字,特殊字符!默认是不能作为数据库名

  a445138968976394c03f37d8702e9100.png

  但是可以使用反引号将名称包裹起来,告知服务器,此处是一个名字,而不是特殊操作

  26b9c397d81f4c284566c164164e1cce.png

  中文也可以作为标识符(库名),同样也需要反引号!(多字节符,还需要注意字符集的问题)

  删除:drop

  drop database 数据库名;

  修改: alter

  alter database 数据库名;

  只能修改数据库选项

  EX : alter database t_t charset gbk; ?//修改t_t数据库的编码为gbk;

  查询:(看看有哪些库,库的基本结构) show

  show databases;????//查询当前已经存在的所有数据库

  show databases like;????//like关键字用于过滤多个数据库

  EX: show databases like ‘%_schema‘;????// %匹配任意字符的任意次数的组合

  show databases like ‘x_y‘;????// _ 匹配符匹配任意字符的一次

  注意:如需要匹配,特定的通配符,则需要对通配符转义,使用反斜杠 完成转义

  51f55e72808d631770ed0f3046b43e10.png

  查看某个数据库的定义:

  show create database 数据库名;

  46d1020decfdffe419276b9d68cc2a38.png

  在create 与 drop时,有两个额外的操作:

  create database if not exists 数据库名;????//如果不存在则创建

  drop database if exists 数据库名;?????//如果存在则删除

  show warnings;????//查看警告

  表操作:

  表操作分为表本身,与表结构的操作!

  创建:create table

  create table 表名(

  字段的定义;

  )[表选项];

  其中表名,一定先要确定数据库!因此一个典型的表名是由两部分组成:所在库与表名

  EX : create table stu (id int,name varchar(255))engine=innodb charset=utf8;

  其中字段部分才是最终的数据的载体(与变量的概念是类似的,都是基本保存数据的)!因此,在定义字段时至少要字段名和字段类型!

  两种最基本的mysql数据类型(int , varchar) //varchar必须要指定最大长度(单位:字符数)

  表选项部分:常用的有字符集(校对集),表引擎。

  查看:show

  查看所有的表有哪些:show tables; //后面也可以加like关键字:show tables like ‘stu‘;

  查看具体的建表语句:show create table 表名;

  在mysql的命令行客户端,如果数据过多不容易展示,可以使用G作为结束符

  如:show create table 表名G ? ?//后面无需加分号

  查询表结构:desc 表名;

  修改:alter

  1:修改表选项:alter tabale table_name 新选项;

  EX : alter table stu engine=myisam charset=gbk;

  2:改表名:rename 原表名 to 新表名;

  EX : rename table stu to hero;

  注意:表名可以由 库名.表名 组成 (跨库修改表名)

  3:修改表结构(字段):

  增加字段:

  alter table 表名 add column 字段定义 [字段位置];

  EX : alter table stu add column age int; //增加一个age字段

  alter table stu add column height int after name; //在name的字段后面增加一个height字段

  alter table stu add column sn varchar(10) first; //在最前面增加一个sn字段

  删除字段:

  alter table 表名 drop column 字段名;

  EX : alter table stu drop column height; //删除height字段

  修改已有字段(修改字段定义)

  alter table 表名 modify column 字段名 新的定义;

  EX : alter table stu modify column sn int; //将sn字段改为int类型;

  字段改名:

  alter table 表名 change column 原字段名 新字段名 新字段定义;

  注意:不是纯粹的改名,而是需要在修改定义的同时改名

  EX : alter table stu change column sn stu_sn varchar(255) after age; //将sn字段名改为stu_sn,并将 stu_sn改为varchar类型,且将stu_sn放在age字段的下面

  删除:drop talbe

  drop table stu; //删除stu字段

  drop table stu if exists;

  数据操作:DML(Data Manipulation Language 数据操控语言)

  增加,创建,插入:insert

  insert into 表名(字段列表) values(与字段相对的值列表);

  EX : ?insert into stu(id,name) value (1,‘ginvip‘);

  insert into stu(id) values (2);

  insert into stu(name) values (‘-‘);

  insert into stu(name,id) values (‘php‘,4);

  上面四条语句都可以执行成功。不一定要一次插入所有字段,也不一定要按照原始字段插入。但是字段与值的数量一定要匹配。

  如果所有的值都按照字段的出现顺序插入的话,可以省略列表部分!

  注意:数值类型,不需要增加引号,而字符串类型都需要出现在引号内!(数值型也可以出现在引号内)

  查询,检索,选择:select

  select 字段列表 from 表名 [where 条件表达式];

  select * from stu;????// * 表示所有字段

  select * from stu where 1;

  select * from stu where id>3;

  关于条件表达式,默认是没有,表示永远为真

  删除:delete

  delete from 表名[where 条件表达式];

  delete from stu;

  delete from stu where 1;

  delete from stu where id>3;

  注意:删除是不可逆的操作。要避免没有条件的删除

  修改,更新:update

  update from 表名 set 字段=新值,字段n=新值n where 条件;

  update from stu set name=‘PHP‘ where id=4;????//将字段id为4的name字段更新为‘PHP‘;

  字符集:

  描述可见到的图形,在存储和传输时所使用的编码称之为字符集

  指的是:图形与编码之间的对应关系!

  数据的存储编码:

  数据最终要映射(保存)到字段的层面上,因此决定数据的编码,也是最终由字段来决定!

  确定数据的存储编码是由以下的方案完成的:

  1:先看字段的编码,如果存在则确定完毕

  2:如果字段没有设置编码,查看表的编码,如果有,则确定数据编码

  3:如果表没有设置编码,查看库的编码,如果有,则确定数据编码

  4:如果库也没有设置编码,则由服务器程序确定(mysql文件夹内的my.ini配置文件)。如图:

  ef125622c761b72a76ac386565f53b4d.png

  客户端操作,查询的编码:

  在客户端与服务器端交互时,存在两个重要的编码:

  1:客户端发送数据的编码

  2:客户端接收到服务器数据编码

  可以通过 show variables like ‘character_set_%‘; 展示 character_set 开头变量,其中就有上面的两个值

  在命令行客户端下:只能是GBK编码!

  使用 set 变量名 = 变量值的形式更改变量值:

  set character_set_client = gbk;

  set character_set_results = gbk;

  set names gbk , 就是一个快捷操作,将上面两个配置同时更改成目标编码。

  set names gbk/utf8 取决于客户端所能接受的编码!

  401831c3088188c193ba907bb0162f9b.png

  PHP关系型数据库介绍

  标签:php关系型数据库

  本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

  本文系统来源:http://ginvip.blog.51cto.com/8092345/1716116

BC链 http://www.chinabic.com/?id=114 转载需授权!

上一篇:25)PHP,数据库定义

下一篇:老谭建站

网友评论