数据库操作


创建数据库

创建数据库简单方式create database db_name(数据库名);
还有一种为create database if not exists db_name(数据库名);数据库不存在创建,然后不会有任何提示,但是若是存在的会有警告
在这里插入图片描述
因为数据库存在了就没有再创建的必要了

create database [if not exists ]db_name [create_specification [,create_specification] …]
create_specification: [default] character set charset_name
[default] collate collation_name

[]内的是可选的也可以不选,就是再创建数据库时可以使用最简洁的方式

character :指定数据库采用的字符集
collate:指定数据库字符集的校验规则

数据库编码集就是采用统一的编码形式,一旦采用一个编码集创建数据库之后那么在这个数据库下创建的表也会采用这个编码集,就是相当于会被继承下去,除非自己设置编码集,否则使用数据库编码集。就是说明编码存,然后就要以什么编码取。
数据库校验集支持数据库进行字段比较,使用的编码本质也是一种读取数据库中数据库用的编码格式。
所有在数据库无论对数据提供什么操作时,都必须保证操作和编码必须是一致的,统一用一种编码!
先查看系统支持的字符集和字符集校验规则
字符集

show variables like character_set_database;

校验集

show variables like collation_database;

在这里插入图片描述
系统默认使用是utf8编码格式,这是因为我在配置文件佳你中设置了的
在这里插入图片描述
上述只是我系统的,整个数据库支持很多
查看数据库支持的字符集

show charset

在这里插入图片描述
查看数据库支持字符校验规则

show collation;

在这里插入图片描述
配置文件中不同的配置会导致编码不同,编码存储和读取需要一致,这样就可以创建指定字符集和指定字符集校验规则的数据库,就是在创建数据库之后再添加选项

创建一个使用utf8字符集的 db2 数据库和创建一个使用utf字符集,并带校对规则的 db3 数据库。在这里插入图片描述
它在数据库目录下存在一个配置文件然后db.opt然后里面存放字符集和字符集校验规则!一般创建数据库不指定字符集和字符集校验规则就会采用系统数据库配置文件下默认的。
那么设置这两个的意义在哪?是未来创建数据库时使用数据库然后在数据库下创建表,表使用的编码规则就会继承他自己所在数据库,而数据库又是依赖于mysql和mysqld!
在这里插入图片描述

创建 数据库时使用字符集校验规则为utf8_general_ci不区分大小写
在数据库下建一个表,则要使用数据库就相当于是进入数据库use db_name
创建表create table table_name
在数据库下创建表之后若是想要知道当前数据库下有哪些表使用show tables查看;向表中插入数据用

insert table_name(表中属性字段)values(对应属性字段值);

插入数据之后查看表内容

select * from table_name;

在这里插入图片描述
*表示所有是一个通配符,from是从表中选取
查看表中特定字段内容,查看是否有name='a’的人存在

select *from table_name where 属性字段为某个条件时

在这里插入图片描述
由于字符集校验规则不区分大小写,会将a 和A提取出来,a和A是一样的
区分大小写的字符集校验规则

create database db_name collate utf8_bin;

在test2数据库下创建表person然后向表中插入数据

insert into table_name values(…);

当表名后不接圆括号则是表所有属性字段全部插入数据
区分大小写查询结果
在这里插入图片描述
使用区分大小写字符校验规则就会严格遵守大小写

对表中字段内容进行排序

select*from table_name order by 表中特定字段
order by 默认升序排列

区分大小写排序

在这里插入图片描述

不区分大小写排序查询结果
在这里插入图片描述

创建表

create table [if not exists] table_name(
field1 datatype,
field2 datatype,
field3 datatype)[character set 字符集 collate 校验规则 engine 存储引擎;]
[]内选项可以不选。

说明:

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

在这里插入图片描述
存储引擎为InnoDB创建表
在这里插入图片描述

使用不同的存储引擎,创建表的文件不一样。
users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
users.frm:表结构
users.MYD:表数据
users.MYI:表索引
在这里插入图片描述
users2表存储引擎是InnoDB,在数据目录中有两个不同的文件

在这里插入图片描述
不同存储引擎生成文件不一样。

创建好表之后查看表结构

desc table_name;

在这里插入图片描述

修改表

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

alter table tablename add (column datatype [default expr][,column
datatype]…);
alter table tablename modifify (column datatype [default expr][,column datatype]…);
alter table tablename drop (column);

向表中插入数据然后查看表
在这里插入图片描述
向表加一列
在这里插入图片描述

它的默认值是空的!插入新字段之后对原来的字段没有影响。

修改表alter table users modify name varchar(30);
使用modify修改之后,原本表的地段描述信息会被覆盖式的修改
在这里插入图片描述

删除变某一列

alter table table_name drop 列名
在这里插入图片描述
删除字段一定要小心,删除字段及其对应的列数据都没了

修改表名为us
使用语句

alter table 就表名 rename to 新表名;
to可以省掉
在这里插入图片描述
修改列名

alter table table_name change 旧列名 新列名 属性字段;
在这里插入图片描述

查看表

查看创建了哪些表

show tables;

在这里插入图片描述
查看创建表时使用的语法

show create table table_name

\G可以将一些信息去掉
在这里插入图片描述

desc users查看表结构
在这里插入图片描述

删除表

将表给删除,不想用它了
删除表语法格式

drop [temporary] TABLE [if exists] tb_name [, tbl_name] …

在这里插入图片描述

删除数据库

创建好数据库之后若是不想用了就是确定这个数据库实在是没啥用之后可以考虑将其删除
drop database db_name
在这里插入图片描述
但是一般不要将数据库删除因为删除数据库的话在数据库中创建的表结构都会被删除,所有就算要删除一般都是要将其做一个备份。
执行删除之后的结果:

数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

所有一般不要删除数据库
若是实在要删除可以选择备份一份,等到要用时还原即可

数据库备份和恢复

因为很难对数据库进行重命名,在你操作这个数据库时,别人可能也在访问这个数据库,所有最好不要对数据库重命名,可以将其备份一份给自己。不过也不提供直接对数据库备份而是要使用工具mysqldump就是相当于重定向到一个文件中
备份语法格式

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

我创建一个MYSQL目录,然后在这个目录下备份,备份要使用mysqldump工具 带选项-B
mysqldump -P3306 -u root -p -B test1 > test1.sql
在这里插入图片描述

这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
在这里插入图片描述

还原

mysql> source 数据库备份的路径

在这里插入图片描述
它还原操作就是将对数据库的历史操作指令重新执行了一遍。
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。所有为了简便一般带上-B参数。

创建数据库和删除数据库在Linux下对应操作:创建:本质是在/var/lib/mysql目录下创建一个目录;drop就是删除目录,而我在linux操作这个目录下创建一个目录就是相当于创建一个数据库,但是一般不会在这个目录下创建,这样反而让人觉得你只是创建一个文件
在这里插入图片描述

查看数据库使用语句为

show database;

这是查看有哪些数据库

显示创建数据库时使用的操作

show create database 数据库名;

在这里插入图片描述
说明

MySQL 其实建议我们关键字使用大写,但是不是必须的。
数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
/*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话,它就使用默认字符集

修改数据库

语法

alter database db_name [alter_spacification [,alter_spacification]…]
alter_spacification:
[default] character set charset_name
[default]collate collation_name

对数据库的修改主要指的是修改数据库的字符集,校验规则
将 test1 数据库字符集改成 gbk
在这里插入图片描述
查看数据库连接情况

show processlist

就是查看有几个用户连接mysql
在这里插入图片描述
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后如果发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值