目录
一、基本语句
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. 测试连接
完成上述步骤后,重新“测试连接”,成功连接。