数据库操作手册(左)
2023-09-15 09:03:34 4 举报
AI智能生成
。。。
作者其他创作
大纲/内容
用户
创建 CREATE
本地连接
create user 用户@'localhost' identified by '123';
远程连接
create user 用户@'10.0.0.51' identified by '123';
修改 (修改密码) ALTER
alter user 用户@'10.0.0.%' identified by '123456';
删除 (DROP)
drop user 用户@'10.0.0.%';
查看 (SELECT)
select * from mysql.user\G;
Host: --- 用户白名单设置
User: --- 用户名称
plugin: caching_sha2_password --- 用户密码加密方式
authentication_string --- 用户密码加密信息
account_locked: N --- 账户是否被锁定
锁定(lock)
alter user 用户@'localhost' account lock; --锁定用户
alter user 用户@'localhost' account unlock; --解锁用户
表
创建 CREATE
create table XXX
修改 ALTER
数据类型
ALTER table 表名 MODIFY 字段名 数据类型
位置调换
ALTER table 表名 MODIFY 字段名 数据类型 AFTER 字段名
字段名
ALTER table 表名 CHANGE 原字段名 修改后字段名 数据类型
增加字段
ALTER table 表名 ADD 字段名 数据类型
修改表名
ALTER table 表名 RENAME 改后表名
存储引擎
ALTER table 表名 ENGINE = 引擎名
删除 DROP或ALTER
删除字段
ALTER table 表名 DROP 待删字段
删除外键
ALTER table 表名 DROP FOREIGN KEY 外键名
删除表
DROP table 表名
数据操作
插入 INSERT
INSERT into 表名 (数据类型A,B,C,D,E)VALUES(A,B,C,D,E)
更新 UPDATE
UPDATE 表名 SET 修改字段名=‘修改后数据’ where (条件) 字段名=‘指定’
删除记录 DELETE
DELETE from 表名 where (条件) 字段名=‘指定’
查询 SELECT
查找所有记录
select * from 表名
避免重复 distinct
select distinct 字段名 from 表名
查询第x到y记录
select * from 表名 limit x-1,(y-x+1)
例如4-5 则 limit 3,2
(y-x+1)表示取多少条记录
条件查询
判断符 ><
between A and B
IN(a,b,c)
is null
LIKE '李%'
%表示省略串 _省略单个字符
分组查询
分组
select * from 表名 group by 字段名
排序
select * from 表名 order by 字段名 ASC(DESC)
根据字段名排序 asc升序 desc降序
限制查询条数
select * from 表名 order by 字段名 limit x,y
多表查询
内连接
等值连接
select * from 表名A inner join 表名B on A.xxx=B.yyy
不等值连接
= -> !=
自然连接
natural join
相同字段名进行匹配,筛选出不同的进行连接
外连接
左外连接
select * from 表名A left join 表名B on A.xxx=B.yyy
包含表A所有字段,并匹配表B中A没有的字段
只显示含字段名的分组的一条记录
右外连接
与左相类似
子查询
IN
在什么中
exists
存在就查询
any
满足任一 就查询
select * from 第一张表
where 外键 = any(
select 外键 from 外表
where d_name in(‘字段名’));
where 外键 = any(
select 外键 from 外表
where d_name in(‘字段名’));
all
满足所有条件
索引 INDEX
创建 CREATE
单列索引
create index 索引表名 ON 表名(字段名)
多列索引
create index 索引表名 ON 表名(字段名A,字段名B)
唯一性索引
alter table 表名 add index 索引表名(字段名 asc||desc)
全文索引
fulltext index
注意:只能创建在char,varchar,text类型字段上
删除 DROP
drop index 索引表名 ON 表名
查看
SHOW
视图 VIEW
创建
create view 视图名(字段名)as select 字段名 from 表名A 别名a where 条件
删除 DROP
drop view 视图名
查看 describe
describe 视图名
desc 视图名
show table status like '视图名'
show create view ‘视图名’
修改
alter 视图名(字段名) as select 字段名(修改后) from 表名A 别名a where 条件
更新 UPDATE
update 视图名 字段名=‘数据’
数据库
权限操作 GRANT
权限赋予
grant select,create,drop,super权限
ON *.* TO 用户名@localhost identified by '密码' with grant option;
ON *.* TO 用户名@localhost identified by '密码' with grant option;
创建用户
create user 用户名@localhost;
修改密码
SET PASSWORD for '用户名'@'localhost' = PASSWORD('000000');
回收权限
revoke all on *.* from 用户名@localhost
删除用户
drop user 用户名@localhost
数据库服务密码设置
没有密码需要设置密码
mysqladmin -uroot -p password '123'
已有密码需要修改密码
命令行 mysqladmin -uroot -p123 password '123456'
数据库
mysql 8.0
mysql> alter user root@'localhost' identified by '123';
mysql> flush privileges;
mysql> flush privileges;
mysql 5.7
mysql> update mysql.user set authentication_string=PASSWORD('123') where user='root' and host='localhost';
mysql> flush privileges;
mysql> update mysql.user set authentication_string=PASSWORD('123') where user='root' and host='localhost';
mysql> flush privileges;
mysql 5.6
mysql> set password for 'oldboy'@'localhost'=PASSWORD('123');
mysql> flush privileges;
mysql> flush privileges;
忘记密码需要重置密码
1.先停止数据库服务
2.采用安全模式启动数据库(空密码方式进入数据库)
mysqld_safe --skip-grant-tables --skip-networking &
3.设置数据库密码信息
flush privileges;
alter user root@'localhost' identified by '123456';
alter user root@'localhost' identified by '123456';
4.重启数据库服务
pkill mysql
5.验证数据库密码
mysql -uroot -p123456
收藏
0 条评论
下一页