设为首页 收藏本站
查看: 892|回复: 0

[经验分享] php基础教程之mysql

[复制链接]

尚未签到

发表于 2018-12-15 07:03:01 | 显示全部楼层 |阅读模式
  1.1 回顾重点
  1、 elseif 和else if的区别
  这两个结果都是一样的,elseif是多分支语句,else if是if的嵌套语句
  2、 在一个循环N次for循环中,初始值执行几次?条件判断几次?增量执行几次?
  初始值:1次
  条件:N+1次
  增量:N次
  3、 访问全局变量用$GLOBALS

1.2 数据库简介
  数据库是存放数组的仓库,数据不是直接放到数据库中,数据库中放的是表,表中存放的是数据。

1.3 数据库的发展史
  q 萌芽阶段——文件系统
  q 使用磁盘文件来存储数据
  q 初级阶段——第一代数据库
  q 出现了网状模型、层次模型的数据库
  q 中级阶段——第二代数据库
  q 关系型数据库和结构化查询语言
  q 高级阶段——新一代数据库
  q “关系-对象”型数据库
1.3.1 层次模型
  层次模型是一种导航结构,
  优点:分类管理,如果查询同一类的数据是很方便的。
  缺点:如果查询很多不是同一类的数据,效率就很低了
  层次结构可以造成数据无效,比如张经理管理了一个员工叫张三,李经理也管理了一个叫张三,我们无法区分张三是一个人还是两个人。

1.3.2 网状模型
  网状模型解决了层次模型数据无效的问题,但是没有解决导航问题

  查询某个销售代表的发表是很方便的,但是查询10月份的发票效率就很低了。

1.3.3 关系模型
  关系模型中,每个表都是独立的,通过公共字段来建立关系。

  优点:表是独立的,需要什么数据就到那个表中查询。
  缺点:多表查询的时候效率低下。
  关系:两个表的公共字段叫关系。
1.4 Sql语句简介
  Structured Query Language,结构化查询语言,是用来操作关系型数据库的
  常用的关系型数据库有:
  Access
  MySQL
  Sql server
  Oracle
  标准SQL是所有关系型数据库都支持的操作语句,标准SQL也叫SQL-92。但是每个数据库在标准SQL的基础上又扩展了自己的东西。
  数据库
  扩展了标准SQL形成的新语句
  SQLserver
  T-Sql
  Oracle
  PL/Sql
  MySql
  MySql
  问题:orace支持标准SQL,在oracle上编写的PL/Sql,能否运行到mysql上?
  答:不可以。
1.5 连接数据库
  安装好数据库以后,MySQL自带一个MySQL命令行客户端,这个客户端很方便,但是只能连接本地的MySQL。
  我们用windows命令行连接数据库
  几个DOS命令
  DOS环境下命令后面没有分号,在Mysql环境下,命令后面后分号。
  1、 进入盘符:
  a) 语法:  盘符:   比如

  2、 进入盘符下某个文件夹
  a) 语法:  cd  路径

  上一级目录  ../

  进入根目录: /表示根

  连接MySQL服务器需要的参数:
  Host:主机-h
  Username:用户名-u
  Password:密码-p
  Port:端口-P

  F:\>cd F:\wamp\bin\mysql\mysql5.5.8\bin
  F:\wamp\bin\mysql\mysql5.5.8\bin>mysql -hlocalhost -uroot -p -P3306
  端口号是3306,可以省略端口号

  mysql -u root -h localhost -p
  如果连接的是本地MySQL,数据库地址也是可以省略。

  mysql -uroot -p
1.6 退出数据库
  1、 exit
  2、 quit
  3、 \q
1.7 数据库操作
  数据库本质就是一个文件。操作数据库的软件叫数据库管理系统。
1.7.1 创建数据库
  语法:
  Create database 数据名 [charset=字符编码]
  Create:创建
  Database:数据库
  例题:

  如果创建的数据库已经操作,会报错。

  创建的时候判断一下,如果不存在就创建。
  语法:
  Create database if not exists 数据库名

  如果创建的数据库名字是一个关键字,会怎么样?

  解决:在名字上加上反引号

  创建数据库的时候指定字符编码

1.7.2 查询数据库
  Show databases

1.7.3 显示数据库的创建语句
  Show create database 数据库名

1.7.4 更改数据库
  更改数据库的字符编码
  alter database 数据库名 [选项]
  alter:修改

1.7.5 删除数据库
  语法:
  Drop  database 数据库名
  Drop:删除

  如果删除不存在的数据库,会报错

  在删除数据库的时候,判断数据库是否存在,如果存在才删除
  Drop database if exists 数据库名

1.7.6 选择数据库
  语法:
  Use  数据库名

