Day51 MySQL
1.数据库
数据库(database)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据
MySQL就是数据库管理系统,操纵和管理数据库的大型软件
1.1 学习数据库的五个基本概念
1.数据库服务器
是指用来运行数据库服务的一台电脑。小型项目通常为一台,中大型项目通常是多台数据库服务器共同来存储或计算。由于数据安全非常重要,所以我们需要对数据库服务器里面的数据进经备份管理。
2.数据库 DDB
存储数据的仓库,数据是有组织的进行存储
3.数据表
例如在学员管理系统数据库中。根据业务的不同又分为了不同的数据表。专门用来存放不同人员的数据。例如:学员数据表(学号、用户名、密码);老师数据表(用户名、密码,工作经验)
4.数据字段
也叫数据列。就是我们日常所见表格里面的列。在表格中,我们会将一张用户表分成多个列。如下(表一)所示:用户编号、用户名、性别、年龄是字段。在真正的数据库中数据字段需要换成英文需要写成:id、username、sex、age。
5.数据行
真正的数据存在每一个表的行里面。字段(列)划分出来了一个表应该按照什么样的格式存数据。而行,是真正的数据。每一行需要遵循数据字段(列)的规范和要求进行存入数据。
1.2 安装MySQL
略
注意:
1.服务端口3306,不建议更改
2.InnoDB作为默认的数据库存储引擎
2.SQL 结构化查询语言
一切就绪,开始学SQL
结构化查询语言(Structured Query Language)简称SQL,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名
SQL是关系模型的数据库应用语言
2.1 SQL分类
1.数据定义语言(DDL ,Data Defintion Language)语句:数据定义语句,用于定义不同的数据对象、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等。
2.数据操作语言(DML , Data Manipulation Language)语句:数据操纵语句,用来对数据库表中的数据进行增删改,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句关键字主要包括insert、delete、update和select等。(DML:添加,修改,删除,DQL:查询)
重要
3.数据控制语言(DCL, Data Control Language)语句:数据控制语句,用来创建数据库用户、控制数据库的访问权限,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。
2.2 DDL
DDL:针对于数据库、表、字段操作的语言
我们将分三块来学习
1.数据库操作
2.数据表操作
3.数据字段操作
查询所有数据库:show databases ;
删除数据库:drop database [ if exists ] 数据库名 ;
切换数据库:use 数据库名 ;
可视化软件操作,新建数据库,设置字符集编码为utf8
注意:为什么不是UTF-8,而是utf8?
UTF-8是国际通用的字符集,utf8是MySQL里的字符集
2.2.1 操作库
创建库
CREATE DATABASE fy2401javaee;
删除库
DROP DATABASE fy2401javaee;
查询所有库
SHOW DATABASES;
使用库
USE fy2401javaee;
注意:库名不能修改
2.2.2 操作表
创建表
基本语法:create table 表名(字段名 字段类型 ,… , 字段名 字段类型);
VARCHAR(32):可以接收32字符长度的数据(字符串)
FLOAT(8,2):可以接收长度为8,其中有两位小数的数据
字符串:
char(32):最多只能存储32个字符,如果未满32个,也占32个的空间
varchar(32):最多只能存储32个字符,如果未满32个,占实际字符的个数
注意:以上两种字符串表现形式最多只能存储255个字符
CREATE TABLE s_student(
s_name VARCHAR(64),
s_sex VARCHAR(32),
age INT(3),
salary FLOAT(8,2),
course VARCHAR(32)
)
修改表名
语法:alter table 旧表名 rename 新的表名;
ALTER TABLE s_student RENAME student;
删除表
DROP TABLE student;
查询所有表
SHOW TABLES;
2.2.3 操作字段
添加字段 ADD
语法格式:alter table 表名 add 字段名 类型;
ALTER TABLE student ADD xxx VARCHAR(32);
删除字段 DROP
语法格式:alter table 表名 drop column 字段名;
ALTER TABLE student DROP xxx;
修改字段类型 MODIFY
语法格式:alter table 表名 modify 字段名 varchar(20);
ALTER TABLE student MODIFY s_sex VARCHAR(16);
修改字段名 CHANGE
语法格式:alter table 表名 change 字段原名 字段新名 字段类型;
ALTER TABLE student CHANGE s_sex sex VARCHAR(16);
修改字段名+类型
ALTER TABLE student CHANGE s_name name VARCHAR(32);
查询字段信息 DESC
field:字段
DESC student;
获取创建表信息
SHOW CREATE TABLE student;
– CREATE TABLE student
(
– s_name
varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,
– sex
varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
– age
int DEFAULT NULL,
– salary
float(8,2) DEFAULT NULL,
– course
varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL
– ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
创建字段与关键字冲突了怎么办?
不会冲突,数据库会优化我们的SQL命令,会给字段表名加上`,防止段与关键字冲突了