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;

相关推荐
余槐i3 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
数据库小学妹3 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令
数据库·postgresql·表膨胀·mvcc·数据库运维
mister_guo4 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案
数据库·mysql
骇客野人4 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤
数据库·redis·memcached
美狐美颜SDK开放平台6 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
Lost_the_wind6 小时前
MySQL学习笔记五
mysql
花间相见7 小时前
【计算基础|MySQL01】【上手】安装连接、数据类型与建库建表
数据库·后端
花间相见7 小时前
【计算基础|MySQL02】【上手】SQL 增删改查
数据库·后端
ITxiaobing20238 小时前
IP 库与 AppsFlyer 国家/地区数据不一致,如何系统地对账?
数据库·网络协议·tcp/ip
这个DBA有点耶8 小时前
从时间到语义:时序数据库与向量数据库的核心机制、选型与多模融合趋势
数据库·mysql·架构