数据库:库的操作

库的操作

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ᵒᵛᵉᵧₒᵤ❤

相关推荐
计算机安禾1 天前
【数据库系统原理】第19篇:计算机存储层次结构与数据库文件的物理组织
数据库·oracle
JAVA面经实录9171 天前
操作系统面试题
java·服务器·数据库·计算机网络·面试
摇滚侠1 天前
mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代
数据库·mysql·mariadb
DIY源码阁1 天前
JavaSwing饮品管理系统 - MySQL版
java·数据库·mysql·eclipse
专注搞钱1 天前
GPT-4o写设备Recipe:从3小时到10分钟
数据库·人工智能·gpt·半导体
东风破1371 天前
达梦数据库实战:备份恢复与数据迁移全攻略(实例初始化、服务注册、路径迁移)
数据库·chrome
SelectDB技术团队1 天前
2026 SelectDB AI 产品发布会:Agent Native 数据基础设施能力全景发布
数据库·人工智能·agent·apache doris·selectdb
爱吃羊的老虎1 天前
【数据库】模块一:数据库基础与关系代数
数据库
dishugj1 天前
iSCSI + Multipath + ASM:Oracle RAC 共享存储技术链详解
数据库·oracle
yoothey1 天前
MySQL事务机制解析 - 面试高分知识点
数据库·mysql·面试