学习参考的资料
b站尚硅谷康师傅老师的视频,主要学习的是MySQL8
写此笔记的目的是为了记录自己学习的知识,也是督促自己每天认真学习。
Part1 SQL一些背景知识
DBMS(数据库管理系统)分类:
关系型数据库管理系统(RDBMS)
将数据结构归为二元关系(行、列)
非关系型数据库
Redis(key—value型):可用于内存缓存
MongoDB(文档型):可存XML、JSON
DB(数据库)一些概念:
1.数据表,类似于java的类,使用ORM思想
2.表与表之间的关系:E-R,实体集、属性、联系集
联系包括:一对一、一对多、多对多、自我引用
(ps:多对多关系时,必须创建一个连接表,将多对多关系划分为两个一对多关系)
Part2 启动和卸载数据库
启动数据库
法1:windows服务直接启动
法2:用cmd,输入 net start MySQL80启动(注意得先切换成管理员身份先,右击cmd 选择管理员身份运行)
相应的其他操作还有
登录用户操作
mysql -u root -P 3306 -h localhost -p
运行结果如下
卸载数据库
1.停止MySQL服务
2.软件的卸载(通过控制面板去卸载)
3.残余文件的清理
4.清理注册表
5.删除环境变量的配置
part3 基本的sql语句
SQL分类
1.DDL(数据定义语言):CREATE、ALTER、DROP、RENAME、TRUNCATE
2.DML(数据操作语言):INSERT、DELETE、UPDATE、SELECT
3.DCL(数据控制语言):COMMIT、ROLLBACK、SAVEPOINT、GRANT、REVOKE
最基本的select操作
select是sql操作中使用很频繁的语句,后面会用很多章节去学习,现在先学最基础的结构
1.基础结构:SELECT(字段1、字段2)FROM 表名
2.列的别名:
将别名用双引号引起来
SELECT last_name "name" FROM employees;
效果:将last_name的列名改为name
3.去除重复行(关键字 distinct)
SELECT distinct department_id FROM employees;
4.空值参与运算
4.1空值为NULL
4.2NULL≠0
4.3当空值NULL参与运算时,结果一定也为空
解决这个问题,可使用流程控制函数
IFNULL(xxx,0):若不是null,则为xxx;若是null,则为0
5.着重号``
当表名与sql语句中的关键字一样时,用``吧它引起来
6.查询常数
直接用双引号引起常数即可
SELECT "尚硅谷",last_name FROM employees;
7.显示表结构
describe employees;
8.过滤数据
用于查询某些满足条件的数据,用关键字WHERE
8.1查询90号部门的员工信息
SELECT * FROM employees WHERE id="90";
8.2查询last_name为‘king’的员工信息
SELECT * FROM employees WHERE last_name = "King";