【MySql】数据库和表的增删查改

数据库和表的增删查改

一、数据库

1.创建数据库

方法一:

sql 复制代码
create database 数据库名(db_name);

方法二:

if not exists: 表示不存在,如果该数据库不存在就删除

sql 复制代码
create database if not exists 数据库名(db_name);

补充: 创建数据库本质就是在 /var/lib/mysql 创建一个目录

为什么呢?

原因:配置文件中默认的创建路径就是 /var/lib/mysql

数据库字符集和校验集

在创建数据库时,每个数据库都有一个对应的字符集和校验集

  • 字符集的作用: 在向数据库写入内容时,按什么编码写入

  • 校验集的作用: 在查找数据库中的内容时,按什么校验规则查找

查看mysql支持的字符集

sql 复制代码
show charset;

查看mysql支持的校验集

sql 复制代码
show collation;

按指定字符集和校验集创建数据库

sql 复制代码
create database 数据库名 charset=utf8 collate utf8_general_ci;

字符集:gbk 校验集: gbk_chinese_ci;

sql 复制代码
create database 数据库名 charset=gbk collate gbk_chinese_ci;
校验规则对数据库的影响

不区分大小写

创建一个数据库,校验规则使用 utf8_general_ci (不区分大小写)

sql 复制代码
create database test1 collate utf8_general_ci;

进入test1数据库内部

sql 复制代码
use test1

创建表

sql 复制代码
create table person(name varchar(20));

向表中插入数据

sql 复制代码
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在表中查找一个数据,结果:

区分大小写

创建一个数据库,校验规则使用 utf8_bin (区分大小写)

sql 复制代码
create database test2 collate utf8_bin;

进入test2数据库内部

sql 复制代码
use test2

创建表

sql 复制代码
create table person(name varchar(20));

向表中插入数据

sql 复制代码
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在表中查找一个数据,结果:

可以发现它们得出的结果是不同的,不区分大小写得出了两个答案,区分大小写以后得出了一个答案。再根据排序看看结果如何:

sql 复制代码
select * from 表名 order by name 

不区分大小写:

区分大小写:

2.删除数据库

方法一:

sql 复制代码
drop database 数据库名(db_name);

方法二:

if exists : 表示存在的意思,就是说如果该数据库存在就删除

sql 复制代码
drop database if exists 数据库名(db_name);

3.查看数据库

sql 复制代码
show databases 数据库名(db_name)

4.显示创建语句

sql 复制代码
show create database 数据库名

5.查看当前所在的数据库

sql 复制代码
select database();

6.修改数据库的字符集和校验集

sql 复制代码
alter database 数据库名 charset=字符集名 collate 校验集名

7.数据库的备份和恢复

数据库的备份

  1. 备份单个数据库
  • 3306:表示端口号
  • test.sql :表示文件名,后缀为sql,文件名可更改
sql 复制代码
mysqldump -u root -P 3306 -p 密码 -B 数据库名 > test.sql(数据库存放路径);
  1. 备份多个数据库
sql 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 > 数据库存放路径;
  1. 备份数据库中的某些表
sql 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 > test.sql;

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

数据库的还原

在mysql服务器中,调用下面指令

sql 复制代码
source 要还原文件的路径;

8.查看连接情况

sql 复制代码
show processlist

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

二、表

1.创建表

sql 复制代码
create table 表名 (
field1 datatype,
field1 datatype,
field1 datatype
)character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field:列名

  • datatype:列的类型

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

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

示例:

sql 复制代码
create table if not exists usr1(
name varchar(20) comment '用户名',
password char(32) comment '用户名',
birthday date comment '用户的生日'
)character set utf8 collate utf8_general_ci engine MyIsam;

说明:存储引擎不同,创建的表结构不同。

2.查看表结构

查看表结构

sql 复制代码
desc 表名;

查看创建表时的语句

sql 复制代码
show create table 表名;

3.修改表

修改表名

sql 复制代码
alter table 原表名 rename to 需要的表名

向表中插入数据

sql 复制代码
insert into 表名 values(数据1,数据2,数据3,....);

在表中新增一列

sql 复制代码
alter table 表名 add 列名 varchar(128) comment '描述' after birthday;

说明:

  • varchar(128) : 表示类型大小,根据情况自己定义
  • comment '描述' : 这个描述可自行确定。
  • after birthday :表示在birthday这列的后面插入一列

修改表中某列的属性

sql 复制代码
alter table 表名 modify 列名 属性;

改的属性会将原属性覆盖

删除表中某一列

sql 复制代码
alter table 表名 drop 列名;

删除以后那么这一列就没了,想找也找不到了,所以删除要慎重考虑

更改某一列的名称

sql 复制代码
alter table 表名 change 原列名 需要的列名 新的属性;

说明:使用change 时,该列的属性全都会被改,所以如果我们需要保持原属性不变,就输入原属性的值即可

4.表的删除

语法格式:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

sql 复制代码
drop table 表名;

注意:表删除以后就没了,慎重考虑

相关推荐
加酶洗衣粉2 小时前
MongoDB部署模式
数据库·mongodb
Suyuoa2 小时前
mongoDB常见指令
数据库·mongodb
添砖,加瓦2 小时前
MongoDB详细讲解
数据库·mongodb
Zda天天爱打卡2 小时前
【趣学SQL】第二章:高级查询技巧 2.2 子查询的高级用法——SQL世界的“俄罗斯套娃“艺术
数据库·sql
我的运维人生2 小时前
MongoDB深度解析与实践案例
数据库·mongodb·运维开发·技术共享
步、步、为营2 小时前
解锁.NET配置魔法:打造强大的配置体系结构
数据库·oracle·.net
张3蜂3 小时前
docker Ubuntu实战
数据库·ubuntu·docker
神仙别闹3 小时前
基于Andirod+SQLite实现的记账本APP
数据库·sqlite
苏-言3 小时前
MyBatis最佳实践:动态 SQL
数据库·sql·mybatis
doubt。5 小时前
【BUUCTF】[RCTF2015]EasySQL1
网络·数据库·笔记·mysql·安全·web安全