**数据库:**按照数据结构来组织、存储和管理数据的一种建立在计算机存储设备上的仓库 数据库的优势: 1.可以持久化存储大量的数据、方便我们进行检索 2.可以保证数据的安全和数据的一致性(事物…) 3.可以很轻松的通过数据库来提取出新的有效信息(计算平均分、统计人数)
RDB(Relational DateBase) 是 关系型数据库 例如:在关系型数据库中 有一张存储了数据的表格 还有一张存储了学生年级的表格 性能方面 关系型数据库受限于技术实现,所以有瓶颈 但它在安全方便比较可靠 (事物支持好) NoSQL(Not only SQL)不仅仅是SQL 是 非关系型数据库 例如:文档型数据库 、 键值对数据库 (key value)、 图形数据库… 它这种概念正式兴起于web2.0时代 2006-2009… 性能方面 非常优异,但是它的安全方面要比较差。(事物支持不太好) RDB(主)+NoSQL(副)
RDB: MySQL Oracle SQLServer PostgreSQL MariaDB SQLlite… NoSQL: Redis Memcached MongoDB HBase Solr ElasticSearch…
数据表是数据库的基本单位 例如:我们需要开发一个小说阅读器,它需要存储小说、分类、用户…信息。 创建一个小说阅读器的数据库:sun_reader_db 在sun_reader_db中创建小说表、分类表、用户表(二维表)
SQL:(Structured Query Language )结构化查询语言,它也是一种规范、标准。 我们的关系型数据库都是采用SQL来进行操作的,不同的数据库队SQL进行了一些改造,但是类似 CRUD DDL:数据定义语言 创建Create 删除Drop 修改Alter table… DML:数据操作语言 CUD 增Insert 删Delete 改Update DQL:数据查询语言 Select 查询 DCL:数据控制语言 Grant、Roll back、commit… 4.3 数据库相关操作命令
-- 创建数据库命令 create database 数据库名; -- 删除数据库命令 drop database 数据库名; -- 查看数据库 show databases; -- 切换数据库 如果需要在此数据库中进行操作 必须要先切换此数据库 use 数据库名;5.2查看数据库中的数据表
-- 查看数据库的所有表show tables;-- 查看表定义/结构desc/describe 表名;5.3删除数据库
-- 删除数据库 drop table 表名;5.4修改数据库
-- 修改字段名 change:更改字段信息时 并且可以改名/modify 只能改字段信息 ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型(属性); -- 修改表名 ALTER TABLE 旧表名 RENAME【TO】新表名; -- 添加字段名 ALTER TABLE 表名 ADD字段名 数据类型【属性】; -- 删除字段名 ALTER TABLE 表名 DROP 字段名主键:能够唯一标识信息表中的一条啊数据的字段/字段组 Alter Table 表名 Add Consistent 主键名 Primary key 表名(主键字段名)
ALTER TABLE school_stu ADD CONSTRAINI pk_stu_stuID PRIMARY KEY school_stu(stuID);外键:在一张表中的某个字段引用的数据来自另一张表的某个字段信息 主表:它的主键一般是需要被从表引用 从表:在其中拥有外键,可以引用主表的主键信息 grade 主表 student 从表 实现物理外键 通过SQL语句将外键绑定好 可以保证数据一致性
ALTER TABLE school_stu ADD CONSTRAINT fk_stu_grade FOREIGN KEY (gradeId) REFERENCES grade(gradeId);为了能方便我们进行数据表操作 在实际项目中一般不设置物理外键,而设置逻辑外键
6.2列类型
数值:长度可写可不写 tinyint(短整形) int 整数 bigint(长整型) double(浮点数) 字符串:必须写长度 varchar(可变字符串) char (不可变字符串) 假设设置了varchar长度为10 char长度也为10 当真实存在了1个字符 varchar占用1个 char占用10个(效率高) text长文本 日期类型:不能写长度 【datetime】 timestamp 年月日 时分秒 年月日