mysql制作数据库基础,简单的数据库制作

发布时间:2023-12-08

mysql制作数据库基础,简单的数据库制作

更新:2022-11-24 15:45

本文目录一览:

  1. MYSQL使用基础、进阶分享
  2. 如何用MySQL创建一个数据库
  3. MySQL数据库怎么创建?
  4. mysql怎么创建数据库

MYSQL使用基础、进阶分享

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品,是最流行的关系型数据库管理系统之一。 端口是3306。 表很多时,使用linux脚本,需要根据需要修改一下: 和创建一样,可以加上 if exists 可两篇文章: 如: 用于在已有的表中添加、删除或修改列。 添加 ADD 或 默认是添加到最后,但可以指定位置。FIRST:添加最前 AFTER 字段名:添加指定字段之后 例子: 删除 DROP 修改 MODIFY 主要修改原列的类型或约束条件 同样可以用 FIRSTAFTER 字段名,代表的是修改到哪里。 修改字段名 CHANGE 可以把表2的数据复制到表1中,但不能复制约束性条件。 单行 多行,注意只有一个 VALUES: 不写 (行1, 行2...) 这一部分的话,默认一一对应 除了以上方法外,还可以用 SET 为每一行附上相应的值。 假如没有筛选的话,就给全部都修改了。可以用 WHERE 筛选。 假如没有筛选的话,就给全部删除了。相当于清空。 清空 先把表删除,然后再建一个。与 DELETE FROM 相比,TRUNCATE 的效率更快,因为 DELETE FROM 是把记录逐条删除的。 查询执行的顺序 FROM -- WHERE -- SELECT -- GROUP BY -- HAVING -- ORDER BY -- LIMIT 注意 当数据很大,上百万的时候,使用 LIMIT ... OFFSET .. 的方式进行分页十分浪费资源且耗时长。最好是结合 WHERE 使用,如: REGEXP 使用正则表达进行匹配。查询时,需要搭配 WHEREHAVING 使用。 两个表之间有交集且要用到两个表的数据时,可以使用内连接查询。 LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。 用法: RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。把 LEFT JOIN 的表1、表2调换顺序,就是 RIGHT JOINFULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行。相当于结合了 LEFT JOINRIGHT JOIN 的结果。 但 MySQL 中不支持 FULL OUTER JOIN。 即 SELECT 嵌套。 IN 一个查询结果作为另一个查询的条件。如: EXISTS 用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 FalseTrue 时执行。如: 索引的本质是一种排好序的数据结构。利用索引可以提高查询速度。 常见的索引有: MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。外键的使用条件: 外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。 对已有的两个表增加外键 比如:主表为A,子表为B,外键为 aid,外键约束名字为 a_fk_b 为子表添加一个字段,当做外键 为子表添加外键约束条件 假如删除记录报错:[Err] 1451 - Cannot delete or update a parent row: a foreign key constraint fails (...) 这是因为MySQL中设置了 foreign key 关联,造成无法更新或删除数据。可以通过设置 FOREIGN_KEY_CHECKS 变量来避免这种情况。

  • 第一步:禁用外键约束,我们可以使用:SET FOREIGN_KEY_CHECKS=0;
  • 第二步:删除数据
  • 第三步:启动外键约束,我们可以使用:SET FOREIGN_KEY_CHECKS=1;
  • 查看当前 FOREIGN_KEY_CHECKS 的值,可用如下命令:SELECT @@FOREIGN_KEY_CHECKS; 使用 UNION 来组合两个查询,如果第一个查询返回 M 行,第二个查询返回 N 行,那么组合查询的结果一般为 M+N 行。 每个查询必须包含相同的列、表达式和聚集函数。 默认会去除相同行,如果需要保留相同行,使用 UNION ALL。 只能包含一个 ORDER BY 子句,并且必须位于语句的最后。 我们一般使用 START TRANSACTIONBEGIN 开启事务,COMMIT 提交事务中的命令,SAVEPOINT:相当于设置一个还原点,ROLLBACK TO:回滚到某个还原点下 一般的使用格式如下: 开启事务时,默认加锁 根据类型可分为共享锁(SHARED LOCK)和排他锁(EXCLUSIVE LOCK)或者叫读锁(READ LOCK)和写锁(WRITE LOCK)。 根据粒度划分又分表锁和行锁。表锁由数据库服务器实现,行锁由存储引擎实现。 除此之外,我们可以显示加锁 加锁时,如果没有索引,会锁表,如果加了索引,就会锁行 InnoDB 默认支持行锁,获取锁是分步的,并不是一次性获取所有的锁,因此在锁竞争的时候就会出现死锁的情况 解决方法: 即 ACID 特性: 由于并发事务会引发上面这些问题,我们可以设置事务的隔离级别解决上面的问题。 MySQL 的默认隔离级别(可重复读) 查看当前会话隔离级别 方式1:
