mysql基础——库与表的操作

在学习了mysql的基础内容后,我们接下来要讲解一些有关于对库与表的相关操作

库的操作

1、创建数据库

语法:

\[\]中的是可选项,可以不写

大写的表示关键字,CHARACTER SET是指定数据库采用的字符集,COLLATE指定数据库字符集校验规则。

关于数据库的存放,我们可以在/var/lib/mysql下查找(ls可能需要root权限)

2、删除数据库

drop database name;(删除name库)

创建/删除数据库本质是在该目录下新建/删除目录

3.字符集和校验规则

也就是说我们使用的库采用对应的字符集及其相应的校验规则,我们可以用以下命令查看系统默认的字符集和校验规则。

cpp 复制代码
show variables like 'character_set_database';
 show variables like 'collation_database';

我们存储以及读取数据时候必须保持二者均一致不然会出现问题。除此之外我们还可以查看其他的字符集和校验规则

cpp 复制代码
show charset;
show collation;

不同的规则对数据库也有影响,假如我们要一个不区分大小写的库

create database test1 collate utf8_general_ci;

create database test2 collate utf8_bin;(区分大小写的库)

4.对库的使用

我们在对某一个库进行插入数据等操作前,还要用以下语句

use name;(使用name库)

相当于我想使用必须先进入到该目录下

操纵数据库

1.删除数据库

drop database name;

但我们不建议对数据库直接删除,因为一旦删除里面对应的所有内容也会被全部删除,也内部看不到数据库。

2.查找数据库 :show databases;

show create database name:查看当时创建该库时的语句。

3.查看当前所在数据库:select database();
4.修改数据库------关键字alter

比如我们想改字符集和校验规则:alter database name charset=... collate ...;

数据库的备份与恢复

备份语法:# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

恢复语法:mysql> source 路径;(目标路径下的备份库)

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

有了库的相关操作,接下来我们就要进入到数据库内创建表然后对表进行相关操作。

表的操作

创建表

语法:

create table table_name (

field1 datatype,

field2 datatype,

field3 datatype )

character set 字符集 collate 校验规则 engine 存储引擎;

(也可以都写在一行,为了美观写完一行按换行键在下一行写)

field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

创建以后我们会发现当前库的目录下会增加几个文件(不同引擎对应的文件数量不同),这些文件就是记录着表的数据。

查看表

语法:show tables;

查看表的详细信息:desc tablename;

修改表

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

修改表名:alter table tablename1 rename to(to可省) tablename2;

在表中插入一套新数据:insert into tablename values(参数);

在表中新增加一行属性:

alter table tablename add 属性名 类型 comment '描述' (comment及其后可不写)after name;(在name后增加一列)

插入新字段后,对原来表中的数据没有影响。

修改属性名的类型:

alter table tablename modify 属性名 新类型;

删除某列:

alter table tablename drop name;(删除tablename表中的name列)

修改表中的某一列的名称:

alter table tablename change name name1 类型;(把表中的name列修改名为name1,且需声明新列的类型,也可以与之前同类型)

删除表

语法: drop table name;

相关推荐
左直拳24 分钟前
mysql分区表自动归档
mysql·分区表·分区表归档
老纪1 小时前
Redis分布式锁进第九零篇
数据库·redis·分布式
haven-8521 小时前
MySQL事务ACID、隔离级别、MVCC、幻读解决
数据库·mysql
小高学习java1 小时前
事务的边界问题,如何判断数据回滚时机。
java·数据库·后端
迷枫7122 小时前
【无标题】
数据库
TDengine (老段)2 小时前
TDengine 扫描算子 — TableScan、TagScan 与下推优化
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
放下华子我只抽RuiKe52 小时前
FastAPI 全栈后端(三):数据库与 ORM
前端·数据库·react.js·oracle·性能优化·前端框架·fastapi
BAGAE3 小时前
星链卫星数据获取:从太空安全到实时通信的技术革命
网络·数据结构·数据库·算法·云计算·hbase
zh_xuan3 小时前
Android导出并查看数据库
数据库·sqlite
加加and减减3 小时前
Docker真实安装mysql8教程并优化配置
运维·mysql·docker·容器