数据库概述和DDL语句(day1)
- 一、数据库概述
 - 概念
 - 数据库的集中式控制有什么优点
 - 数据库分类
 - mysql数据库
 - mysql简介
 - 基本术语
 - 数据表的组成
 
- 数据库管理系统
 - 数据库管理系统、数据库和表的关系
 
- 二、SQL的概念
 - 三、SQL语句分类
 - 1、SQL语句被分为四大类
 - 2、MySQL的语法
 
- 四、DDL操作数据库
 - 1、创建数据库的几种方式
 - 2、查看数据库
 - 3、修改数据库
 - 4、删除数据库
 - 5、使用数据库
 
- 五、DDL操作表结构
 - 1、创建表
 - 2、MySQL中数据类型(常用)
 - 3、MySQL中详细数据类型
 - 数据类型的长度设置
 
- 4、详细操作
 - 4.1 创建表
 - 4.2 查看表
 - 4.3操作表
 - 4.3修改表的结构
 
- navicat和破解工具
 
一、数据库概述
概念
数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术
和市场的发展,特别是二十世纪九十年代后,数据管理不再仅仅是存储和管理数据,而转变成用户所需
要的的各种数据管理方式。数据库有多种类型,从最简单的存储有各种数据的表格到能够海量数据存储
的大型数据库系统,都在各个方面得到了广泛的应用。
数据库的集中式控制有什么优点
- 降低存储数据的冗余度
 - 更高的数据一致性
 - 存储数据的可以共享
 - 可以建立数据库所遵循的标准
 - 便于维护数据完整性
 - 能够实现数据的安全性
 
数据库分类
- 关系型数据库 ---->MySQL、SqlServer、Oracle
 - 非关系型数据库---->Redis、Mongodb
 
mysql数据库
mysql简介
数据库是按照数据结构来组织、存储和管理数据的仓库,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的的各种数据管理方式。数据库有多种类型,从最简单的存储有各种数据的表格到能够海量数据存储的大型数据库系统,都在各个方面得到了广泛的应用。
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
- 数据以表格的形式出现
 - 每行为各种记录名称
 - 每列为记录名称所对应的数据域
 - 许多的行和列组成一张表单
 - 若干的表单组成database
 
基本术语
- 数据库: 数据库是一些关联表的集合。
 - 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
 - 字段(Field):表中的每一列被称为字段,用于存储特定类型的数据,比如姓名、年龄、地址等。
 - 记录(Record):表中的每一行被称为记录,表示一个完整的数据项,包含多个字段的值。
 - 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
 - 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
 - **外键:**外键用于关联两个表。
 - 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
 - **索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
 - 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
 
数据表的组成
- 表头(header): 每一列的名称;
 - 列(col): 具有相同数据类型的数据的集合;
 - 行(row): 每一行用来描述某条记录的具体信息;
 - 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
 - 键(key): 键的值在当前列中具有唯一性。
 