1.8 数据表的操作
1.8.1 几个概念
  stuid
  classid
  schoolid
  stuname
  stusex
  stuadd
  stuage
  1
  1
  1
  李白
  男
  北京
  20
  1
  2
  2
  杜甫
  女
  地址不详
  18
  行也叫记录,一行就是一条记录
  列也叫字段,一列是一个字段。字段也叫属性
  一个表中包括多个字段。
1.8.2 创建表
  语法:
  Create table 表名(
  字段1   数据类型  [null|not null] [default] [auto_increment] [primary key],
  字段2   数据类型
  …
  )
  not null:不为空
  default:默认值
  auto_increment:自动增长
  primary key:主键
  主键的特点:不能重复,不能为空
  一个表只能有一个主键,主键可以由多个字段一起组成。
1.8.3 数据类型
  int:整型
  decimal(总位数,小数位数)  存小数  decimal(3,1)
  char(10):定长
  varchar(10):可变长度
  text:大段文本
  思考

  Q Q一般用什么类型?varchar
  手机号一般用什么类型?char()



1.8.4 例题:创建一个简单的表
  表名:stu
  字段名:
  Stuid   int,
  Stuname  varchar(10)

1.8.5 查看所有表
  语法:
  Show tables;

1.8.6 显示创建表的SQL语句
  语法:
  Show create table  表名 [\G]
  \G:表示table字段和create table字段竖排。

1.8.7 显示表结构
  describe [desc]  表名
  describe  :描述


1.8.8 删除表
  Drop table 表名

  Drop table 表1,表2,表3…

1.8.9 创建复杂的表


1.9 数据操作
1.9.1 插入数据(增)
  语法:
  insert into 表名 (字段名1,字段2) values (值1,值2);
  练习
  --插入数据
  insert into stu (id,name,sex,`add`) values (1,'李白','男','北京');
  insert into stu (id,name,sex,`add`,score) values (2,'杜甫','女','上海',99);
  --插入字段可以和数据库中的字段的顺序不一致,但是值和插入字段的顺序必须相一致
  insert into stu (name,id,`add`,score,sex) values ('李小白',3,'北京',null,'男');
  --插入字段是可以省略的,插入的值和数据表的字段顺序和个数都一致
  insert into stu values (4,'白居易','男','北京',86);
  --自动增长的插入
  insert into stu values (null,'李清照','女','上海',77);
  --默认值的插入
  insert into stu values (null,'辛弃疾','男',default,68);
1.9.2 修改数据(改)
  语法:
  Update 表名 set 字段1=值1,字段2=值2 where 条件
  练习
  --把‘李白’的性别改成'女 '
  update stu set sex='女' where name='李白';
  --思考,如下语句结果是什么?
  update stu set sex='女';
  --将所有字段的sex都变成了‘女’
  --将2号学生性别改成'男'

  update stu set sex='男' where>  --将3号的学生性别改成‘男’,地址改成‘天津’

  update stu set sex='男' where>1.9.3 删除数据(删)
  语法:
  Delete from 表 [where 条件]
  例题
  --删除李白
  delete from stu where name='李白';
  -- 思考:如下语句输出什么?
  delete from stu;  --将stu表中的数据全部删除
  --删除学生是6号的学生

  delete from stu where>1.9.4 查询数据(查)
  语法:
  Select 列名 from 表 [where 条件] [order by 排序字段 asc|desc] [limit 起始位置,获取的记录数]
  由低到高排序:升序 asc
  由高到低排序:降序  desc
  默认是升序排列
  Limit中的起始位置是从0开始的。
  /**
  查询
  */
  --查询所有学生的姓名和性别
  select name,sex from stu;
  --查询所有学生的所有字段

  select>  --通过*号来代替所有字段
  select * from stu;
  --查询所有男生的信息
  select * from stu where sex='男';
  --查询上海的男生
  select * from stu where sex='男' and `add`='上海';
  --查询所有的女生和上海的男生
  select * from stu where sex='女' or (sex='男' and `add`='上海');
  --查询北京和上海的学生
  select * from stu where `add`='上海' or `add`='北京';
  --查询成绩大于等于90分的学生
  select * from stu where score>=90;
  --按成绩由高到底排列
  select * from stu order by score desc;
  --女生按成绩有底到高排列
  select * from stu where `sex`='女' order by score asc;
  /**
  limit  限制
  */
  --取前3条数据
  select * from stu limit 3;
  select * from stu limit 0,3;
  --从第一条开始[0是最上面一条],去3条
  select * from stu limit 1,3;
  --去白居易和李清照
  select * from stu limit 3,2;
  --找出前三名(按成绩反向排序)
  select * from stu order by score desc limit 3;
  --找出第一名同学
  select * from stu order by score desc limit 0,1;

1.10 运算符
1.10.1 比较运算符
  运算符
  描述
  >
  大于
  >=
  大于等于
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-651484-1-1.html 上篇帖子: php 实现socket 通信 下篇帖子: php导出数据excel
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表