嗳歉楞 发表于 2025-6-1 20:50:28

MySQL数据库

MySQL Gitee笔记
小皮面板(PHP Study)
安装路径不能包含“中文”或者“空格”,否则会报错。

 点击设置-文件位置-MySQL,打开文件路径,复制路径到Windows设置环境变量


设置环境变量:右键此电脑-属性-高级系统设置-高级-环境变量-上边是用户环境变量,下面是系统环境变量。
在系统变量中找到Path-双击或者点编辑

 点击新建,把X:\phpstudy_pro\Extensions\MySQLX.X.X路径复制上去。然后一路的确定即可。

 把X:\phpstudy_pro\Extensions\MySQLX.X.X\bin文件配置到用户变量中

 点击新建,把X:\phpstudy_pro\Extensions\MySQLX.X.X\bin路径复制上去,然后一路确定即可。

打开CMD终端,输入:mysql -uroot -proot

出现Welcome to the MySQL monitor表示配置成功。
数据库:
1.初识MySQL语句:
每条命令以 ;或 \g 或 \G 结束
注释:
单行:# 或 -- ... --
多行:/* ... */
增:create database 数据库名称 charset utf-8;

推荐:create database 数据库名称 default character set utf8 collate utf8_general_ci;

查看数据库的创建细节:show create database 数据库名称;

查看所有数据库:show databases;

切换数据库:use 数据库名称;
查看当前所在数据库:select database();

改:alter database 数据库名称 charset gbk;

删:drop database 数据库名称;

数据表:
增:create table 数据表名称(字段 数据类型(宽度),约束,功能);


查:show create table 数据表名称;


查看当前数据库所有表:show tables;

数据表的结构形式查看:desc 数据表名称;


改:alter table 数据表名称 modify 字段 数据类型(宽度),约束,功能;

alter table 数据表名称 change 原字段 改后字段 数据类型(宽度);

删:drop table 数据表名称;

数据表数据:
增:insert 数据表名称(字段1,字段2) values(数据1,'数据2'),(数据3,'数据4');
或insert into 数据表名称(字段1,字段2) values(数据1,'数据2'),(数据3,'数据4');
查:select *from 数据表名称;

 select *from 数据库名称.数据表名称;

 select 字段1,字段2…… from 数据库名称.数据表;

 改:update 数据库名称.数据表名称 set 字段=数据;

 更改一条数据:UPDATA 数据库名称.数据表名称 SET 字段=数据 WHERE 字段=数据;

 更改一条数据:update 数据库名称.数据表名称 set 字段=数据 where 字段=数据;

删除一条数据:delete 数据表 where 字段=数据;

复制:表结构+记录:create table 新数据表名称 select 字段 from 原数据表名称;

只复制表结构不复制记录:create table 新数据表名称 select 字段 from 原数据表名称 where条件不成立;

like:只复制表结构不复制记录 create table 新数据表名称 like 原数据表名称;

删:delete from 数据表名称;

 2.库操作:
①.系统数据库

information_schema:MySQL 等数据库管理系统里的一个特殊系统数据库。虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数。它的用途是存储数据库元数据,也就是有关数据库本身的数据,像数据库、表、列、索引等的定义和信息。如:用户表信息,列信息,权限信息,字符信息等。
mysql:授权库,主要存储系统用户的权限信息。
performance_schema:MySQL5.5开始新增的一个数据库;主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件, SQL 语句的执行、锁的等待、线程的活动等。
sys:MySQL 5.7 版本引入的一个系统数据库,它包含了一系列的视图和存储过程,用于提供关于数据库服务器性能、配置、查询执行等方面的详细信息。这些视图和存储过程的数据是基于底层的系统表和性能架构表进行整合和处理的。通过查询sys数据库中的视图,管理员和开发人员可以方便地获取到数据库运行状态的各种指标,例如查询执行时间、数据库锁信息、系统资源使用情况等,从而更好地进行性能优化、故障排查和系统管理。
test:MySQL数据库系统自动创建的测试数据库。
②.help:查看命令的使用方法。








③.表的操作:
存储引擎:就是表的数据类型。
查看MySQL支持的存储引擎:show engines;

