一、数据库操作1、创建数据库
create datebase 数据库名
2、选择数据库
在创建好了数据库之后要记得选择数据库,不然在新建查询的时候会出现问题。
use 数据库名
3、删除数据库
drop 数据库名
二、数据表
students表
teacher表
1、创建数据表
主键是id
create table teacher(
id int PRIMARY key auto_increment,
name varchar(20),
class int not null
)
2、删除数据表
drop table 数据表名
3、往数据库增加数据(增)
这里要注意,就是如果默认就全部的数据都添加的话,students后面的(id,name,class,score) 就可以不需要,但是如果只有添加一部分数据,比如只想添加id和name,其他为空的话,就必须在students后面加上(id,name)
INSERT into students(id,name,class,score) values
(2,"李四",2,344),
(3,"王五",2,244),
(4,"李四",2,325);
4、删除数据(删)
DELETE from students where id=4
5、查找数据(查)
#查找数据表里面所有的数据
select * from students
SELECT name from students where grade=(SELECT max(grade) from students)
6、修改数据(改)
update students set teacher="陈老师" where id=1
update students set teacher="李老师" where id=2
update students set teacher="小布老师" where id=3
三、查询
1、where
后面为条件
update students set class=4 where id=4;
SELECT name from teacher
where class = (SELECT class from students where name="张三")
2、order by(排序)
#desc表示降序,去掉出现的是升序的效果
SELECT * from students order by grade,class desc
3、group by (分组)
根据一个或者多个列对结果集进行分组
在分组上,我们可以使用count、sum、AVG等函数(建议自己百度group by进行详细学习,分组后数据的组合)
组合到一起的数据求总和
select name,sum(grade) from students GROUP BY class
4、JOIN
两个表格的字段
INNER JOIN ,内连接:获取两个表中字段匹配的关系记录
LEFT JOIN:左连接,获取左表中的全部数据,根据左表的数据与右表进行配对
RIGHT JOIN :又连接,获取右表的全部暑假,根据右表的数据与左表进行配对
举例:
下面两个表tb1,和tb2
INNER JOIN :
两边都配对的数据选择出来
SELECT * from tb1 INNER JOIN tb2 on tb1.id=tb2.id
LEFT JOIN :
SELECT * from tb1 left JOIN tb2 on tb1.id=tb2.id
按照左表的id进行排列,把左表的都选择出来,右表没有适合的配对就默认空值
RIGHT JOIN:
SELECT * from tb1 right JOIN tb2 on tb1.id=tb2.id
右边的全部显示出来,左边多余的部分就不选择出来
四、字段操作
五、函数数值:
ABS(数值):绝对值
MOD(被除数,除数):求余
ROUND(数值,保留的小数位数):四舍五入
字符串:
字符串1||字符串2:拼接
LENGTH(字符串):字符串长度
LOWER(字符串):小写转换
UPPER(字符串):大写转换
REPLACE(字符串,替换前字符串,替换后字符串)
SUBSTRING(字符串 from 截取的起始位置 for 截取的字符数):字符串的截取
日期函数:
CURRENT_DATE:当前日期
CURRENT_TIMESTAMP:当前日期和时间
六、谓词
LIKE、BETWEEN、IS NULL 、IS NOT NULL、IN
1、LIKE——字符串的部分一致查询
可分为前方一致、中间一致和后方一致三种类型
#后方包含有ddd的字符串
select * from tb1
where str1 like '%ddd'
#前方包含有ddd的字符串
select * from tb1
where str1 like 'ddd%'
#中间包含有ddd的字符串
select * from tb1
where str1 like '%ddd%'
2、BETWEEN——范围查询
select * from tb1 where hai between 100 and 1000
3、IS NULL /IS NOT NULL ——判断是否为NULL
select * from tb1 where hai is null
4、IN、NOT IN
select * from tb1 where hai IN(320,500,5000)
七、表的加法
1、UNION(并集)
将 表上下进行连接
下面为tb1
下面为tb2
将两个表进行并集,就会得到下面的结果,但是重复的部分会被消除掉,不会显示出来
SELECT id,name from tb1
union
SELECT id,name from tb2
如果想要重复的部分也显示出来的话,可以加上ALL
SELECT id,name from tb1
union ALL
SELECT id,name from tb2