Mysql的基础整理

Mysql的基础整理

这是我在上课得时候自己在听老师讲课时,自己记下的笔记,以及整理的知识
新建mysql表的基本格式:
表的编码

--所有东西放在括号里面
CREATE TABLE Student(
--设置自增,不为空
ID INT(10) AUTO_INCREMENT NOT NULL,
Student_NAME VARCHAR(20) not null,
sex  VARCHAR(4),
birth  YEAR,
departemt  VARCHAR(40)  NOT NULL,
Address  VARCHAR(50),
--设置主键
primary key (id)
);
修改

–alter table关键字+表名 +想要实现的语句

alter table Student convert to character set utf8;

新增表数据

--单个插入
--INSERT INTO关键字+表名+(所要插入的列头名称)
--values关键字+(所要插入的列头名称)
INSERT INTO student ( id,student_name,sex,birth,departemt,address )
VALUES (910,'张', '男',1995,'计算机系', '广州市zc区')

--多个插入,需要插入的值用','分开。切记我就整天忘记?
INSERT INTO student ( id,student_name,sex,birth,departemt,address )
 VALUES (901,'张老大', '男',1985,'计算机系', '北京市海淀区'),
(902,'张老二', '男',1986,'中文系', '北京市昌平区'),
(903,'张三', '女',1990,'中文系', '湖南省永州市'),
(904,'李四', '男',1990,'英语系', '辽宁省阜新市'),
(905,'王五', '女',1991,'英语系', '福建省厦门市'),
(906,'王六', '男',1988,'计算机系', '湖南省衡阳市');

修改表数据

--update关键字+表名
--set关键字+需要修改的列名
--配合where +条件
UPDATE score 
set grade=68
WHERE stu_id=906 and c_name='英语'

查询数据表

where和select是经常一起使用的尤其在查询的时候十分需要,where后面加条件即可筛选数据。

--select关键字
--from+表名
--配合where +条件
select *
FROM student
WHERE departemt='计算机系'or departemt='英语系' 

like关键字的用法:% _ 必须在后面加’1%’

–模糊查询所使用的格式比如查询姓王的人 王%,
–查询有三的名的人 %三 ----> %是不看字符数的
–如果需要看字符数得使用_这个来进行查询,比如我想查姓王但是名只有一个字的人王明,那就是这样王_

select student_name
from student_a
where student_name LIKE '张%'
-- where student_name LIKE '张_'

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

SELECT *
FROM student
-- 降序
ORDER BY birth DESC, ID desc

GROUP BY

对某些数据进行聚合,也可以叫分组,把多个数据按照你需要的条件来进行分类

select sex,COUNT(sex)
FROM student_a
GROUP BY sex

mysql的连接

这个图是在菜鸟教程拉来的,方便看集合的关系,非常有用,表和表的连接一般配套和逻辑的用法十分灵活。
在这里插入图片描述
连接分为:INNER JOIN,LEFT JOIN ,RIGHT JOIN
INNER JOIN:返回两个表的交集

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
INNER JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count;

在这里插入图片描述
LEFT JOIN:
关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;

在这里插入图片描述
RIGHT JOIN :这个和左连接是大同小异,知识方向不一样而已

SELECT Websites.name, access_log.count, access_log.date
FROM access_log
RIGHT JOIN Websites
ON access_log.site_id=Websites.id
ORDER BY access_log.count DESC;

在这里插入图片描述

好了到这里就结束了,这只是mysql的基础,后面还得多练习多查询,这样才能更深理解,也能更加灵活使用,有兴趣可以来http://embracechw.top/ 我的网站来看看练习题,共同进步,本人也是刚学的。

发布了15 篇原创文章 · 获赞 1 · 访问量 209

猜你喜欢

转载自blog.csdn.net/weixin_46061710/article/details/104761890
今日推荐