MySql最最最最基础的通俗易懂的知识,数据库简介及常见的数据库
2021-03-12 本文已影响0人
嘤嘤嘤999
目录
*简单来说呢就是存储数据库的一个仓库,可以存储图片,视频,文字... 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
8.1创建数据库student:(创建一个表名为'student'的数据库)
9.3全连接 full join = left join + union + right join
—————————————————————————————————————————
版权声明:本文为CSDN博主「HelloGuoYing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HelloGuoYing/article/details/114687017
一、Mysql简介:
MySQL是一种开放源代码的关系型数据库管理系统。
1.MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。
2.MySQL使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
3.MySQL是开放源代码的,任何人都可以下载并根据个性化的需要对其进行修改。
4.MySQL因为其速度、可靠性和适应性而备受关注,MySQL是管理内容最好的选择。
*简单来说呢就是存储数据库的一个仓库,可以存储图片,视频,文字... 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
二、常见的数据库类型:
大型:oracle,db2
中型:mysql,sqlserver...
小型:sqlite
三、mysql安装和卸载
MySQL官网下载地址:https://www.mysql.com/downloads/
MySQL安装教程:https://www.cnblogs.com/winton-nfs/p/11524007.html
常见指令:
①安装服务:mysqld --install
②初始化: mysqld --initialize --console
③开启服务:net start mysql
④关闭服务:net stop mysql
⑤登录mysql:mysql -u root -p
Enter PassWord:(密码)
⑥修改密码:alter user 'root'@'localhost' identified by 'root';(by 接着的是密码)
⑦标记删除mysql服务:sc delete mysql
删除对应的文件夹
删除注册表(mysql)
四、MySQL的使用
1:黑窗口cmd
2:使用工具 navicat(下载地址:http://www.navicat.com.cn/)等等...,
工具很多自行选择自己喜欢用的,顺手就行,怎么方便怎么来啦~
五、SQL语句分类
数据定义语言DDL create(创建),drop(删除),alter(修改),truncate(清空表,截断表)
数据查询语言DQL select(查询)
数据操纵语言DML insert(插入),delete(删除),update(修改)
数据控制功能DCL grant (授权), revoke(回收)
六、常用字段
主键:primary key
自增:auto_increment
空:null
默认:default
唯一:unique
外键:foreign
七、常见类型
int
float
double
char 固定长度
varchar 长度变
text
date
time
datetime
八、 简单的数据库语句
8.1创建数据库student:(创建一个表名为'student'的数据库)
create DATABASE student
8.2使用数据库:
use student
8.3创建表:
create table student(
id int PRIMARY key auto_increment,
sname VARCHAR(20),
sex VARCHAR(2),
age int,
score FLOAT(4,2)
)
8.4修改编码:
alter database student CHARSET=utf8
8.5新增数据;单条添加:
INSERT into student(id,sname,sex,age,score) VALUES(1,"大哥1","男",24,99.5)
8.6新增数据;多条添加:
INSERT into student VALUES(2,"大哥2","男",25,90.5),(3,"大哥3","女",22,89),(4,"大哥4","女",22,99)
8.7修改数据:
修改数据格式例如:update 表名 set 字段=修改的数据 where 字段=值
UPDATE student set sname='大哥大' where id=2
8.8查询—全查:
select * from +表名
select * from student
8.9条件查询:
select * from student where id=1 or id =2 (id为1或2)
select * from student where id in(1,2,3,4) (id为1,2,3,4)
select * from student where id BETWEEN 1 AND 4 (id在1和4之间‘包括1和4’)
8.10模糊查询:
SELECT * from student where sname like '大%' like'大%' :将搜索以‘大‘开头的所有字符串(如 大哥)
SELECT * from student where sname like '%哥' like'%哥' :将搜索以‘哥‘ 结尾的所有字符串(如 大哥)
SELECT * from student where sname like '%哥%' like'%哥%' :将搜索包含'哥' 的所有字符串(如 大哥大)
8.11排序—升序:
select * from student ORDER BY score 升序:order by
8.12排序—降序:
select * from student ORDER BY score desc 降序:order by desc
8.13分组查询:
select count(*) from student GROUP BY sex HAVING sum(score)>=85 GROUP BY:以其中一个字段的值来分组
注意:
1、HAVING必须在GROUP BY后面,
2、使用了HAVING必须使用GROUP BY,但是使用GROUP BY不一定使用HAVING!
3、GROUP BY必须得配合聚合函数来用,分组之后
常用聚合函数:
count() AS 计数
sum() AS 求和
avg() AS 平均数
max() AS 最大值
min() AS 最小值
4、如果有where限制条件语句
where在前,GROUP BY在后,注意GROUP BY紧跟在where最后一个限制条件后面,不能被夹在where限制条件之间。
where在前,GROUP BY在后的原因:要先用where过滤掉不进行分组的数据,然后在对剩下满足条件的数据进行分组。
完整例子如下:
https://www.cnblogs.com/mark5/p/11115750.html
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
九、多表联查
内连接 inner join..on
外连接 left join..on ,right join..on
全连接 full join (不适用mysql,适用oracle) = left join + union + right join
9.1内连接
*给表取名字时as可以写!也可以省略
select * from 表1 as 表1名称 inner join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段
举例如下:
select * from student as sss inner join class as ccc on sss.id = ccc.id
select * from student sss inner join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同)
9.2外连接
1、左连接:
select * from 表1 as 表1名称 left join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段
select * from student as sss left join class as ccc on sss.id = ccc.id (左边为主表,右边有则填充,没有用null)
select * from student sss left join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同)
2、右连接:
select * from 表1 as 表1名称 right join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段
select * from student as sss right join class as ccc on sss.id = ccc.id(右边为主表,左边有则填充,没有用null)
select * from student sss right join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同)
9.3全连接 full join = left join + union + right join
1、select * from 表1 as 表1名称 full join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段
2、select * from 表1 as 表1名称 left join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段 UNION select * from 表1 as 表1名称 right join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段
select * from student as sss full join class as ccc on sss.id = ccc.id
select * from student sss full join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同)
select * from student as sss left join class as ccc on sss.id = ccc.id UNION select * from student as sss right join class as ccc on sss.id = ccc.id
select * from student sss left join class ccc on sss.id = ccc.id UNION select * from student sss right join class ccc on sss.id = ccc.id(as可以省略!!!!和上一行内容相同)
9.4三表联查
select * from 表1 as 表1名称 inner join 表2 as 表2名称 on 表1名称.字段 = 表2名称.字段 inner join 表3 as 表3名称 on 表1名称.字段 = 表3名称.字段
举例如下:
select * from student as sss inner join class as ccc on sss.id = ccc.id inner join school as sc on sss.id = sc.id
select * from student sss inner join class ccc on sss.id = ccc.id inner join school sc on sss.id = sc.id(as可以省略!!!!和上一行内容相同)
9.5子查询:一个表的查询的结果作为另一个表的条件
举例如下:
SELECT city from school where school ='北京'
SELECT classroom from class where city=(SELECT city from school where school ='北京')
@希望能帮到大家!~有什么疑问可以评论或私信我,喜欢就多多支持我8