您现在的位置是:首页 >技术教程 >数据库【库,表操作】网站首页技术教程

数据库【库,表操作】

世_生 2024-06-17 10:43:07
简介数据库【库,表操作】

简单了解

1.连接数据库服务器

mysql -h 127.0.0.1 -P 3306 -u root -p

  • 其中-h是服务器的IP地址,没有填写127.0.0.1默认连接本地
  • 3306是端口号
  • root是用户名
  • -p 后面可以跟写密码

2.创建数据库

create database 数据库名字;
创建数据库,本质创建一个目录。

就是在 /var/lib/mysql路径下创建了dome1数据库(目录)。
路径可以在/etc/my.cnf中查看MySQL的配置文件。

3.创建表

create table 表名(...);
在这里插入图片描述
本质是在使用的数据库目录中创建了文件。

4.使用数据库

use 数据库名字;

5.数据库框架

在这里插入图片描述

6.SQL的分类

  • DDL :数据定义语言,用来维护存储数据的结构,代表指令有(create、dorp、alter)
  • DML :数据库操纵语言,用来对数据进行操作,代表指令有(insert、delete、updata)
  • DCL :数据库控制语言,主要负责权限管理和事务,代表指令有(grant、revoke、commit)

7.存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎
show engines;

库操作

1.创建数据库

create database if not exists 数据库名字;
后面可以跟写charset utf8collate utf8_general_ci
表示字符集和校对规则。

2.查看系统默认字符集以及校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

3.查看数据库支持的字符集和校验规则

show charset;
show collation;

4.查看数据库

show databases;
在这里插入图片描述

5.显示数据库语句

show create database 数据库名字;
在这里插入图片描述

6.删除数据库

drop database 数据库名字;
删除后,该数据库对应的表数据全部被删。

7.修改数据库

alter database 数据库名字 [...];

8.备份和恢复

mysqldump -P 3306 -p 密码 -B 数据库名字 > 数据库备份存储的文件路径;
如:
在这里插入图片描述
source ./dome.sql;
在这里插入图片描述
注意:

  • 如果备份的不是整个数据库,而是其中的一张表 mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
  • 同时备份多个数据库 mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用
    source来还原。

9.查看连接情况

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

表操作

1.创建表

create table user(
     id int,
     name varchar(11) commit '用户名',
     pssword varchar(11) commit '用户密码'
)character set utf8;

2.查看表结构

desc 表名;
在这里插入图片描述

3.修改表结构

先插入两条记录

insert into user (id,name,pssword) values (1,'猫爷','123456'),(2,'狗哥','654321');

select * from user;
+------+--------+---------+
| id   | name   | pssword |
+------+--------+---------+
|    1 | 猫爷   | 123456  |
|    2 | 狗哥   | 654321  |
+------+--------+---------+
						1、增加表中增加一个字段

在该表中添加一个年龄字段

alter table user add age int comment '用户的年龄';

desc user;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| name    | varchar(11) | YES  |     | NULL    |       |
| pssword | varchar(11) | YES  |     | NULL    |       |
| age     | int(11)     | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

select * from user;
+------+--------+---------+------+
| id   | name   | pssword | age  |
+------+--------+---------+------+
|    1 | 猫爷   | 123456  | NULL |
|    2 | 狗哥   | 654321  | NULL |
+------+--------+---------+------+

新添加字段后,行记录中的该字段为NULL。

语法:ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

						2、删除表中的一个字段
alter table user drop age;

desc user;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| name    | varchar(11) | YES  |     | NULL    |       |
| pssword | varchar(11) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

如果删除了有数据的字段,那么数据也就删除了。
语法:ALTER TABLE tablename DROP (column);

					3、修改表的一个字段
alter table user modify name varchar(33) comment '用户名';

desc user;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| name    | varchar(33) | YES  |     | NULL    |       |
| pssword | varchar(11) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

语法:ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);

其实不建议对已经创建好了的表修改其结构。第一,可能导致数据的丢失;第二,影响到一些业务逻辑,可能你修改了表结构,影响到了上层代码里面的逻辑,导致多读数据或者少读等。

					4、修改列名

把 name 列名修改 mingzi(拼音)

 alter table employee change name mingzi varchar(60); --新字段需要完整定义

desc employee;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | YES  |     | NULL    |       |
| mingzi  | varchar(60) | YES  |     | NULL    |       |
| pssword | varchar(11) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

4.修改表名

将表名user 修改为 employee

alter table user rename to employee;

其中 to 可以省略

修改完成
在这里插入图片描述

总结

记录学习MySQL的过程,不会止步于此,期待后文吧。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。