MySQL笔记

发布于:2025-03-21 ⋅ 阅读:(23) ⋅ 点赞:(0)

一、基本语句

1、建表

-- 创建 users 表
CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 创建 orders 表
CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    order_date DATE NOT NULL,
    total_amount DECIMAL(10, 2) NOT NULL
);

2、新增

-- 插入用户数据
INSERT INTO users (username, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');

-- 插入订单数据
INSERT INTO orders (user_id, order_date, total_amount) VALUES
(1, '2023-10-01', 100.00),
(2, '2023-10-02', 200.00);

3、查询

-- 查询用户及其订单
SELECT u.username, o.order_id, o.order_date, o.total_amount
FROM users u
JOIN orders o ON u.user_id = o.user_id;

4、修改

--更新数据
UPDATE Users SET UserName = @UserName, Email = @Email WHERE UserID = @UserID

5、删除

--删除数据
DELETE FROM Users WHERE UserID = @UserID

-- 删除表
DROP TABLE orders;

二、存储过程

1、新建

--存储过程-查询所有订单
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetUserOrders`()
BEGIN
  SELECT u.username, o.order_id, o.order_date, o.total_amount
  FROM users u
  JOIN orders o ON u.user_id = o.user_id;
END

--存储过程-根据 姓名 查询订单
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetUserOrdersByName`(IN iName varchar(50))
BEGIN
  SELECT u.username, o.order_id, o.order_date, o.total_amount
  FROM users u
  JOIN orders o ON u.user_id = o.user_id
  WHERE username = iname;
END

2、执行

--执行存储过程
CALL GetUserOrders();

CALL GetUserOrdersByName('Bob');

三、数据库配置远程连接

1、登录数据库:

win+r,输入cmd,输入命令:
mysql -uroot -p 
输入数据库登录密码:

在这里插入图片描述

2、先创建用户

CREATE USER 'root'@'%' IDENTIFIED BY '1234';
  • 将 your_password 替换为你想要设置的密码。
  • ‘root’@‘%’ 表示允许 root 用户从任何主机连接。如果只想允许特定主机(如 192.168.9.213),可以将 % 替换为 192.168.9.213。

3、再分配权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  • ALL PRIVILEGES 表示授予所有权限。
  • 其中*.* 表示所有数据库和所有表。
  • WITH GRANT OPTION 表示允许用户将自己的权限授予其他用户。

4、刷新权限

FLUSH PRIVILEGES;

5. 测试连接

完成上述步骤后,重新“测试连接”,成功连接。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到