MySQL数据库
发布日期:2021-06-29 02:56:35 浏览次数:4 分类:技术文章

本文共 3949 字,大约阅读时间需要 13 分钟。

这里写目录标题

MySQL数据库

MySQL是一个关系型数据库管理系统,是由瑞典的mysql AB公司开发,目前属于oracle。

特点

  • 开源
  • 支持大型数据库,可以处理千万级条的记录。
  • 使用标准的sql语言
  • 可以运行在多个系统上。

MySQL安装

官网下载

https://dev.mysql.com/downloads/mysql

phpstudy集成环境

下载地址:https://www.xp.cn

mysql中几个概念

仓库:

​ database 类似于文件柜。

每一个仓库由多个表(table)组成。 类似于一个文件。

每一个表由 表头(字段) 和 表体(记录)。

数据导入

表上面右键,在菜单中选择运行sql文件,选择要运行的sql文件。执行即可。

数据库操作

创建数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t0NN1vsZ-1614775586163)(F:\云梦山\代码\js\27\img\Snipaste_2021-03-03_09-35-39.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YyGiNyTM-1614775586165)(F:\云梦山\代码\js\27\img\image-20210303093650035.png)]

代码创建数据库

create database 数据库名;# 创建一个名为yunmeng的数据库create database yunmeng;# 指定数据库的字符集以及排序方式create database yunmeng DEFAULT CHARACTER set utf8 COLLATE utf8_general_ci;

查看所有的数据库

show databases;

修改数据库的编码格式

alter DATABASE 数据库名 DEFAULT CHARACTER set 编码格式;alter DATABASE yunmeng DEFAULT CHARACTER set utf8;

删除数据库

DROP DATABASE 数据库名;DROP DATABASE yunmeng;DROP DATABASE IF EXISTS 数据库名;

表操作

创建表

create table 表名(	字段1 类型1,	......	字段n 类型n);

【注】常见类型: int 整型,varchar 字符串 decimal小数 (涉及金额的用)

create table teacher(    id int(11) COMMENT '用户id',    name varchar(255))

查看所有的表

show TABLES

修改表名

alter table 原表名 rename 新表名;alter table teacher rename teacher2;

查看表的字段信息

desc 表名;desc student;

修改字段名

alter TABLE 表名 change 原字段名 新字段名 新字段名类型alter TABLE teacher2 change age name VARCHAR(20)

修改字段名的类型

alter TABLE teacher2 MODIFY name varchar(50)

添加字段

alter TABLE 表名 add 字段名 字段类型; first添加到第一行。after 字段名:插入到该字段后。alter TABLE teacher2 add age varchar(10) first;

删除字段

ALTER TABLE `teacher2` DROP COLUMN `age`;

删除表

drop table 表名;drop table student;

数据的操作

添加数据

insert into 表名 values (数据) 数据要与建好的表一一对应

INSERT INTO hero(id,name,age) VALUES(1,'张三',20);INSERT INTO hero VALUES(2,'liqing',30);INSERT INTO hero set id = 3,name = 'nuoke',age = '40'INSERT INTO hero VALUES(4,'v',26),(5,'ironman',80)

修改数据

如果没有where条件,则会更改表中所有的记录

# 批量更新UPDATE hero SET age = 20#根据 where后的条件,修改符合条件的数据。UPDATE hero SET age = 20 WHERE id = 1;

删除数据

直接将表中所有的数据删除

DELETE FROM 表名;

条件删除 根据where语句后的条件,将满足条件的数据删除。

DELETE FROM hero WHERE id < 3;

## 查询数据```sql#查询全部记录,全部字段。select * from student#查询指定字段select name,score from student# between and 范围查询select name,score from student WHERE score BETWEEN 80 AND 90# 查询指定字段为null值的记录SELECT * FROM student WHERE score is null# 查询指定字段不为null值的记录SELECT * FROM student WHERE score  is not null# DISTINCT 关键字返回不重复的值。重复值会过滤掉。SELECT DISTINCT name FROM hero # 模糊查询 %  匹配任意个字符(包含0个到多个)# 模糊查询 _  匹配一个字符   SELECT * FROM student WHERE name like '杨%'

条件查询

where 后的条件判断。

= < <= > >=
SELECT * FROM student WHERE score >=80

and or

and两边的条件必须都成立,才返回该记录。SELECT * FROM student WHERE score >=80 AND gender = '女' OR 两边的条件只要有一个成立,则返回该记录SELECT * FROM student WHERE score >=80 OR gender = '女'

IN

在where子句中可以规定多个值。SELECT * FROM student WHERE score in(79,89,99)

高级查询

聚合函数

count()

# 返回查询结果的记录数。SELECT count(*) FROM student WHERE score in(79,89,99)

sum()

# 对返回结果中的指定字段进行求和SELECT sum(score) FROM student WHERE score  = 79

avg()

# 对指定的字段进行求平均数SELECT avg(score) FROM student

max()

# 求指定值的最大值SELECT max(score) FROM student

min()

# 求指定值的最小值SELECT min(score) FROM student

查询最大值

select * from student where score = (select max(score) from student)

排序

SELECT * FROM student ORDER BY score DESC

【注】asc 默认 递增 desc 递减

分组查询

# group by 按照指定字段分组,一般配合聚合函数使用。SELECT count(*),score FROM student GROUP BY score
#having 关键字 是对分组查询后的结果进行条件查询。SELECT count(*) ,score FROM student GROUP BY score HAVING count(*)>20

分页查询 limit

SELECT * from student LIMIT 查询开始的位置,本次查询的条数SELECT * from student LIMIT 10,10#limit后的参数为本次查询的条数SELECT * from student LIMIT 10# limit关键字可以配合order by使用SELECT * from student ORDER BY score DESC LIMIT 0,20

函数

# 查询当前时间select now() from student#字符串拼接select concat(id,'+',name,'+',score) from  student

别名(可以省略as,这不是必须,而是规范)

# 为表添加别名,as关键字可以省略select s.* FROM student as s WHERE s.name = '孙九二'#为字段取别名select s.name as '姓名' FROM student as s WHERE s.name = '孙九二'

多表查询

左链接

SELECT * from student stu left JOIN class c ON stu.cid = c.id

以左边为大头,右边没有的值也会输出

复合条件查询

#可以将查询结果作为where后的查询条件判断。select * from student WHERE cid = (select id FROM class WHERE classname = '云梦山')

exists

# EXISTS 关键字 只返回true或者falseselect * from student WHERE EXISTS (select id from class WHERE classname = '云梦')

转载地址:https://blog.csdn.net/z18237613052/article/details/114334382 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:闭包,及闭包中this指向
下一篇:Swiper用法(轮播图系列)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月27日 18时40分05秒