mysql的基本语法

第一单元、SQL关键字,聚合函数
一、SQL关键字
Navicat是一个本地的客户端软件,用来操作mysql数据库
前提:
库、表名、字段名如果为关键字需要加`` desc
字段名===列名
1.1、增加
(1)增加一条数据
insert into 表名(字段名,字段名,字段名) values(‘值’,’值’,’值’)
(2)增加多条数据
insert into 表名(字段名,字段名,字段名) values(‘值’,’值’,’值’),(‘值’,’值’,’值’)
1.2、删除
语法
delete from 表名 where 条件;
注意:where条件
1.3、修改
语法结构
Update 表名 set 字段名=’新值’,字段名=’新值’ where 条件
注意:where条件
1.4、查询
语法结构
select 字段列表 from 表名 where 条件 order by 排序字段 升序/降序 limit 开始位置,条数
字段列表
字段1,字段2,字段3,字段4
查询所有字段时可以使用*代替
例如:查询user表,性别,grade成绩的数据信息
select sex,grade from user;显示的数据只有性别成绩数据
Where
运算符

< >= <= !=
例如:查询user表中年龄>17岁的SQL
Select age from user where age>17;
and 并且
例如:查询user表中姓名是小明并且年龄!=16
Select age from user where uname=‘小明’ and age!=16;
or或者
特殊情况 一个字段等于两个值 一定用or 例如年龄为17和25
例如:查询user表中姓名是小明或者性别是男的
Select age from user where uname=‘小明’ or sex=‘男’;
Between and 在**之间
语法: 字段 between 值 and 值
等同于 字段>=值 and 字段<=值
例如:查询年龄为18-22的信息
select * from user where age between 18 and 22
select * from user where age>=18 and age<=22

模糊查询 like
_ 匹配任意一位 %匹配多位 %通配符
语法: 字段 like ‘%值%’
例如:查询user表用户名包含小的信息
Select * from user where uname like ‘%小%’;
批量操作 in
语法: 字段 in (值1,值2,值3) 等同于 字段=值1 or字段=值2 or 字段=值3
例如:查询user表id是1,2,3的信息
select * from user where id in(1,2,3);
例如:删除user表id是1,2,3的信息
delete from user where id in(1,2,3);
order by排序
语法: order by 字段 升序asc/降序desc
升序 asc 默认(由小到大)
降序 desc(由大到小)
例如:user表根据id降序排序(显示的时候id是按照由大到小)
Select * from user order by id desc;
多列排序
需求是:查询user表, 按照年龄倒序,成绩倒序排序
注意:①如果第一列排序有相等的内容,则按照第二个排序条件进行排序 ②如果第一列排序中没有相等的内容,则第一列优先级大于第二列的优先级,按照第一列排序规则显示效果

#排序 order by asc 升序 desc降序
select * from user order by age desc,grade asc;
注意:表名后面一定不要加where
limit
语法:limit 开始位置,条数,开始位置可省略,如果省略默认从0开始
例如:查询user表中成绩>=10的信息限制记录条数3;
select * from user where grade>=10 limit 3;
二、聚合函数
语法 聚合函数(字段)
count条数
例如:查询用户表中总条数 并且给查询到总条数起别名叫做num
select count(id) as num from user;
sum和
例如:求赵四同学的成绩总和
select sum(grade) as grade_sum from user where username=‘赵四’;
min最小值
例如:求赵四同学的成绩最小值
select min(grade) as grade_min from user where username=‘赵四’;
max最大值
例如:求赵四同学的成绩最大值
select max(grade) as grade_max from user where username=‘赵四’;
avg平均值
例如:求赵四同学的成绩的平均值
select avg(grade) as grade_avg from user where username=‘赵四’;
三、表关系,两表SQL,关联查询
1.表关系
(1)一对一
(2)一对多
需要将班级表(一表的id)放到学生表中,作为关联字段
例如:一个班级下可以有多个学生
一个学生只属于一个班级
所以班级 学生为1对多关系
1对多关系 需要建立两张表
学生表student(多) 班级表class(一)

多的表student中放一个 1的表的id
如果查询结果或条件涉及到两张表的数据需要关联查询
(3)多对多
例如: 一个讲师可以带多门课程
一个课程也可以被多个讲师带
所以讲师、课程为1对多关系
2、两表联查SQL
select * from 表1 inner join 表2 on 表1.字段=表2.字段;
Inner join表示连接 inner可以省略
On表示筛选
学生表和班级表为例 sql语句
Slect * from class join student on class.cid=student.cid;
3、关联查询(1对多表关系查询)
(1)关联查询原理
交叉连接 – 笛卡尔乘积
sql语句:

查询结果:

(2)内连接 [inner] join
sql语句加上筛选 on:

sql语句加上筛选on的查询结果:

(3)外连接
左外连接 left join
以left join左边的表为主表,主表信息全部查询,
去从表(右边的表)中匹配,查询到 显示数据,查询不到显示null。
sql语句:

查询结果:

				右外连接 right join

以right join右边的表为主表,主表信息全部查询,
去从表(左边的表)中匹配,查询到 显示数据,查询不到显示null
四、会话控制
2.1、cookie的使用
(1)创建cookie
setcookie(‘名’,’值’) //会话(临时cookie)cookie
setcookie(‘名’,’值’,过期时间);//持久cookie
过期时间要从当前时间+你想设置的秒数
(2)取出cookie
$_COOKIE[‘名’];
(3)销毁cookie
setcookie(‘名’,’’,time()-秒数)
只要是从当前时间time()-任意秒数 表示当前时间之前,已经过去
2.2、Session的使用
开启session
session_start()
或 php.ini中 session.auto_start = 0把0改为1
注意:修改配置文件session全部开启了
(1)设置session
$_SESSION[‘名’]=值;
(2)取session中的值
S E S S I O N [ ‘ 名 字 ’ ] ; ( 3 ) 删 除 s e s s i o n u n s e t ( _SESSION[‘名字’]; (3)删除session unset( SESSION[];(3)sessionunset(_SESSION[‘名’])

后续会讲session,cookie的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值