Mysql数据库基础(入门)
目录
一.认识Sql
1.什么是Sql
2.Sql的作用
3.Sql通用语法
4.Sql分类
二.数据库的操作(DDL)
1.创建数据库
2.显示/使用数据库
3.修改数据库
4.删除数据库
三.常用数据类型
1.数值类型
2.字符串类型
3.日期类型
4.详细的数据类型
四.表的操作(DDL)
1.创建表
2.查看表
3.修改表
4.删除表
一.认识Sql
1.什么是Sql
结构化查询语言(Structured Query Language)简称Sql.它是一种特殊的带有目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询,更新和管理关系数据库系统。
2.Sql的作用
①所有关系型数据库都可以使用SQL
②是所有关系型数据库的统一查询规范,不同的关系型数据库都支持SQL
③不同数据库之间的sql有一些区别(我们在此主要学习MySql数据库)
3.Sql通用语法
①SQL语句可以单行 或者 多行书写,以分号 结尾 ; (Sqlyog中可以不用写分号)
②可以使用空格和缩进来增加语句的可读性。
③MySql中使用SQL不区分大小写,一般关键字大写,数据库名 表名列名 小写。
⑤注释方式
注释类型 | 语法 | 说明 | 示例 |
单行注释 | -- 注释内容 | 标准SQL单行注释, 必须包含空格 ( -- 后紧跟一个空格) | SELECT * FROM users; -- 查询所有用户数据 |
多行注释 | /* 注释内容 */ | 标准SQL多行注释,可跨越多行 | /* 该查询用于获取活跃用户数据 创建日期:2023-01-01 */ |
MySQL单行注释 | # 注释内容 | MySQL特有单行注释, 无需空格 ( # 后可直接写内容) | SELECT * FROM products # 获取所有商品信息 |
4.Sql分类
分类 | 简称 | 全称 | 说明 |
数据定义语言 | DDL | Data Definition Language | 定义数据库对象:数据库、表、列等 (例如: CREATE , ALTER , DROP ) |
数据操作语言 | DML | Data Manipulation Language | 对数据库中的表记录进行更新操作 (例如: INSERT , UPDATE , DELETE ) |
数据查询语言 | DQL | Data Query Language | 查询数据库中的表记录 (核心命令: SELECT ) |
数据控制语言 | DCL | Data Control Language | 定义数据库访问权限、安全级别及创建用户 (例如: GRANT , REVOKE ) (了解) |
- 建表结构 → DDL
- 增删改数据 → DML
- 检索数据 → DQL
- 设置用户权限 → DCL
我们在此重点学习DML和DQL。
二.数据库的操作(DDL)
1.创建数据库
命令 | 说明 |
create database 数据库名; | 创建指定名称的数据库。 |
create database 数据库名 character set字符集; | 创建指定名称的数据库,并且指定字符集(一般都指定utf8mb4) |
示例:
创建名为 db_test的数据库
create database db_test;
如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建
create database if not exists db_test character set utf8mb4;
2.显示/使用数据库
命令 | 说明 | 示例 |
---|---|---|
USE 数据库名; | 切换当前操作的数据库 | USE shop_db; |
SELECT DATABASE(); | 查看当前正在使用的数据库名称 | SELECT DATABASE(); → 返回 shop_db |
SHOW DATABASES; | 列出MySQL服务器中所有数据库 | SHOW DATABASES; → 显示所有数据库列表 |
SHOW CREATE DATABASE 数据库名; | 查看指定数据库的详细定义信息 | SHOW CREATE DATABASE shop_db; |
示例:
使用数据库或切换数据库到db_test
use db_test;
查看当前正在使用的数据库
select database();
查看Mysql中有哪些数据库
show databases;
查看一个数据库的定义信息
show create database db_test;
3.修改数据库
命令 | 说明 |
alter database 数据库名 character set 字符集; | 数据库的字符集修改操作 |
示例:
将数据库db_test 的字符集 修改为 utf8
alter database db_test character set utf8;
查看当前数据库的基本信息,发现编码已更改
show create database db_test;
4.删除数据库
命令 | 说明 |
drop database 数据库名 | 从MySql中永久的删除某个数据库 |
示例:
删除数据库db_test
drop database db_test;
三.常用数据类型
1.数值类型
分为整数类型和浮点类型
数据类型 | 大小 | 说明 | 对应 Java 类型 |
---|---|---|---|
BIT[(M)] | M 位(1-64) | 二进制数,存储范围:0 到 2^M-1 默认 M=1(存 0/1) | Boolean |
INT | 4 字节 | 整数范围:-2³¹ 到 2³¹-1 (约 ±21 亿) | Integer |
DOUBLE(M, D) | 8 字节 | 双精度浮点数,M=总位数,D=小数位 | Double |
DECIMAL(M, D) | M/D 最大值 + 2 字节 | 精确小数,M=总位数,D=小数位 适合财务计算 | BigDecimal |
2.字符串类型
数据类型 | 大小 | 说明 | 对应 Java 类型 |
---|---|---|---|
VARCHAR(SIZE) | 0-65,535 字节 | 可变长度字符串,SIZE=最大字符数 推荐存储长度不固定的文本(如用户名) | String |
TEXT | 0-65,535 字节 (64KB) | 存储长文本数据(如文章/评论) 不支持默认值 | String |
3.日期类型
数据类型 | 大小 | 说明 | 对应 Java 类型 |
---|---|---|---|
DATETIME | 8 字节 | 范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59 不涉及时区转换 | java.util.Date java.sql.Timestamp |
TIMESTAMP | 4 字节 | 范围:1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC 自动时区转换 | java.util.Date java.sql.Timestamp |
4.详细的数据类型
四.表的操作(DDL)
1.创建表
创建表student 包括学号,姓名,年龄字段 ,并且使用comment关键字 给字段起别名
create table student{id int comment '学号',name varchar(20) comment '名字',age int comment '年龄'
};
2.查看表
命令 | 说明 |
show tables; | 查看当前数据库中的所有表名 |
desc 表名; | 查看数据表的结构 |
查看表student结构
desc student;
3.修改表
快速创建一个表结构相同的表(复制表结构)
将student表结构复制给student1
create table student2 like student;
修改表名 rename table 旧表名 to 新表名
将student表 改为 student1
rename table student to student1;
修改表的字符集 alter table 表名 character set 字符集
将student表的字符集 修改为gbk
alter table student character set gdk;
向表中添加列 alert table 表名 add 字段名称 字段类型
为student表添加一个新的字段为 学生描述 cdesc varchar(20)
ALTER TABLE student ADD cdesc VARCHAR(20);
修改表中的列的数据类型或长度,关键字modify alter table 表名 modify 字段名称 字段类型
对student表的age字段进行修改,类型varchar(50)
ALTER TABLE student MODIFY cdesc VARCHAR(50);
修改列名称,关键字change alter table 表名 change 旧列名 新列名 类型(长度)
对student表中的 age字段进行更换, 更换为 Age varchar(30)
ALTER TABLE student CHANGE cdesc description VARCHAR(30);
删除列,关键字drop alter table 表名 drop 列名;
删除student表中description这列
ALTER TABLE student DROP description;
4.删除表
命令 | 说明 |
drop table 表名; | 删除表(从数据库中永久删除某一张表) |
drop table if exists 表名; | 判断表是否存在, 存在的话就删除,不存在就不执行删除 |
示例:
删除表student
drop table student;
判断表student是否存在,再删除
drop table if exists student;
如果要删除表中的所有数据,有两种做法
1. delete from 表名; 不推荐. 有多少条记录 就执行多少次删除操作. 效率低
2. truncate table 表名: 推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高
truncate table 表名;
有错误的地方,大家一起指出,一起学习!!!
完结撒花,下一章内容会学习对表中的数据进行操作!