MySQL.docx
- 文档编号:25250654
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:19
- 大小:356.32KB
MySQL.docx
《MySQL.docx》由会员分享,可在线阅读,更多相关《MySQL.docx(19页珍藏版)》请在冰豆网上搜索。
MySQL
主讲教师:
传智.神龙教主
传智播客PHP学院发布
目录
1.1回顾重点4
1.2数据库简介4
1.3数据库的发展史5
1.3.1层次模型5
1.3.2网状模型6
1.3.3关系模型6
1.4Sql语句简介7
1.5连接数据库8
1.6退出数据库9
1.7数据库操作10
1.7.1创建数据库10
1.7.2查询数据库11
1.7.3显示数据库的创建语句11
1.7.4更改数据库11
1.7.5删除数据库12
1.7.6选择数据库12
1.8数据表的操作13
1.8.1几个概念13
1.8.2创建表13
1.8.3数据类型13
1.8.4例题:
创建一个简单的表15
1.8.5查看所有表15
1.8.6显示创建表的SQL语句15
1.8.7显示表结构16
1.8.8删除表16
1.8.9创建复杂的表17
1.9数据操作17
1.9.1插入数据(增)17
1.9.2修改数据(改)18
1.9.3删除数据(删)18
1.9.4查询数据(查)18
1.10运算符20
1.10.1比较运算符20
1.10.2逻辑运算符21
1.11聚合函数21
1.1回顾重点
1、elseif和elseif的区别
这两个结果都是一样的,elseif是多分支语句,elseif是if的嵌套语句
2、在一个循环N次for循环中,初始值执行几次?
条件判断几次?
增量执行几次?
初始值:
1次
条件:
N+1次
增量:
N次
3、访问全局变量用$GLOBALS
1.2数据库简介
数据库是存放数组的仓库,数据不是直接放到数据库中,数据库中放的是表,表中存放的是数据。
1.3数据库的发展史
❑萌芽阶段——文件系统
❑使用磁盘文件来存储数据
❑初级阶段——第一代数据库
❑出现了网状模型、层次模型的数据库
❑中级阶段——第二代数据库
❑关系型数据库和结构化查询语言
❑高级阶段——新一代数据库
❑“关系-对象”型数据库
1.3.1层次模型
层次模型是一种导航结构,
优点:
分类管理,如果查询同一类的数据是很方便的。
缺点:
如果查询很多不是同一类的数据,效率就很低了
层次结构可以造成数据无效,比如张经理管理了一个员工叫张三,李经理也管理了一个叫张三,我们无法区分张三是一个人还是两个人。
1.3.2网状模型
网状模型解决了层次模型数据无效的问题,但是没有解决导航问题
查询某个销售代表的发表是很方便的,但是查询10月份的发票效率就很低了。
1.3.3关系模型
关系模型中,每个表都是独立的,通过公共字段来建立关系。
优点:
表是独立的,需要什么数据就到那个表中查询。
缺点:
多表查询的时候效率低下。
关系:
两个表的公共字段叫关系。
1.4Sql语句简介
StructuredQueryLanguage,结构化查询语言,是用来操作关系型数据库的
常用的关系型数据库有:
Access
MySQL
Sqlserver
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:
\>cdF:
\wamp\bin\mysql\mysql5.5.8\bin
F:
\wamp\bin\mysql\mysql5.5.8\bin>mysql-hlocalhost-uroot-p-P3306
端口号是3306,可以省略端口号
mysql-uroot-hlocalhost-p
如果连接的是本地MySQL,数据库地址也是可以省略。
mysql-uroot-p
1.6退出数据库
1、exit
2、quit
3、\q
1.7数据库操作
数据库本质就是一个文件。
操作数据库的软件叫数据库管理系统。
1.7.1创建数据库
语法:
Createdatabase数据名[charset=字符编码]
Create:
创建
Database:
数据库
例题:
如果创建的数据库已经操作,会报错。
创建的时候判断一下,如果不存在就创建。
语法:
Createdatabaseifnotexists数据库名
如果创建的数据库名字是一个关键字,会怎么样?
解决:
在名字上加上反引号。
创建数据库的时候指定字符编码
1.7.2查询数据库
Showdatabases
1.7.3显示数据库的创建语句
Showcreatedatabase数据库名
1.7.4更改数据库
更改数据库的字符编码
alterdatabase数据库名[选项]
alter:
修改
1.7.5删除数据库
语法:
Dropdatabase数据库名
Drop:
删除
如果删除不存在的数据库,会报错
在删除数据库的时候,判断数据库是否存在,如果存在才删除
Dropdatabaseifexists数据库名
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创建表
语法:
Createtable表名(
字段1数据类型[null|notnull][default][auto_increment][primarykey],
字段2数据类型
…
)
notnull:
不为空
default:
默认值
auto_increment:
自动增长
primarykey:
主键
主键的特点:
不能重复,不能为空
一个表只能有一个主键,主键可以由多个字段一起组成。
1.8.3数据类型
int:
整型
decimal(总位数,小数位数)存小数decimal(3,1)
char(10):
定长
varchar(10):
可变长度
text:
大段文本
思考
QQ一般用什么类型?
varchar
手机号一般用什么类型?
char()
1.8.4例题:
创建一个简单的表
表名:
stu
字段名:
Stuidint,
Stunamevarchar(10)
1.8.5查看所有表
语法:
Showtables;
1.8.6显示创建表的SQL语句
语法:
Showcreatetable表名[\G]
\G:
表示table字段和createtable字段竖排。
1.8.7显示表结构
describe[desc]表名
describe:
描述
1.8.8删除表
Droptable表名
Droptable表1,表2,表3…
1.8.9创建复杂的表
1.9数据操作
1.9.1插入数据(增)
语法:
insertinto表名(字段名1,字段2)values(值1,值2);
练习
--插入数据
insertintostu(id,name,sex,`add`)values(1,'李白','男','北京');
insertintostu(id,name,sex,`add`,score)values(2,'杜甫','女','上海',99);
--插入字段可以和数据库中的字段的顺序不一致,但是值和插入字段的顺序必须相一致
insertintostu(name,id,`add`,score,sex)values('李小白',3,'北京',null,'男');
--插入字段是可以省略的,插入的值和数据表的字段顺序和个数都一致
insertintostuvalues(4,'白居易','男','北京',86);
--自动增长的插入
insertintostuvalues(null,'李清照','女','上海',77);
--默认值的插入
insertintostuvalues(null,'辛弃疾','男',default,68);
1.9.2修改数据(改)
语法:
Update表名set字段1=值1,字段2=值2where条件
练习
--把‘李白’的性别改成'女'
updatestusetsex='女'wherename='李白';
--思考,如下语句结果是什么?
updatestusetsex='女';
--将所有字段的sex都变成了‘女’
--将2号学生性别改成'男'
updatestusetsex='男'whereid=2;
--将3号的学生性别改成‘男’,地址改成‘天津’
updatestusetsex='男'whereid=2;
1.9.3删除数据(删)
语法:
Deletefrom表[where条件]
例题
--删除李白
deletefromstuwherename='李白';
--思考:
如下语句输出什么?
deletefromstu;--将stu表中的数据全部删除
--删除学生是6号的学生
deletefromstuwhereid=6;
1.9.4查询数据(查)
语法:
Select列名from表[where条件][orderby排序字段asc|desc][limit起始位置,获取的记录数]
由低到高排序:
升序asc
由高到低排序:
降序desc
默认是升序排列
Limit中的起始位置是从0开始的。
/**
查询
*/
--查询所有学生的姓名和性别
selectname,sexfromstu;
--查询所有学生的所有字段
selectid,name,sex,`add`,scorefromstu;
--通过*号来代替所有字段
select*fromstu;
--查询所有男生的信息
select*fromstuwheresex='男';
--查询上海的男生
select*fromstuwheresex='男'and`add`='上海';
--查询所有的女生和上海的男生
select*fromstuwheresex='女'or(sex='男'and`add`='上海');
--查询北京和上海的学生
select*fromstuwhere`add`='上海'or`add`='北京';
--查询成绩大于等于90分的学生
select*fromstuwherescore>=90;
--按成绩由高到底排列
select*fromstuorderbyscoredesc;
--女生按成绩有底到高排列
select*fromstuwhere`sex`='女'orderbyscoreasc;
/**
limit限制
*/
--取前3条数据
select*fromstulimit3;
select*fromstulimit0,3;
--从第一条开始[0是最上面一条],去3条
select*fromstulimit1,3;
--去白居易和李清照
select*fromstulimit3,2;
--找出前三名(按成绩反向排序)
select*fromstuorderbyscoredesclimit3;
--找出第一名同学
select*fromstuorderbyscoredesclimit0,1;
1.10运算符
1.10.1比较运算符
运算符
描述
>
大于
>=
大于等于
<
小于
<=
小于等于
=
等于
<>
不等于
1.10.2逻辑运算符
运算符
描述
and
与
or
或
not
非
1.11聚合函数
Sum():
求和
Avg():
求平均值
Max():
最大值
Min():
最小值
Count():
记录数
--求最高分
selectmax(score)fromstu;
--求最低分:
selectmin(score)fromstu;
--求和
selectsum(score)fromstu;
--求平均值
selectavg(score)fromstu;
--总人数
selectcount(*)fromstu;
--男生人数
selectcount(*)fromstuwheresex='男';
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL