mysql数据库(前段要理解的几个重点)
mysql数据库
比如说:用户信息,订单信息,交易流水,收货地址,商品信息这些都是数据。之前都是存Excel中。后端程序想要操作Excel中的数据是非常困难的,而且Excel中的数据特别多的时候,打开会特别慢。
一些常见的数据库
oracle 大型的数据库,安全,存储效率高。 收费。
MySQL 开源,免费。 支持多种开发语言 php,Python java
SQL server
下载
1.官网下载
https://www.mysql.com/downloads/
2.集成环境
phpstudy
https://www.xp.cn/
概念
连接:连接哪一台电脑上的数据库。
数据库:存放数据库的类似文件夹样的结构
每一个库由多个表组成。
表:一个文件。
由字段和记录组成
图形化工具的使用
1.打开phpstudy,启动MySQL。
2.再打开图形化工具,navcat。
3.点击连接,选择mysql。
4.输入连接名,(建议:与主机名保持一致即可。)和密码(密码如果忘了,可以去phpstudy中修改密码。)
命令行的使用
1.找到phpstudy安装的mysqlbin目录
2.phpstudy设置中文件位置mysql
3.进入mysql的bin目录下,按下shift键+右键,在此处打开命令行。
#进入mysql
mysql -u root -p
#查看所有的数据库
show databases;
#创建数据库
create database 数据库名;
#修改数据库的编码格式
alter database 数据库名 default character set ‘gb2312’;
#删除数据库
DROP database 数据库名
创建表
create table 表名(
字段名 类型(int,varchar,date)[not null][comment '注释信息'],
....
)
##查看所有的表
show tables;
【注意】在创建表或者其他操作之前需要选中数据库。
use 数据库名;
查看表的字段信息
desc 表名;
修改表名
alter table 表名 rename 新表名;
删除表
drop table 表名;
记录的操作
增(insert)
insert into 表名(字段1,字段2...) values (值1,值2);
insert into 表名 values(值1,值2);
insert into 表名 values(值1,值2),(值1,值2);
区别:
第一种写法是需要给哪些字段赋值,就写哪些字段
第二种写法默认是给所有字段赋值。
删(delete)
#删除表中所有记录
delete from 表名;
#删除id为5的记录
delete from 表名 where id = 5;
#删除id大于2的记录
delete from 表名 where id > 2;
#删除字段中包含某个字符的记录
delete from 表名 where 字段名 like '%字符%'
改(update)
update 表名 set 字段 = '新值' where 条件判断;
#修改id为3的classinfo表中 teacher字段的值为 张**;
update classinfo set teacher = '张贵某' where id = 3;
#修改多条字段的值
update classinfo set teacher = '张贵某',className = 'html' where id = 3;
查(select)
单表查询
#查询所有字段,所有记录 * 表示所有字段,没有条件查询,表示查询所有记录
select * from 表名;
#查询某些字段
select 字段1,字段2 from 表名;
条件查询
where语句
#等于查询(classinfo这个表示表名)
select * from classinfo where id = 1;
#大于小于查询
select * from classinfo where id > 3;
#模糊查询(teacher这个是你要查询的字段名)
select * from classinfo where teacher like '张%';
and 与
#左右两边的条件都符合的记录才会被匹配。
select * from classinfo where className like '%入门%' and teacher = '老张'
or 或
#左右两边的条件只要符合一个,就会被匹配。
select * from classinfo where className like '%入门%' or teacher like '%贵%'
in
# where子句中可以规定多个值,记录中的字段的值只要在多个值中就会匹配。
# in前面的字段的值,只要和小括号中的任意一个相等,就会匹配。
select * from classinfo where id in(1,2,3);
高级查询
#查询记录的数量
select count(*) from 表名;
#查询符合条件的记录的数量
select count(*) from 表名 where 条件判断;
#查询符合条件的记录的和
select sum(字段) from 表名 where 条件判断;
#最大值
select max(classFee) from classinfo where 条件判断;
#最小值
select min(classFee) from classinfo where 条件判断;
#分页 第一个参数表示:从哪开始查询,是一个下标。从0开始,第二个参数是查询多少条。
select * from classinfo limit 0,2;
多表查询
#多表查询 (以下的这一个代码可以叫两个表里的id是1的打印出来)
select * from 表1 as 别名1,表2 as 别名2 where 关联条件
select * from student s,classinfo c where s.id = 1 and s.classId = c.id;
#这个可以叫两个表里id相同的打印出来
select * from 表1 b,表2 z where 表1.id = 表2.casls;
#左连接
select * from student s left join classinfo c on s.classId = c.id;
#右连接
select * from student s right join classinfo c on s.classId = c.id;