MySQL数据库的基本操作

news/2025/1/13 3:37:09/

一、终端进入数据库

/usr/local/mysql/bin/mysql -u root -p

然后输入数据库密码即可

二、查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| demo               |
| demo01             |
| hhh                |
| information_schema |
| itcaststore        |
| mydatabase         |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
10 rows in set (0.01 sec)mysql> show databases-> ;
+--------------------+
| Database           |
+--------------------+
| demo               |
| demo01             |
| hhh                |
| information_schema |
| itcaststore        |
| mydatabase         |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
10 rows in set (0.18 sec)

注意:其实写法一和写法二是一样的。
因为使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,SQL 语句的命令结束符为分号 ;

三、创建数据库

mysql> create database demo02;
Query OK, 1 row affected (0.10 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| demo               |
| demo01             |
| demo02             |
| hhh                |
| information_schema |
| itcaststore        |
| mydatabase         |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
11 rows in set (0.01 sec)

创建数据库demo02

四、删除数据库

mysql> drop database hhh-> ;
Query OK, 0 rows affected (0.24 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| demo               |
| demo01             |
| demo_03            |
| information_schema |
| itcaststore        |
| mydatabase         |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
10 rows in set (0.01 sec)

这样hhh这个无用的数据库就删除掉了

五、切换使用的数据库

使用demo01数据库

mysql> use demo01
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed

六、查询数据表

mysql> use demo01
Database changed
mysql> show tables;
Empty set (0.00 sec)

查询到这个demo01数据库里面没有表

七、建立数据表

mysql> create table if not exists `student` (-> `id` int unsigned auto_increment,-> `age` VARCHAR(100) NOT NULL,-> `sex` VARCHAR(100) NOT NULL,-> PRIMARY KEY(`id`)-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 1 warning (0.30 sec)mysql> show tables;
+------------------+
| Tables_in_demo01 |
+------------------+
| student          |
+------------------+
1 row in set (0.03 sec)

创建一个名叫student的表,有三个字段:id、age、sex,将id设为主键,存储引擎为InnoDB,默认编码为utf8。

CREATE TABLE table_name (column_name column_type);

八、显示表的结构

mysql> explain student;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int unsigned | NO   | PRI | NULL    | auto_increment |
| age   | varchar(100) | NO   |     | NULL    |                |
| sex   | varchar(100) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

九、插入数据

INSERT INTO table_name ( field1, field2,...fieldN)VALUES( values, values2,...valueN);
如果数据是字符型,必须使用单引号或者双引号,如:“value”。
varchar也是字符串类型,是变长字符串;char是定长字符串。
mysql> INSERT INTO student-> (id, age, sex)-> VALUES-> (1, "20", "男");
Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO student (id, age, sex) VALUES (2, 21, "男");
Query OK, 1 row affected (0.00 sec)

这里的第二次插入的时候,age我用的是整型的21,也没有发生报错,可能是会自动转成varchar类型存储到表中(不确定)。

十、查询表中数据

mysql> SELECT * from student-> ;
+----+-----+-----+
| id | age | sex |
+----+-----+-----+
|  1 | 20  | 男  |
|  2 | 21  | 男  |
+----+-----+-----+
2 rows in set (0.01 sec)

查询student表中 age 在20到25之间的学生信息,显示这些学生信息的id、age、sex字段,并将这些信息按照id字段逆序排序

mysql> select id, age, sex-> from student-> where age between 20 and 25-> order by id desc;
+----+-----+-----+
| id | age | sex |
+----+-----+-----+
|  7 | 20  | 女  |
|  6 | 20  | 男  |
|  5 | 20  | 女  |
|  4 | 23  | 女  |
|  3 | 22  | 男  |
|  2 | 21  | 男  |
|  1 | 20  | 女  |
+----+-----+-----+
7 rows in set (0.00 sec)

十、删除表中数据

mysql> DELETE FROM student where id=2;
Query OK, 1 row affected (0.01 sec)mysql> select * from student;
+----+-----+-----+
| id | age | sex |
+----+-----+-----+
|  1 | 20  | 男  |
+----+-----+-----+
1 row in set (0.01 sec)

删除id=2的学生的信息

DELETE FROM table_name WHERE Clause

● 如果没有指定 WHERE 子句,MySQL 表中的所有记录都将被删除。
● 可以在单个表中一次性删除记录。

十一、修改数据

mysql> update student set sex="女" -> where id=1;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from student;
+----+-----+-----+
| id | age | sex |
+----+-----+-----+
|  1 | 20  | 女  |
+----+-----+-----+
1 row in set (0.00 sec)

将id为1的学生信息的性别修改为“女”
UPDATE table_name SET field1=new_value1, field2=new_value2
WHERE Clause
● 可以同时更新一个或多个字段

十二、删除数据表

mysql> drop table student;
Query OK, 0 rows affected (0.10 sec)mysql> show tables;
Empty set (0.00 sec)

删除student这个表后,查询一下看看是否还存在,显示Empty,就说明数据库中没有表了(自己建了一个,然后再把它删除),那就说明删除成功了。

十三、两个终端间是否相关联的

是的。在一个终端上删除数据库,另一个终端上,也会显示该数据库被删除。
下面删除了demo_03这个数据库。


十四、MySQL 清屏命令

system clear

十五、查看MySQL支持的存储引擎

mysql> show engines-> ;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.02 sec)

十六、查看指定表使用的存储引擎

mysql> show create table staffs;
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                    |
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| staffs | CREATE TABLE `staffs` (`id` int DEFAULT NULL,`name` char(10) DEFAULT NULL,`age` int DEFAULT NULL,KEY `id_name_age_index` (`id`,`name`,`age`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)SHOW CREATE TABLE table_name;

十七、切换指定表使用的存储引擎

mysql> alter table staffs engine = myisam;
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> show create table staffs;
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                                                                    |
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| staffs | CREATE TABLE `staffs` (`id` int DEFAULT NULL,`name` char(10) DEFAULT NULL,`age` int DEFAULT NULL,KEY `id_name_age_index` (`id`,`name`,`age`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)alter table table_name engine = engine_name; 

十八、MySQL数据库的文件存放在哪个目录?

mysql> show variables like 'datadir';
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| datadir       | /usr/local/mysql/data/ |
+---------------+------------------------+
1 row in set (0.37 sec)

表结构和表数据的文件都会存放在这个目录里。

(base) dns@SUNNY-MacBook-Air mysql % sudo -i 
SUNNY-MacBook-Air:~ root# ls /usr/local/mysql/data/demo
t_lark_task_1.ibd	t_schedule_cfg.ibd	t_schedule_pos.ibd

opt作为后缀的文件存放的会是默认的字符集和字符校验规则
frm作为后缀的文件存放的会是表结构
ibd作为后缀的文件存放的会是表数据


http://www.ppmy.cn/news/452256.html

相关文章

【黑马头条】解决P11@EnableDiscoveryClient注解无法导入爆红、bootstrap.yml配置文件图标无法显示成带云朵的小绿叶图标

本期目录 1. 问题描述2. 问题原因3. 解决方法 1. 问题描述 如果按黑马老师给的 heima-leadnews-service 模块的 pom 文件所写的依赖,会发现有 2 个 Bug : 首先,启动类 UserApplication 上的服务发现开关注解 EnableDiscoveryClient 不存在。 …

CPU内核和逻辑处理器的区别

看到CPU的信息中写着:4个内核,4个逻辑处理器。想到内核和逻辑处理器的区别是什么?为什么要分开来记录,会出现内核和逻辑处理器数量不一致的情况吗? 逻辑处理器的确可能会比内核更多,因为“超线程”技术的使…

处理器核(core)、处理器(cpu)区别

处理器核(core): 是指处理器内部最核心的部分,是真正的处理器内核; 处理器(cpu): 是一个完整的SoC,包含了处理器内核和其他的设备或存储器。

通常所说的计算机CPU芯片包括( ),CPU包括什么

选C cpu是中央处理器的简称,主要包括运算逻辑部件、寄存器部件和控制部件等。 中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及…

【前端知识】React 基础巩固(十三)——列表渲染

React 基础巩固(十三)——列表渲染 列表渲染 在 React 中没有像 Vue 模块语法中的 v-for 指令,而是需要我们通过 JS 代码的方式组织数据,转成 JSX在 React 中,展示列表最多的方式就是使用数组的 map 高阶函数在展示数组前,有时会…

cpu,内核和逻辑处理器的关系

一个CPU可以有多个内核,内核就是真正的物理核心,而往往处理器会使用超线程技术,其将每个内核又可以分为两个线程,而线程技术就是在单个内核基础上提供两个逻辑处理器,利用特殊的硬件指令,把两个逻辑内核模拟…

CPU 是怎样工作的

原文首发于 Guanngxu 的个人博客:深入理解计算机系统——CPU 是怎样工作的? 参考内容: 处理器是如何工作的 《编码:隐匿在计算机软硬件背后的语言》——[美] Charles Petzold CPU 大家应该都不会陌生,日常用的手机、电…

计算机组成.就是它在运算.处理器CPU

处理器是要好好复习了,毕竟考试重点主要的内容感觉还是在指令方面,包括指令的格式、指令集的设计、指令流水线、指令级并行。东西慢慢整理吧,如果一边在网上搜索的估计会找到很多资料,但是耗费的时间太多了国内的教材虽然有一定的…