数据库管理系统
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软
件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。
用户通过数据库管理系统访问数据库中表内的数据。
数据库管理系统、数据库和表的关系
数据库管理程序(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为
 保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
 
 注意:
- 一个数据库服务器包含多个数据库
 - 一个数据库包含多张表
 - 一张表包含多条记录
 
二、SQL的概念
SQL(Structured Query Language):结构化查询语言。
1、SQL作用
- 是一种所有关系型数据库的查询规范,不同的数据库都支持;
 - 通用的数据库操作语言,可以用在不同的数据库中;
 - 不同的数据库SQL语句有一些区别。
 
三、SQL语句分类
1、SQL语句被分为四大类
-  
数据定义语言DDL(Data Definition Language):建表,建库
 -  
数据查询语言DQL(Data Query Language):对表中的查询操作
 -  
数据操纵语言DML(Data Manipulation Language):对表中的记录操作增删改
 -  
数据控制功能DCL(Data Control Language):用户权限的设置
 
2、MySQL的语法
- 每一条SQL语句都是以分号(英文状态)结束,但是在Navicat中是可以不加分号的;
 - SQL中是不区分大小写,关键字中认为大小写一样;
 - 注释的三种方式:
 
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-82xY7zzz-1690207061286)(E:\myapp\typora\笔记文件夹\数据库\imgs02\image-20230716180310691.png)]](https://img-blog.csdnimg.cn/f7909dd276274fc3b0fe9dad0e069916.png)
四、DDL操作数据库
1、创建数据库的几种方式
- 创建数据库
 
# 格式
CREATE DATABASE 数据库名;
# demo
create database demo;
 
- 判断数据库是否已经存在,不存在则创建数据库
 
# 格式
CREATE DATABASE IF NOT EXISTS 数据库名;
# demo
create database if not exists demo;
 
- 创建数据库并指定字符集
 
# 格式
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
# demo
create database demo character set utf8 ;
 
2、查看数据库
- 查看所有数据库
 
show databases;
 
- 查看某一个数据库
 
show create database demo;
 
3、修改数据库
修改数据库默认的字符集
# 格式
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
# demo
ALTER DATABASE demo DEFAULT CHARACTER SET utf8mb4;
 
4、删除数据库
- 直接删除数据库
 
# 格式
DROP DATABASE 数据库名;
# demo
DROP DATABASE demo;
 
- 判断数据库存在,再删除
 
# 格式
DROP DATABASE IF EXISTS 数据库名;
# demo
DROP DATABASE IF EXISITS demo;
 
5、使用数据库
- 查看正在使用的数据库
 
SELECT DATABASE();
 

 2.使用和切换数据库
# 格式
use 数据库名;
# demo
use demo;
 
五、DDL操作表结构
1、创建表
# 格式
CREATE TABLE 表名(
字段名1 字段类型1,
字段名2 字段类型2
);
 
注意:
- 创建表,必须先选择要使用数据库;
 - CREATE,TABLE是两个关键字;
 - 字段类型要给大小。
 
2、MySQL中数据类型(常用)

3、MySQL中详细数据类型

数据类型的长度设置
- 字符类型长度设置
 
在MySQL中,常用的字符类型包括CHAR、VARCHAR、TEXT等。其中,CHAR和VARCHAR类型表示定长和变长字符串,长度需要根据实际情况进行设置。如果需要存储10个字符的字符串,可以使用CHAR(10)或VARCHAR(10)。需要注意的是,VARCHAR类型的长度不要超过65535,否则会出现存储问题。
- 数字类型长度设置
 
MySQL中的数字类型包括INT、BIGINT、FLOAT、DOUBLE等。如果需要存储一个范围在0-255之间的整数,可以使用TINYINT UNSIGNED类型,长度为1字节。如果需要存储一个范围在-2147483648到2147483647之间的整数,可以使用INT类型,长度为4字节。
- 日期类型长度设置
 
MySQL中的日期类型包括DATE、DATETIME、TIMESTAMP等。如果需要存储一个日期,可以使用DATE类型,长度为3字节。如果需要存储一个日期和时间,可以使用DATETIME类型,长度为8字节。
- 其他类型长度设置
 
MySQL中还有其他类型,例如BLOB、ENUM、SET等。如果需要存储一个最大长度为65535字节的二进制数据,可以使用MEDIUMBLOB类型,长度为3字节。
总结:MySQL建表长度的设置非常重要,可以避免数据存储出现问题。在设置长度时,需要根据实际情况进行调整,避免长度过长或过短。如果不确定长度,可以选择使用默认长度。
4、详细操作
4.1 创建表
employee表包含 id,name,birthday 字段
CREATE TABLE IF NOT EXISTS employee(
id int(11),
name VARCHAR(22),
birthday date
);	
 
表创建成功
 
4.2 查看表
- 查看某个数据库中的所有表
 
SHOW TABLES;
 
- 查看表的结构
 
# 格式
DESC 表名
# demo
DESC employee;
 
- 查看创建表的SQL语句
 
# 格式
SHOW CREATE TABLE 表名;
# demo
SHOW CREATE TABLE employee;
 
4.3操作表
- 快速创建一个表结构相同的表
 
# 格式
CREATE TABLE 新表名 LIKE 旧表名;
# demo
CREATE TABLE newEmployee LIKE employee;
 
- 删除表
 
# 直接删除
# 格式
DROP TABLE 表名;
# demo
drop table newEmployee ;
# 判断是否存在再删除
# 格式
DROP TABLE IF EXISTS 表名;
# demo
drop table if exists `employee`;
 
4.3修改表的结构
- 添加表中的字段
 
# 格式
ALTER TABLE 表名 ADD 列名 类型;
# demo
ALTER TABLE employee ADD age int(3);
 
- 修改列类型 MODIFY
 
# 格式
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
# demo
ALTER TABLE employee CHANGE age new_age int(4);
 
- 删除列 DROP
 
# 格式
ALTER TABLE 表名 DROP 列名;
# demo
ALTER TABLE employee DROP new_age;
 
- 修改表名
 
# 格式
RENAME TABLE 表名 TO 新表名;
# demo
rename table employee to employee1;
 
- 修改字符集
 
# 格式
ALTER TABLE 表名 character set 字符集;
# demo
ALTER TABLE employee character set utf8mb4;
 
navicat和破解工具
链接:https://pan.baidu.com/s/1Atd-1S6PbNCDyKRSwrOFQQ?pwd=yang
 提取码:yang
破解步骤,大家就网上随便搜一篇就行了,还是比较简单的。