文章目录
mysql
登录
mysql -u root -p
然后输入自己的密码即可
数据库操作
创建数据库
CREATE DATABASE 数据库名;
例子
create databases app;
删除数据库
drop database 数据库名;
例子
drop databases app;
显示所有数据库
show databases;
选择数据库
use 数据库名;
例子
use app;
mysql数据类型
数值类型
-
严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。
-
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
-
BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。
-
作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
菜鸟上
个人常用
类型 | 存储(字节) | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
INT或INTEGER | 4 4 4 | − 2 16 {-2}^{16} −216 ~ 2 16 − 1 {2}^{16} - 1 216−1 | 0 0 0 ~ 2 32 − 1 {2}^{32} - 1 232−1 | 大整数值 |
BIGINT | 8 8 8 | − 2 32 {-2}^{32} −232 ~ 2 32 − 1 {2}^{32} - 1 232−1 | 0 0 0 ~ 2 64 − 1 {2}^{64} - 1 264−1 | 极大整数值 |
DOUBLE | 8 8 8 | 双精度 浮点数值 |
double
- 小数部分能精确到小数点后的15位,加上小数点前的一位 有效位数为16位
- 整数位和小数位一起存储。在不指定精度时。默认会按照实际的精度来显示
- double(m, d) 中 m其实没太大关系, 只是最后是四舍五入保留d位
日期和时间类型
-
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
-
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
菜鸟上
字符串类型
- 字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
菜鸟上
-
注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
-
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
-
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
-
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
-
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
另外
more
会处理尾部空格:如果存储数据末尾包含空格,则会删除末尾空格
类型 | 最大存储字符 | 特点 | 说明 | 查询速度 |
---|---|---|---|---|
char(m) | 255 定常类型 | 不够m个长度就在尾部补上空格,凑齐m个长度。会处理尾部空格 | 最快 | |
varchar(m) | 65535 | 变长类型 | 不用补全空格,m建议越小越好,长度够用即可。不处理尾部空格 | 次之 |
text | 65535 | 文本类型 | 不用加默认值,有排序规则和字符集。不处理尾部空格 | 最慢 |
blob | 二进制类型 | 没有排序规则或字符集 |
char 和 varchar
- 在MySQL中常用CHAR 和 VARCHAR 表示字符串。两者不同的是:VARCHAR存储可变长度的字符串。
- 当数据为CHAR(M)类型时,不管插入值的长度是实际是多少它所占用的存储空间都是M个字节;而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1
插入值 | 插入char(3)中 | char存储大小 | 插入varchar(3)中 | varchar存储大小 |
---|---|---|---|---|
‘’ | ‘’ | 3个字节 | ‘’ | 1个字节 |
‘a’ | ‘a’ | 3个字节 | ‘a’ | 2个字节 |
‘ab’ | ‘ab’ | 3个字节 | ‘ab’ | 3个字节 |
‘abc’ | ‘ab’ | 3个字节 | ‘abc’ | 4个字节 |
‘abcd’ | ‘ab’ | 3个字节 | ‘abc’ | 4个字节 |
数据表操作
插入用户
使用CREATE USER 语句创建新用户
CREATE USER '用户名'@'LOCALHOST' IDENTIFIED BY '密码';
给予权限
grant select, insert, update, delete, create, drop, alter on *.* to 'dipa-user'@'localhost' with grant option;
flush privileges;
使用GRANT 语句创建新用户
grant select,insert on *.* to '用户名'@'localhost' identified by '密码';
修改密码策略
- 在创建用户是可能会出现
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看密码策略
SELECT @VALIDATE_PASSWORD_POLICY;
show variables like '%validate_password.policy%';
show variables like '%validate_password.length%';
修改密码策略
set global validate_password_policy = 0; #设置为弱口令
set global validate_password.policy=0; #设置为弱口令
set global validate_password.length=1; #密码最小长度为1
新建数据表
CREATE TABLE 数据表名 (数据名 数据类型);
例子
create table app(
id int not null auto_increment,
username varchar(255) not null,
password varchar(255) not null,
nickname varchar(255),
phone varchar(255),
sex int default '0',
primary key('id')
);
- not null 非空
- auto_increment 自增
- default 默认值
- primary key() 设置默认值。 设置多个变量时,中间用逗号分隔
删除数据表
DROP TABLE 表名;
例子
drop table app;
显示数据表所有信息
select * from 表名;
例子
select * from app;
修改数据表
插入数据
INSERT INTO 数据表 ( 字段1, 字段2, ..., 字段N ) VALUES
( 数据1, 数据2, ..., 数据N );
或者全部字段都要插入 没有指定字段的插入
INSERT INTO 数据表 VALUES ( 数据1, 数据2, ..., 数据N );
例子
insert into app (id, username, password) values
(1, 'admin', 'admin');
或者
insert into app values (1, 'admin', 'admin', 'admin', '13333333333', '0');
修改数据库密码
set password for 用户名@localhost=password('新密码');
可能会出现的问题
数据库未启动
net start mysql