1、首先我们得知道数据库是干什么的?它有那些数据库,当前我们需要掌握那些?掌握到什么程度?这些都很重要,话不多说,来一起学习!
(1)数据库一听我们就知道它是用来存储数据的,它可以存储结构化数据和半结构化数据。日常我们接触最多的也就是MYSQL,ORACLE,POSTGRESQL,MONGGODB,也就这些吧!,其他的都遇到不多。也就不浪费时间了。
(2)其实数据库来说大体都差不多,只要你会一种,那么其他的就方便多了。以前我总觉得数据库不重要,后来才知道数据库基本是程序员的必备技术之一。
(3)下载安装我就不多了吧。直接上代码。当你有了数据库以后,那么你第一步是不是就得创建一个来用一用。
这里我们来创建一个叫做school的数据库。`
create database school;
这里的school就是你的数据库。创建好了以后,是不是我们得用它。
use school;
然后我们就在数据库里自由的创建我们的表啦。
这里我们创键一个叫学生的表。
create table `student`
(
student_id int not null auto_increment,
student_name varchar(20) not null,
primary key(`student_id`)
)engine = InnoDB auto_increment = 9 default charset=utf8;
创建好之后我们得插入数据。
insert into student (student_name) values ('张三');
接下来如果我想更改其中的值怎么办呢?
比如我想把张三改为李四。怎么办?
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
update student set student_name = 张三 where student_name= 李四;
如果我想把这行删除呢?
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM student where student_name = "张三";
这样张三就能删除了。
结果:当然这就也是最基本的增删改查。
我们来试一下数据库的查询。
(1)查询数据表
select * from student;
(2)查询某条语句
select student_name from student;
(3)高级一点的查询
1、内连接
我们先创建两个表,那么这两个表呢有一定的关系。我再创建一个老师表:teacher
然后我查老师都有那些学生,学生有哪些老师,但是由于是新学期,有的学生没有分配老师,有的老师没有分配到学生。
那么我在查讯的时候,如果我想的是能够自动过滤没有学生的和没有老师的,那么就是有内连接查询。
select
s.student_name,t.teacher_name
from student s
INNER JOIN teacher t
ON s.stdent_id = t.teacher_name;
这里的s.stdent_id = t.teacher_name就是关联查询的条件。
(2)左外连接查询
这里如果 student 和 teacher 是这样的,那么
SELECT s.student_name,t.teacher_name
from student s
LEFT OUTER JOIN teacher t
on s.stdent_id = t.teacher_name;
在这里是以student为基准表来查询的,所以叫左关联查询,
(3)右关联查询
SELECT s.student_name,t.teacher_name
from student s
right OUTER JOIN teacher t
on s.stdent_id = t.teacher_name;
只要你会左关联查询就行了。
(4)自连接查询
自连接查询就是当前表与自身的连接查询,关键点在于虚拟化出一张表给一个其他的名字。这个表是你虚化的,比如现在我随便虚化出一张表。b,
SELECT s.student_name,b.student_name
from student s
LEFT OUTER JOIN student b
on s.stdent_id = b.student_name;