MYSQL

97 阅读2分钟

数据类型

  • VARCHAR(10) 代表10个字符和中英无关
  • LONGTEXT 长字符串
  • BIGINT 长数字
  • INT 数字
  • 浮点数(FLOAT)
  • 字符串(VARCHAR)
  • 日期(DATE)
  • 时间戳(TIMESTAMP

列和属性

  • | column | 数据库表中的一个字段,用于存储特定类型的数据。例如,一个名为 "name" 的列可能存储用户的姓名。
  • | datatype | 列中存储的数据的类型。
  • | pk | 唯一标识,每个表只能有一个主键。
  • | nn | 表示该列不能包含空值(NULL)。如果列被标记为非空,那么在插入或更新数据时,该列必须有一个有效的值。
  • | AI | 表示该列的值会自动递增。通常用于主键列,以确保每个新插入的记录都有一个唯一的标识符。自增列通常与整数数据类型一起使用。
  • | default | 默认值

Sql语句

注释

-- xx

版本

select version()

所有数据库

show databases;

指定使用数据库

use `数据库名`;

show tables;

插入

insert into users(username,`password`,realname) values('zhangsan','123','张三'); 

查询所有

select * from `数据库名`;

指定列查询

select id,username from `数据库名`

匹配列查询

select * from users where username='zhangsan';

并列条件

select * from users where username='zhangsan' and `password`=123;

其中条件

select * from users where username='zhangsan' or `password`=123;

模糊查询

select * from users where username like '%zhang%'

正序排列

select * from users where password like '%1%'order by id

倒序排列

select * from users where password like '%1%'order by id desc

执行安全策略

SET SQL_SAFE_UPDATES = 0;
update users set realname='李四2' where username='lisi'

删除

delete from users where username='lisi'

软删除:每列数据添加 state,默认值设置1

select from users where state='1';
select from users where state<>'0'; -- 不是0
update users set state='0' where username='lisi'

Node Sql

mysql8 之前的版本中加密规则是 mysql_native_password;
mysql8 之后加密规则是 caching_sha2_password,需要改变 mysql 的加密规则

查看插件列表

SHOW PLUGINS

插件【mysql_native_password】的状态为【DISABLED】,我们需要将其状态改为【ACTIVE】

查找配置文件C:\ProgramData\MySQL\MySQL Server 8.4\my.ini,在my.ini最后一行添加:mysql_native_password=ON

重启服务

net stop mysql84
net start mysql84

可以看到插件【mysql_native_password】的状态为【ACTIVE】

启用旧的身份验证插件

ALTER USER '账号'@'主机' IDENTIFIED WITH 'mysql_native_password' BY '密码';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你自己的密码';
FLUSH PRIVILEGES;

查看加密方式是否成功

SELECT user,host,plugin from mysql.user;