大家好,欢迎来到程序视点!我是你们的老朋友.小二!
前言MySQL数据库操作,之前也分享了很多了。今天来一个完全流程版本的指南!内容不高深,但MySQL操作的基本整体流程必备!
一、MySQL连接与基础操作1.1 连接MySQL服务器本地连接:
代码语言:javascript代码运行次数:0运行复制mysql -u root -p
进入MySQL安装目录的bin文件夹后执行root用户初始可能无密码,直接回车即可成功连接后提示符变为mysql>远程连接:
代码语言:javascript代码运行次数:0运行复制mysql -h110.110.110.110 -u root -p123
-h参数指定远程主机IP密码直接跟在-p后无需空格退出MySQL:
代码语言:javascript代码运行次数:0运行复制exit;
1.2 密码管理修改root密码:
代码语言:javascript代码运行次数:0运行复制mysqladmin -u root -p旧密码 password 新密码
示例:
代码语言:javascript代码运行次数:0运行复制mysqladmin -u root password ab12 # 设置初始密码
mysqladmin -u root -p ab12 password djg345 # 修改密码
二、用户权限管理2.1 创建用户并授权创建全权限用户(谨慎使用):
代码语言:javascript代码运行次数:0运行复制GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
%表示允许从任何主机连接权限包括查询、插入、更新、删除创建受限用户:
代码语言:javascript代码运行次数:0运行复制GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
仅允许本地访问仅限mydb数据库操作三、数据库操作3.1 创建数据库基本创建:
代码语言:javascript代码运行次数:0运行复制CREATE DATABASE xhkdb;
完整创建流程(推荐):
代码语言:javascript代码运行次数:0运行复制CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON mydb.* TO 'mydb'@'localhost' IDENTIFIED BY 'password';
SET PASSWORD FOR 'mydb'@'localhost' = OLD_PASSWORD('password');
3.2 数据库管理查看所有数据库:
代码语言:javascript代码运行次数:0运行复制SHOW DATABASES;
删除数据库:
代码语言:javascript代码运行次数:0运行复制DROP DATABASE IF EXISTS xhkdb; # 安全删除方式
选择数据库:
代码语言:javascript代码运行次数:0运行复制USE xhkdb;
查看当前数据库:
代码语言:javascript代码运行次数:0运行复制SELECT DATABASE();
四、表操作4.1 创建表代码语言:javascript代码运行次数:0运行复制CREATE TABLE MyClass (
id INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name CHAR(20) NOT NULL,
sex INT(4) NOT NULL DEFAULT '0',
degree DOUBLE(16,2)
);
PRIMARY KEY设置主键AUTO_INCREMENT自动递增DEFAULT设置默认值4.2 表管理删除表:
代码语言:javascript代码运行次数:0运行复制DROP TABLE IF EXISTS MyClass;
修改表名:
代码语言:javascript代码运行次数:0运行复制RENAME TABLE MyClass TO YouClass;
五、数据操作5.1 插入数据代码语言:javascript代码运行次数:0运行复制INSERT INTO MyClass VALUES
(1,'Tom',96.45),
(2,'Joan',82.99),
(3,'Wang',96.59);
5.2 查询数据基本查询:
代码语言:javascript代码运行次数:0运行复制SELECT * FROM MyClass;
条件查询:
代码语言:javascript代码运行次数:0运行复制SELECT name, degree FROM MyClass WHERE degree > 90;
限制结果集:
代码语言:javascript代码运行次数:0运行复制SELECT * FROM MyClass ORDER BY id LIMIT 2; # 前2条记录
5.3 更新数据代码语言:javascript代码运行次数:0运行复制UPDATE MyClass SET name='Mary' WHERE id=1;
5.4 删除数据代码语言:javascript代码运行次数:0运行复制DELETE FROM MyClass WHERE id=1;
六、表结构修改6.1 添加字段代码语言:javascript代码运行次数:0运行复制ALTER TABLE MyClass ADD passtest INT(4) DEFAULT '0';
6.2 修改字段代码语言:javascript代码运行次数:0运行复制ALTER TABLE MyClass CHANGE name fullname VARCHAR(30);
6.3 删除字段代码语言:javascript代码运行次数:0运行复制ALTER TABLE MyClass DROP passtest;
6.4 索引管理添加索引:
代码语言:javascript代码运行次数:0运行复制ALTER TABLE MyClass ADD INDEX idx_name (name);
添加唯一索引:
代码语言:javascript代码运行次数:0运行复制ALTER TABLE MyClass ADD UNIQUE idx_card (cardnumber);
删除索引:
代码语言:javascript代码运行次数:0运行复制ALTER TABLE MyClass DROP INDEX idx_name;
七、数据库备份与恢复7.1 备份整个数据库代码语言:javascript代码运行次数:0运行复制mysqldump -u root -p database_name > backup.sql
7.2 备份单个表代码语言:javascript代码运行次数:0运行复制mysqldump -u root -p database_name table_name > table_backup.sql
7.3 备份数据库结构代码语言:javascript代码运行次数:0运行复制mysqldump -u root -p -d --add-drop-table database_name > struct_backup.sql
7.4 恢复数据库代码语言:javascript代码运行次数:0运行复制mysql -u root -p database_name < backup.sql
八、实用技巧8.1 查看MySQL版本代码语言:javascript代码运行次数:0运行复制SELECT VERSION();
8.2 查看当前时间代码语言:javascript代码运行次数:0运行复制SELECT NOW();
8.3 字符串连接代码语言:javascript代码运行次数:0运行复制SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
8.4 数学运算代码语言:javascript代码运行次数:0运行复制SELECT (4*4)/10+25; # 结果为26.60
九、完整实例9.1 创建学校数据库代码语言:javascript代码运行次数:0运行复制DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (
id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(10) NOT NULL,
address VARCHAR(50) DEFAULT '深圳',
year DATE
);
INSERT INTO teacher VALUES
(NULL,'allen','大连一中','1976-10-10'),
(NULL,'jack','大连二中','1975-12-23');
9.2 批量执行SQL文件代码语言:javascript代码运行次数:0运行复制mysql -u root -p < school.sql
或MySQL命令行中:
代码语言:javascript代码运行次数:0运行复制SOURCE school.sql;
十、安全建议避免使用%开放远程访问权限为每个应用创建单独的用户和数据库定期备份重要数据使用复杂密码并定期更换限制用户权限到最小必要范围通过掌握这些MySQL操作命令,您将能够高效地管理和维护MySQL数据库。建议在实际操作前先在测试环境练习,确保熟悉各项命令的效果和影响。