赞
踩
提示:记录MySQL的相关命令:
包含windows下的一些小知识
下载链接: https://dev.mysql.com/downloads/
具体下载步骤如下图所示:
第一步:
第二步:
第三步:
第一步:对下载的文件进行解压,将文件解压至自己想要存放的位置
第二步:将下面配置内容复制带ini文件中,配置文件中的basedir=D:\mysql-8.0.30-winx64为自己实际文件解压之后存放路径,datadir=E:\mysql\data为自己文件data存在路径,若无可自行创建
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 ----------是你的文件路径------------- basedir=D:\mysql-8.0.30-winx64 # 设置mysql数据库的数据的存放目录 ---------是你的文件路径data文件夹自行创建 #datadir=E:\mysql\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4
第三步:配置环境变量
右击“此电脑”->选择“属性”,进入如下图所示界面,点击“高级系统设置”
点击环境变量,选择“系统变量”->新建环境变量,变量名为:MYSQL_HOME 变量值为:D:\mysql-8.0.30-winx64(自己实际mysql存放的路径)
备注:如果系统环境变量中存在MYSQL_HOME,则不需新建,选中点击编辑即可
MYSQL_HOME环境变量添加完成之后,在系统环境变量中找到path(Path、PATH)变量,操作步骤如下图所示:在path环境变量中添加一条 %MYSQL_HOME%\bin,添加完成之后,点击确定。
第一步:初始化
windows环境下以管理员方式打开cmd命令窗口,进入mysql所在路径下的bin目录下如下图所示:
第二步:在bin目录下执行语句,得到下图所示结果,得到初始化root随机密码
mysqld --initialize --console
第三步:安装mysql服务并启动
安装命令:
mysqld --install mysql
启动命令:
net start mysql
第四步:连接MySQL并修改密码
连接MySQL:
mysql -uroot -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '111111';
# 启动
net start mysql
# 停止
net stop mysql
# 登录
mysql -h(ip 地址) -u(用户名) -p(密码)
# 登录本地数据库
mysql -uroot -p
# 退出
exit/quit
用户增删改查
# 查看全部用户 select user,host from mysql.user; # 新增用户 CREATE USER '(用户名)'@'(ip地址)' -> IDENTIFIED BY '(密码)'; # 修改用户名 RENAME USER 'user1'@'localhost' TO 'user2'@'localhost'; # 修改root用户初始密码 alter user 'root'@'localhost' identified by '123456'; # 修改root用户密码 set password for root@localhost = password('123456'); # 删除用户 DROP USER '(已存在的用户名)'@'(ip地址)';
数据库权限配置
# 配置超管权限(全部数据库,全部操作权限) GRANT ALL -> ON *.* -> TO '(已存在的用户名)'@'(ip地址)' -> WITH GRANT OPTION; # 具有访问bankaccount数据库的所有数据库级权限 GRANT ALL -> ON bankaccount.* DTO '(已存在的用户名)'@'(ip地址)'; # 具有访问expenses数据库的特定数据库级权限,例如查询,插入,更新,删除等 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON expenses.* -> TO '(已存在的用户名)'@'(ip地址)'; # 具有特定的表级权限,可以从域中的任何主机访问数据库中 的 addresses表 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON customer.addresses -> TO '(已存在的用户名)'@'(ip地址)'; # 查看用户权限 SHOW GRANTS FOR 'admin'@'localhost'; # 查看非特性属性 SET print_identified_with_as_hex = ON; SHOW CREATE USER 'admin'@'localhost'\G # 撤销全部权限 REVOKE RELOAD -> ON *.* -> FROM '(已存在的用户名)'@'(ip地址)'; # 撤销数据库权限 REVOKE CREATE,DROP -> ON expenses.* -> FROM '(已存在的用户名)'@'(ip地址)'; # 撤销数据库表权限 REVOKE INSERT,UPDATE,DELETE -> ON customer.addresses -> FROM '(已存在的用户名)'@'(ip地址)';
库的增删改查
# 新增数据库
CREATE DATABASE (数据库名);
# 查询全部数据库
show databases;
# 选择数据库
use (数据库名);
# 删除数据库
DROP DATABASE (数据库名);
数据库表的增删改查
# 新增数据库表 CREATE TABLE if NOT EXISTS user( `id` int UNSIGNED AUTO_INCREMENT PRIMARY KEY, #主键 自增 `name` VARCHAR(50), `age` int(10), `sex` VARCHAR(10), `phonNUM` VARCHAR(20) ) # 修改数据表名 alter table student.user rename AS student.person; #查看所有数据库表 select table_name from information_schema.tables where table_schema='当前数据库' # 查询所有表名及表注释 select TABLE_NAME,TABLE_COMMENT from INFORMATION_SCHEMA.Tables where table_schema = '某数据库名称' #查看表中所有字段与字段注释 select COLUMN_NAME,COLUMN_COMMENT from INFORMATION_SCHEMA.Columns where table_name = '表名' and table_schema='数据库名' # 复制数据库表 同一个数据库中复制(只复制表结构与数据): CREATE TABLE if not EXISTS userr SELECT * FROM users WHERE username='rtttu'; 同一个数据库中复制(复制表结构与数据,关联其他表与索引): CREATE TABLE IF NOT EXISTS userr LIKE users; INSERT userr SELECT * FROM users; 跨库复制 只复制表结构与数据: CREATE TABLE if not EXISTS student.userr SELECT * FROM ovp_data.users WHERE username='ruigh'; 复制表结构与数据,关联其他表与索引: CREATE TABLE IF NOT EXISTS userr LIKE users; INSERT userr SELECT * FROM users; # 删除数据库表 DROP TABLE userr;
数据库表的字段的增加修改删除
#数据库表字段增加,默认加在最后 ALTER table student.user add location VARCHAR(20); #数据库表修改字段名称 ALTER TABLE student.person change `location` `locat` VARCHAR(20) NOT NULL DEFAULT CHARSET=utf8; #数据库表字段修改字段属性 ALTER TABLE student.person MODIFY `locat` INT(20); #数据库删除字段 ALTER TABLE student.person drop `locat`; #数据库表中指定位置添加字段 alter table person add statu varchar(10) comment "状态" after id; # 插入在第一列 ALTER TABLE person ADD number INT(4) FIRST; # 把name字段移动到id后面 ALTER TABLE name MODIFY card CHAR(10) AFTER id; # 把id字段移动到第一位 ALTER TABLE id MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;
数据增删改
#往数据库中添加数据
INSERT into student.uesr (id,name,age,sex,phonNUM)
VALUES(0,'来了',22,'女','12222111'),(0,'来了11',23,'女','12112221'),(0,'来了2',24,'女','12111');
# 修改数据
UPDATE user SET phonNUM='18252524545' WHERE id=3;
#删除数据
delete from user where id =8;
数据查询
# 查询全部信息 select * from user; # 查询部分字段信息 select id,name,age from user; # 根据条件查询部分字段信息 select id,name,age from user where age=24; # 查询条件查询结果的前3行数据 select id,name,age from user where age=24 LIMIT 3; # 查询以 abc 为开头的数据 SELECT * FROM person WHERE name like ‘杨 %’; # 查询以 abc 为结尾的数据 SELECT * FROM person WHERE author like ‘%丹 ’; # 查询包含 abc 的数据 SELECT * FROM person WHERE author like ‘%雅 %’; # 查询最大最小值 select max(age),min(age) from person where id<15; # 查找name字段中以'st'为开头的所有数据 SELECT name FROM person_tbl WHERE name REGEXP '^st'; # 查找name字段中以'ok'为结尾的所有数据 SELECT name FROM person_tbl WHERE name REGEXP 'ok$'; # 查找name字段中包含'mar'字符串的所有数据 SELECT name FROM person_tbl WHERE name REGEXP 'mar'; # 查找name字段中以元音字符开头或以'ok'字符串结尾的所有数据 SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
MySQL中关于like与regexp的区别与用法
_表示:表示单个字符,用来查询定长的数据,举例如下:
SELECT * FROM person WHERE name like ‘杨_’;
%表示:表示0个或多个任意字符,举例如下:
SELECT * FROM person WHERE name like ‘杨 %’;
具体用法参考Java中的正则表达式:https://blog.csdn.net/qq_44895342/article/details/107797267?spm=1001.2014.3001.5501
本文主要针对MySQL基本操作进行总结归纳。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。