数据库:库的操作

库的操作

1. 创建数据库
sql 复制代码
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, 
create_specification] ...]

create_specification:

DEFAULT CHARACTER SET charset_name

DEFAULT COLLATE collation_name
大写的都是关键字

db_name: 创建数据库的名字

\[\] :是可选项

IF NOT EXISTS :如果没有这个数据库就创建

CHARACTER SET: 指定数据库采用的字符集

COLLATE: 指定数据库字符集的校验规则

其本质就是在/var/lib/mysql创建一个目录

编码问题

创建数据库的时候,有两个编码集

  1. 数据库编码集 -- 数据库未来存储数据

  2. 数据库校验集 -- 支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式

数据库无论对数据做任何操作都必须保证操作和编码必须是编码一致的。

查看系统默认字符集

bash 复制代码
show variables like 'character_set_database';

查看系统默认校验规则

bash 复制代码
show variables like 'collation_database';

查看数据库所支持到的字符集

bash 复制代码
show charset;

查看数据库所支持的校验集

bash 复制代码
show collation;

指定编码创建,两个方法(warning 是因为版本问题)

同时创建校验集

校验码对数据库的影响

两种区别为一个区分大小写一个不区分大小写

往test1插入值为

查询里面所有的'a'

我们可以看到A与a都被查到了,所以他是不区分大小写的

test2表插入的如下

查询b

对test1进行排序 (小写在大写前面是因为小写都比大写先创建)

如果对其(test2)进行排序

2. 查看数据库

查看数据库

bash 复制代码
show databases;

进入数据库

bash 复制代码
use d1; //进入d1这个数据库

查看当前在哪个数据库

bash 复制代码
select database();
3. 修改数据库
bash 复制代码
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

对数据库的修改主要指的是修改数据库的字符集,校验规则

查看一下再改一下查看

4. 删除数据库
bash 复制代码
DROP DATABASE [IF EXISTS] db_ name;

db_name: 删除数据库的名字

IF EXISTS :判断是否存在

本质就是在/var/lib/mysql删除一个目录

备份与恢复

bash 复制代码
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

查看 .sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

根据上面备份的还原命令

bash 复制代码
 source /home/pc/MySQL/test2.sql;

如果备份的不是整个数据库,而是其中的一张表,怎么做?

bash 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库

bash 复制代码
 mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据 库,再使用source来还原。

表的操作

1. 创建表
sql 复制代码
CREATE TABLE table_name (
 field1 datatype,
 field2 datatype,
 field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

table_name 表示表名

field 表示列名

datatype 表示列的类型

character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

不同的存储引擎,创建表的文件不一样。

users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

users.frm:表结构

users.MYD:表数据

users.MYI:表索引

不同存储引擎如下所示

2. 查看表

desc 表名;

show create table user1 \G

看创建user1表时的详细信息

3. 修改表

实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型, 表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

sql 复制代码
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column 
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column 
datatype]...);
ALTER TABLE tablename DROP (column);

更改表名字

sql 复制代码
 alter table user1 rename to user;
//to 可省略
 alter table user1 rename user;
sql 复制代码
alter table user add image_path varchar(128) comment '用户头像路径' after birthday;

添加一列到birthday后面

修改一列 name长度将其改为50

sql 复制代码
//modify会覆盖,并非定向的更改
alter table user modify name varchar(50);
//不想去掉其余的就要都加上
alter table user modify name varchar(50) comment '用户的名字';

删除一列:把password这一列删掉

sql 复制代码
 alter table user drop password;

删除字段一定要小心,删除字段及其对应的列数据都没了

更改列名称

sql 复制代码
alter table user change name xingming varchar(60) DEFAULT NULL;

DEFAULT NULL - 设置默认值为NULL

4. 删除表
sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
//////////////////////////////
drop table 表名;

轻易不要删除


这篇就到这里啦(づ ̄3 ̄)づ╭❤~

(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤

相关推荐
oradh9 小时前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
ltl10 小时前
RocksDB 并发 Compaction 与 Rate Limiter
数据库
闻道且行之11 小时前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
夏炳辉.12 小时前
PostgreSQL 高可用集群核心配置参数全解:从原生流复制到 Patroni 企业级方案
数据库·postgresql
努力的小雨13 小时前
KES 开启 SSL 前,证书、端口和客户端要一起验
数据库
DevOps老兵13 小时前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
这个DBA有点耶13 小时前
当数据库从“存储”走向“决策”:金仓数据库的融合架构之路
数据库·架构·aigc
smilejingwei14 小时前
Trae+SQLazy 实践 SQL 国产化移植:Oracle => 达梦
数据库·sql·oracle
意疏14 小时前
2026年远控软件安全横评:六款主流工具逐项核查——官方文档、一手实测与安全事件,全摊开
大数据·前端·数据库
名不经传的养虾人15 小时前
从0到1:企业级AI项目迭代日记 Vol.90|Agent变快了,Judge定下来了
大数据·数据库·人工智能·ai编程·企业ai