前言:
数据库的笔记
文章目录
一、什么是数据库
- 数据库(DB,DataBase)
- 概念:数据库,又称为数据管理系统
- 作用:保存,并能安全管理数据(如:增删改查等),减少冗余
二、数据库的分类
2.1 关系型数据库(SQL)
- 有这些:MySQL、Oracle、Sql Sever、DB2、SQLlite,它们统称为SQL
- 通过表和表之间,行和列之间的关系进行数据的存储
- 用来存储类似静态(不怎么变化)的信息。
思考:怎么来存储你自己的定位信息?—>NoSQL
2.2 非关系型数据库(NoSQL)
- NoSQL?没数据库?(不是
- 其实是No Only,不仅仅是SQL
- 有这些:Redis、MongDB
- 非关系数据库:对象存储,通过对象的自身属性来决定的信息。
三、数据库管理系统
- 数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。(来自*)
- 这里我们学习MySQL,为什么选择它?
3.1、MySQL简介
为什么选择MySQL
- 1、它是开放源码的关系数据库管理系统
- 2、体积小、速度快、成本低,适合中小型网站
- 官网:https://www.mysql.com/cn/
- 这里用5.7版本(稳如老狗)
3.2、MySQL安装
这里不再赘述
四、数据库(SQL)的四大语言
4.1 DDL(数据定义语言)
数据定义语言:Data Definition Language
作用:用来定义数据库的对象,如数据表、视图、索引等
creat、drop、alter、truncate
4.2 DML(数据操纵语言)
数据操纵语言:Data Manipulation Language
作用:在数据库中数据进行插入、更新和删除等操作
insert、update、delete
4.3 DCL(数据控制语言)
数据控制语言:Data Control Language
作用:设置用户权限和控制事务语句
grant,if…else,while,begin transaction
4.4 DQL(数据查询语言)
数据查询语言:Data Query Language
作用:数据表记录的查询
由SELECT子句,FROM子句,WHERE子句组成的查询块
五、命令行连接数据库
以管理员身份打开cmd,cd /d /D:mysql:bin 切换到bin目录
mysqld -install 安装数据库服务
net start mysql --打开mysql服务
net stop mysql --关闭mysql服务
mysql -u root -p --连接数据库
update myql.user set authentication_string=password('***') where user='root' and Host = 'localhost'; -- 修改用户密码
flush privileges; -- 刷新权限
常用语句
所有命令后面不用加分号,所有sql语句结尾一定要加分号
--或者# 单行注释
/**/ 多行注释
show databases; -- 查看所有的数据库
use XXX; -- 选中XXX数据库
show tables; -- 查看某数据库中的所有表
select * from 表名; --查看表中的记录
mysql> *** 切换到***数据库
show tables; -- 查看数据库中所有的表
describe[desc] *** -- 查看***表中所有的信息
create database ***; --创建一个叫***的数据库
exit -- 退出连接
六、增删改查
mysql 常用数据类型有哪些?
MySQL支持多种类型,大致可以分为三类:
-- 数值
-- 日期/时间
-- 字符串(字符)类型
数据记录常见操作:
-- 增加
insert
-- 删除
delete
-- 修改
update
-- 查询
select
-- 创建表create table 表名(字段 + 数据类型 + [约束],...);
CREATE TABLE pet(
NAME VARCHAR(20),
OWNER VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE
)DEFAULT CHARSET = utf8;
-- 查看表是否创建成功
SHOW TABLES;
-- 查看表的结构
DESC pet;
-- 查看表中的数据
SELECT * FROM pet;
-- 往数据表中添加数据记录
INSERT INTO pet
VALUES ('lei','bing','daoge','f','2001-02-12',NULL);
-- 删除数据
DELETE FROM pet
WHERE NAME = 'lei';
-- 修改数据
UPDATE pet SET NAME = 'leidaoge'
WHERE OWNER = 'bing';
七、约束
mysql建表约束
-- 主键约束
-- 自增约束
-- 外键约束
-- 唯一约束
-- 非空约束
-- 默认约束
-- 主键约束
primary key
唯一确定,不重复且不为空
-- 修改表结构,添加主键
-- 语法: alter table 表名 add primary key(字段名);
ALTER TABLE pet ADD PRIMARY KEY(NAME);
-- 删除约束
-- 语法: alter table 表名 drop primary key(字段名);
ALTER TABLE pet DROP PRIMARY KEY(NAME);
-- 使用modify修改字段,添加约束
-- 语法:alter table 表明 modify 字段名 + 数据类型 + 约束
ALTER TABLE pet MODIFY id INT PRIMARY KEY;
-- 联合主键
多个主
键,联合唯一
-- 自增约束
auto_increment
-- 外键约束
foreign key(字段X) references 表名X(字段X)
涉及两个表,主表和副表
1、主表中没有数据,在副表中无法被使用
2、记录被副表引用,则不可以被删除
-- 唯一、非空约束
主键约束就是唯一+非空约束
-- 默认约束
default XXX
当我们插入字段值的时候,没有传值则使用默认值
-- 数据库的三大设计范式
1、第一范式
拆字段
2、第二范式
1+拆表
3、第三范式
2+不能有传递依赖