SELECT @@tx_isolation;

方式2:

SHOW VARIABLES LIKE 'transaction_isolation';

设置隔离级别: 主从集群的示意图如下: 主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程。 同步流程: 由于 MySQL 主从集群只会从主节点同步到从节点,不会反过来同步,所以需要读写分离 读写分离需要在业务层面实现,写数据只能在主节点上完成,而读数据可以在主节点或从节点上完成 索引是帮助 MySQL 高效获取数据的排好序的数据结构 MySQL 的索引有: 推荐两个在线工具: 简单来说,B树是在红黑树(一个平衡二叉树)的基础上将一个节点存放多个值,实现的,降低了树的高度,每个节点都存放索引及对应数据指针,同一层的节点是递增的 而 B+树在 B 树的基础上进行优化,非叶子节点存放子节点的开始的索引,叶子节点存放索引和数据的指针,且叶子节点之间有双向的指针 如下示意图: 不同的引擎,主键索引存放的数据也不一样,比如常见的 MyISAM 和 InnoDB

  • MyISAM 的 B+树叶子节点存放表数据的指针
  • InnoDB 的 B+树叶子节点存放处主键外的数据 其他的: 即多个列组成一个索引,语法: 由于联合索引的 B+树的结构,根据列建立,所以我们的查找条件也要根据索引列的顺序(WHERE column1=x, column2=y, columnN...),否则会全表扫描 如果你对列进行了(+-*/!),那么都将不会走索引。 OR 引起的索引失效 OR 导致索引是在特定情况下的,并不是所有的 OR 都是使索引失效,如果 OR 连接的是同一个字段,那么索引不会失效,反之索引失效。 这个我相信大家都明白,模糊搜索如果你前缀也进行模糊搜索,那么不会走索引。
  • 不走索引。
  • 走索引。 所以设计表的时候,建议不可为空,而是将默认值设置为 "" (NOT NULL DEFAULT "")

如何用MySQL创建一个数据库

MySQL是一个很常用的数据库工具。下面,我们来看看如何使用MySQL创建一个数据库吧。 01 打开MySQL 首先要确保本地电脑中已安装上MySQL工具,并打开它,再连接上MySQL服务器,如下图所示: 02 新建数据库 在链接的MySQL数据库中右击,选择【新建数据库】选项,如下图所示: 03 数据库名称 会弹出一个新建数据库窗口,【数据库名称】见名知意即可,比如名为 db_user,如下图所示: 04 字符集和序规则 字符集以 utf 开头即可,排序规则选择 utf8_general_ci,点击确定,即可创建一个数据库,如下图所示:

MySQL数据库怎么创建?

都是很基础的 SQL 语句

  • 创建表用 CREATE TABLE
  • 插入数据用 INSERT INTO xxx VALUES
  • 查询数据用 SELECT 字段 FROM 表 WHERE 条件
  • 排序:升序用 ASC,降序用 DESC

mysql怎么创建数据库

mysql创建数据库方法如下:

  1. 创建数据库。在MySQL命令行中,输入命令 CREATE DATABASE 数据库名;。把命令中的替换为你的数据库的名称。其中不能包含空格。例如,要创建包含所有美国各州的数据库,可以输入 CREATE DATABASE us_states;
  2. 显示可用数据库列表。输入命令 SHOW DATABASES; 列出所有已保存的数据库。除了你所创建的数据库外,你还将看到一个 mysql 数据库和一个 test 数据库。当前你可以忽略它们。
  3. 选择你的数据库。创建数据库后,你需要在对其进行编辑前先选中它。输入命令 USE us_states