数据类型
- 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;