MySQL指令
在mysql里:文件夹就是数据库 文件就是表
创建用户:
格式:create user '用户名'@'IP地址' identified by '密码';
说明:IP地址是用来限制用户只能在哪些计算机上登陆。
‘168.10.1.1’ 只能在这台机上登陆
可以用%来代替任意,‘168.10.1.%’ ‘168.10.%’ ‘%’
授权:
限制用户只能查看哪些文件夹或文件
格式:grant 权限 on 文件夹或文件 to 用户;
权限: 比如:select,insert 给予查找、插入权限
select 查找 insert 插入 update 更新 delete 删除
all privileges 所有权限(privileges 可以省略)
文件夹或文件:lm.* 表示lm文件夹下的所有文件和文件夹
lm.t1 表示lm文件夹下的t1文件
用户:'lm68140318'@'%' 注意带上IP地址
此时可以再开一个CMD,登陆刚刚创建的账户
此时可以show databases; 查看此账户的文件夹 只有lm了
取消授权:
revoke all on *.* from '用户名'@'IP地址';
查看权限:
格式:show grants for '用户'@'IP地址';
删除用户:
格式:drop user '用户名'@'IP地址';
修改用户名:
格式:rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
操作文件夹或文件:
创建文件夹 create database lm default charset utf8; 在data文件夹下创建lm文件夹
显示所有数据库:show databases;
lm是用户创建的文件夹,其它三个是系统用的文件夹
进入数据库: ues mysql
删除文件夹:drop database 文件夹名
查看文件:show tables;
其中user文件是用来保存用户的用户名、密码等信息的
创建文件 :
create table t1(id int,name char(10)) engine=innodb default charset=utf8;
t1是文件名 id是列名 int是数据类型 char表示字符串类型最多10个字符(超过10个只取前10个)
在数据类型后面可以加上null或者not null,表示此列的数据是否可以为空,null可以为空
例:create table t1(id int null,name char(10)) engine=innodb default charset=utf8;
还可以加上默认值:default 1
AUTO_INCREMENT 定义列为自增的属性,数值会自动加1,只能有一列是自增列
PRIMARY KEY 不能重复 不能为空 加速查找
例子 create table t1(id int not null auto_increment primary key,name varchar(10)) engine=innodb default charset=utf8;
删除文件: drop table t1;
数据类型:
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型:
数值类型:
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
tinyint | 1字节 | (-128,127) | (0,255) | 小整数值 |
bigint | 8字节 | (-9223372036854775808,9223372036854775807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
int integer |
4字节 |
int signed (-2 147 483 648,2147483647) |
int unsigned (0,4294967295) |
大整数值 |
float | 4字节 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 单精度浮点数 | |
double | 8字节 | (-1.7976931348623157 E+308,-2.2250738585072014 E-308),0,(2.2250738585072014 E-308,1.797 6931348623157 E+308) | 0,(2.2250738585072014 E-308,1.7976931348623157 E+308) | 双精度浮点数 |
decimal(m[,d]) |
如果M>D,为M+2否则为D+2 m是总位数,d是小数点后最多位数 |
小数值 | ||
mediumint | 3字节 | (-8388608,8388607) | (0,16777215) | 大整数值 |
字符串类型:
类型 | 大小 | 用途和备注 |
---|---|---|
char(n) | 0-255字节 | n是长度,如果不足右边用空格填充 |
varchar(n) | 0-255字节 | n是长度,如果不足不会用空格填充 |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
text | 0-65535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
longtext | 0-4294967295字节 | 极大文本数据 |
日期和时间类型:
类型 | 大小 (字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 |
1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
枚举类型enum:
str enum('lm','zansan','liming') str是枚举类型 其值只能在其中选择一个
集合类型set:
col set('a','b','c','d') col是集合类型 其值只能是括号中的组合 ‘a,c’
从表中查看数据:
格式:select * from user;
*表示所有列也可以是列名 user是表就是文件名
例如:查看注册用户:select user from user;
往文件中插入数据:
格式:insert into t1(id,name)values(1,'张三');
t1是文件名,id、name是列名
删除表中数据(清空): delete from t1; 不改变自增序号.清空t1表
truncate table t1; 自增序号回到1
delete from t1 where id<6; 条件删除,把id<6的数据删除
修改表中数据:
update t1 set age=18; 把t1表中age列的所有数据改成18
update t1 set age=18 where age=17; 条件修改,把age=17的age改成18
外键:
如图表中某列的数据只能是另一张表中某列的数据