数据库:库的操作

库的操作

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

相关推荐
JAVA学习通2 小时前
数据库备份与恢复(2)
数据库
lhrimperial2 小时前
MongoDB核心技术深度解析题
数据库·mongodb
宠..2 小时前
为单选按钮绑定事件
运维·服务器·开发语言·数据库·c++·qt·microsoft
宠..2 小时前
对单选按钮分组
开发语言·数据库·c++·qt·安全·安全性测试
Ashley_Amanda2 小时前
SAP ABAP 开发全攻略:从核心编程到最佳实践
大数据·数据库·sql
黎相思2 小时前
附录:SQLite介绍
数据库·sqlite
毕设十刻2 小时前
基于Vue的新生入学报道管理系统(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
Vic101012 小时前
Redis防重复点击与分布式锁
java·数据库·redis·分布式
罗政3 小时前
mybatis-plus插件解决sql报错:this is incompatible with sql_mode=only_full_group_by ”
数据库·sql·mybatis