![f25f90781b73177b486e9c34120fd129.png](https://i-blog.csdnimg.cn/blog_migrate/f6a9b6525f8922cae41826b3cb853346.jpeg)
1. 基础知识点
数据库:按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
关系型数据库:采用关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,多张表+各表之间的关系。
表的结构:表名、行和列
主键:标识数据唯一性
联结(join):即关系,数据能够对应匹配。
常用关系数据库管理系统:mysql、oracle、sql server
SQL分类:
![208003bbc85ee2f599babb0cd4fb4f33.png](https://i-blog.csdnimg.cn/blog_migrate/ff3d3327defe3e4fd1426ce9d7a9e5f9.jpeg)
2.mysql数据库和客户端navicat的安装
2.1 验证mysql数据库安装成功
输入mysql -uroot -p,并输入安装时设置好的密码,如出现如下界面则说明mysql数据库安装成功。
![fe8f0994a23e9873421bcfd8f2bdb1c4.png](https://i-blog.csdnimg.cn/blog_migrate/6f5c7ac2ef9bb109ed925ac2411919b5.png)
2.2 用客户端navicat连接到mysql数据库
打开安装好的客户端navicat,点击左上角的连接,连接mysql,在弹出窗口中输入连接名和密码,进行连接测试,如果出现“连接成功”,则说明相关属性设置正确,最后点击窗口右下角的“确定”即可连接到mysql数据库了。
![48d9c0b19036cb14748337f4cbc0f14b.png](https://i-blog.csdnimg.cn/blog_migrate/03024ae246e3d60cac1aa231d494318c.png)
![f37bab7b73e0e6b9f599315fe1c65140.png](https://i-blog.csdnimg.cn/blog_migrate/485fcd37c4ebfab532d28165eed5717b.png)
3.创建数据表
student(学生表):
![cf6e68907dcedb745fb2b8c440c20123.png](https://i-blog.csdnimg.cn/blog_migrate/7a4a10a5f6367551e70bda4c4ed3b338.png)
注:将学生表中的“学号”设置为主键,“出生日期”字段类型为【date】日期类型
也可以使用sql语句实现:
![db90c255704106e2c1f50547b7cd193b.png](https://i-blog.csdnimg.cn/blog_migrate/e094a3e351154561272dca30733b16bc.png)
score(成绩表):
![76005619e56d2e972b06c69b7ef7d5cb.png](https://i-blog.csdnimg.cn/blog_migrate/cc670a1c2bd0d7558aa777f8eb238731.png)
注:将成绩表中的“学号”和“课程号”一起设置为主键,即联合主键,“成绩”数据类型为【float】数值,浮点型
course(课程表):
![91a4720a81818696584c372aaafb6a77.png](https://i-blog.csdnimg.cn/blog_migrate/c162e8f9706f83b3b82bb4da0d59ce0a.png)
注:将课程表中“课程号”和“教师号”一起设置为主键,即联合主键
teacher(教师表):
![bbe45671f74f58c532c2b645f7b1767c.png](https://i-blog.csdnimg.cn/blog_migrate/99e9e86337b32cd9b84828e44968696c.png)
注:将教师表中“教师号”设置为主键,“教师姓名”为“null”值,即允许教师姓名包含空值
4.插入数据
可以通过客户端可视化界面一个个插入,但数据过多时,这种方法比较繁琐,通常通过sql语句批量一次性插入多条数据。
insert into <表名>(<列名1>,<列名2>,…) values(<值1>,<值2>,…)
向学生表插入多行数据:
![3f5a1701e058073db8d32a079591b81f.png](https://i-blog.csdnimg.cn/blog_migrate/236077a977f2f5a5d0ae8ec6ad5d35fc.png)
向成绩表插入多行数据:
![7749457c9398162d8316495e9d2b3770.png](https://i-blog.csdnimg.cn/blog_migrate/272d35dfa4ca8ed7f14b3763a0fbb3c8.jpeg)
向课程表插入多行数据:
![f349ad6b3beeff0710dbb3393ecb74b9.png](https://i-blog.csdnimg.cn/blog_migrate/ba752a5817acbc69d6429db955f51d84.png)
向教师表插入多行数据:
![66d29393ce7fb6f2fbd5147f90cb329b.png](https://i-blog.csdnimg.cn/blog_migrate/0997f05478e7b0d4f7cffd072514d343.jpeg)
注:“教师姓名”为NULL,表示此处为空值,没有数据,无法进行操作也不能进行计算;“教师姓名”为‘’,表示此处为空字符串数据,可以参与计算。
注意:
1)SQL语句以英文分号“;”结尾;
2)SQL语句不区分关键字的大小写;
3)输入符号的时候只能使用英文状态下的。