MySQL自带的库:show create table mysql.user\G

 显示方式:show create table 数据表名称\G

数据类型:
1. 整数类型

类型字节大小有符号范围(Signed)无符号-范围(Unsigned)TINYINT1-128 ~ 1270 ~ 255SMALLINT2-32768 ~ 327670 ~ 65535MEDIUMINT3-8388608 ~ 83886070 ~ 16777215INT/INTEGER4-2147483648 ~21474836470 ~ 4294967295BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 184467440737095516152. 字符串

类型说明使用场景CHAR固定长度,小型数据身份证号、手机号、电话、密码VARCHAR可变长度,小型数据姓名、地址、品牌、型号TEXT可变长度,字符个数大于 4000存储小型文章或者新闻LONGTEXT可变长度, 极大型文本数据存储极大型文本数据3. 时间类型

类型字节大小示例DATE4'2022-01-01'TIME3'12:29:59'DATETIME8'2020-01-01 12:29:59'YEAR1'2017'TIMESTAMP4'1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC 查看字符串的长度:select char_length(字段) from 数据表;

 设置几个字节长度就显示几个字节长度:SET sql_mode ='PAD_CHAR_TO_FULL_LENGTH';

 枚举类型enum:单选。只能在给定的范围内选择一个值。
集合类型set:多选。在给定的范围内一个或一个以上的值。

UNIQUE 是一个重要的约束条件,主要用于保证表中某一列或者多列组合的值具有唯一性,即表中不会存在重复的记录。
单列唯一:
-- 方式一
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) UNIQUE,
    username VARCHAR(50)
);   
-- 方式二
CREATE TABLE department (
    id INT,
    name CHAR(10),
    UNIQUE(id),
    UNIQUE(name)
); 

多列&联合唯一:
CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_id INT,
    product_id INT,
    order_date DATE,
    UNIQUE (customer_id, product_id, order_date)
);   
 primary key主键:是一个极为关键的约束条件,不为空且唯一,它的作用是唯一标识表中的每一行记录。
单列主键:当表中某一列的值能够保证唯一性时,可将该列设为主键。
CREATE TABLE students (
    student_id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);   
 多列&联合主键:若单靠一列无法保证记录的唯一性,可将多列组合起来设为主键。
CREATE TABLE enrollments (
    student_id INT,
    course_id INT,
    enrollment_date DATE,
    PRIMARY KEY (student_id, course_id)
);
 修改数据表时添加主键:
-- 单列主键:
ALTER TABLE 数据表
ADD PRIMARY KEY (字段);
-- 多列主键:
ALTER TABLE 数据表
ADD PRIMARY KEY (字段1, 字段2); 删除主键:
ALTER TABLE 数据表
DROP PRIMARY KEY;   AUTO_INCREMENT 是一个非常实用的约束条件,主要用于为表中的某一列自动生成唯一的整数值,通常与 PRIMARY KEY 约束一起使用,为表中的每一行记录生成一个唯一的标识符。
CREATE TABLE 数据表 (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100)
);除了在创建表时使用 AUTO_INCREMENT,它在修改表结构、数据插入、重置自增序列等场景中也有重要应用。
可以使用 ALTER TABLE 语句来实现。
-- 创建一个不含 AUTO_INCREMENT 的表
CREATE TABLE products (
    product_id INT,
    product_name VARCHAR(50)
);

-- 为 product_id 列添加 AUTO_INCREMENT 属性
ALTER TABLE products
MODIFY COLUMN product_id INT AUTO_INCREMENT PRIMARY KEY;
-- 移除 product_id 列的 AUTO_INCREMENT 属性
ALTER TABLE products
MODIFY COLUMN product_id INT;

-- 清空表数据
DELETE FROM products;

-- 重置自增序列从 1 开始
ALTER TABLE products AUTO_INCREMENT = 1;

-- 复制 products 表的结构到 new_products 表
CREATE TABLE new_products LIKE products;查询变量名称:show variables like 'auto_inc%';

 设置auto_increment步长:set global auto_increment_increment=3;
设置auto_increment起始偏移量:set global auto_increment_offset=2;

<strong>强调:auto_increment_offset要
页: [1]
查看完整版本: MySQL数据库