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/ 我的网站来看看练习题,共同进步,本人也是刚学的。