Mysql入门基础整理(一)如何创建新用户并增添改查与外键使用

写在前面:这种博客可以说是一个学习记录,暂时放在这里。等我学会了就可以自己搭一个博客了呜呜呜。

连接

进入:mysql -u 用户名 -p 用户密码
修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
基本

如何添加新用户

创建用户
create user ‘用户名’@'ip’identified by ‘密码’
删除用户:
drop user ‘用户名’@‘IP’
修改用户:
renasa user '用户名’@‘IP’to‘新用户’@‘IP’
修改密码:
set password for ‘用户名’ @‘IP ’ = password('新密码’)
给用户创建库:
create database dbtest;
数据库引用
*.所有数据库
库.
:库中的所有表
库.表: 指定库的某张表
库.存储过程 指定库的存储过程
用户名IP引用
用户名@ip:用户只在该ip下访问
用户名@IP段(192.163.%) :用户名只在该ip段下访问
用户名@&:用户可以再任意ip下访问

授权

查看权限:
show grants for ‘用户’@‘IP’
授权:
grant 授予的权力 on 新创建的库.表名/* to ’用户名‘+@
取消权限:
revoke 授予的权力 on 库.表/* from ‘用户’@‘IP’
操作结果:
用root登录的权限
在这里插入图片描述
用新创建的用户登录的权限
插入图片描述
修改权限后的用户权限
在这里插入图片描述

操作文件夹

创建:create database db1
删除:drop database db1
进入文件夹:use 文件名;
如果想要加中文:create database db1 default charset utf8;
在这里插入图片描述
数据库不能修改文件夹

操作文件

show tables;
创建
create table t1(id int auto_increment primary key,caption char(10))engine=innodb default charset=utf8;
列名 类型 null
列名 类型 not null
列名 类型 not null default 1,
列名 类型 not null auto_increment primary key(常用)
#null表示可以为空
#defaul 1,默认值为1
#auto_increment 自增
#primary key 约束条件(不能重复且不能为空)
在这里插入图片描述
两个引擎
支持事务(一旦中途出来差错,会返回到原来的状态)
myisam不支持事务(一旦中间出错就找不回来了),但相对来说处理速度更快
一般设置成innodb
删除数据
清空表:
delete from 表名;(自增不变)
truncate table t1;
删除表:
drop table t1;
在这里插入图片描述

操作文件内容

插入数据
insert into t1(id,name)values(1,‘ymmk’);
在这里插入图片描述
查看数据
selcet *from t2;
删除数据
delete from t1;(全部删除)
delete from where :(条件删除)
修改数据
update t1 set 内容 where 内容;

基本数据类型

数字
int
tinyint:
signed有符号-128-127
unsigned无符号 0-255
bigint
smallint
FLOAT
DOUBLE
不太精准的小数
decimal(总位数,小数点后最多有几位)
eg (10,5)
11111.11111
贼精准小数!内部存储是按字符串
字符串
!char(长度):在没有占满的位置自动填充空的东西。速度快
!vachar(长度):存多少占多少,节省空间。
优化:char放前面,vachar放后面
最高255个字符
text
mediumtext
longtest
时间类型
time
datetime(1000-01-01 23:9:59)
枚举类型
size ENUM(’ ‘,’ ‘,’ ',);规定选项

外键

外键约束:constraint +被约束表 +foreign key+ 被约束id+references +约束id
创建一个被约束的表:
create table userinfo(
uid bigint auto_increment primary key,
name varchar(32),
departent_id int, #被约束的id
constraint fk_user_depart foreign key (“departent_id”,)references dapartment(‘id’
)engine = innodb default charest=utf8;
创建一个约束的表:
creat table dapartment(
id bigint auto_increment primary key, #约束id
title char(10)
)engine=innodb default charset=utf8;

遇到的问题整理

解决The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement:
因为在mysql/my.ini中存在–skip-grant-tables跳过密码验证命令使得用户输入密码时成为了死循环:

解决办法:1.删掉–skip-grant-tables命令之后保存
2.执行flush privileges刷新;在执行之后的sql语句。

**解决ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘int not null auto_increment primary key,name char(10))engine=innodb default char’ at line **
格式错误
解决办法:1.用记事本软件或编译器编好复制到cmd中
2.写的时候细心点。排查空格 大小写等问题

写在后面:害。停水的一天学习就不会饥饿了。奥里给!

发布了4 篇原创文章 · 获赞 5 · 访问量 386

猜你喜欢

转载自blog.csdn.net/weixin_44113249/article/details/105413774