[大数据学习之路] 初识MySQL(二)

举报
franco52576 发表于 2021/01/16 13:28:09 2021/01/16
【摘要】 上篇文章中,我们简单的介绍了一下MySQL的功能,概念以及如何下载。接下来我们对MySQL的一些细节技术进行介绍。首先介绍一些简单的命令:进入mysql命令     mysql -u root -p输入密码用户操作通过root管理员权限可以创建各种用户,并为他们分配权限及可以操作的数据库。语法:create user '用户名'@'ip地址' identified by '密码'创建用户cr...

上篇文章中,我们简单的介绍了一下MySQL的功能,概念以及如何下载。

接下来我们对MySQL的一些细节技术进行介绍。

首先介绍一些简单的命令:

进入mysql命令
     mysql -u root -p
输入密码

用户操作

通过root管理员权限可以创建各种用户,并为他们分配权限及可以操作的数据库。

语法:create user '用户名'@'ip地址' identified by '密码'

创建用户
creata user 'sakura'@'%' identified by '123456';
删除用户

  drop user '用户名'@'IP地址';
修改用户
  rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
修改密码
set password for '用户名'@'IP地址' = Password('新密码')

其中,ip地址可以用通配符%来表示任意地址。

例'%',代表任意ip地址都能链接。

'10.31.160.%',代表以10.31.160开头的ip地址可以链接。

为用户设置权限

grant select,insert,update on db1.t1 to 'sakura'@'%';   # 给用户设置查询,添加,修改的权限,范围为db1库的t1表。
grant all privileges on db1.t1 to 'sakura'@'%';              #给用户设置所有的权限。
revoke all privileges on db1.t1 from 'sakura'@'%';       #移除用户所有的权限。

创建数据库

create database 数据库名称 
create database db1 创建一个叫db1的数据库
显示有多少个数据库
show databases;
进入对应数据库
use 数据库名称
use db1 进入db1数据库
查看数据库中的表
show tables;
查看表中数据
selec * from 表名称

文件操作

    显示当前数据库中的所有表
    show tables;
  创建表
    create table 表名称(
    列名 类型
    id int auto_increment primary key,
    name char(32)
)   engine=innodb default charset utf8;
    auto_increment:自动自增
    primary key :设置为主键 表示约束 加速查找
    engine=innodb :支持事务(在特殊情况下不会丢失数据)
    engine=myisam 不支持事务
  清空表
    delet from 表名
    truncate table 表名
删除表
    drop table 表名

文件内容操作

    插入一条数据 
      insert into 表名(id,name) values(1,’alex‘)
    删除一条数据
      delete from 表名 where age=10
      delete form 表名 删除表里所有数据
    查看数据
      select * from 表名
    更新数据
      update 表名 set age=18 where age=17

    外键
      一个表的数据和另外一个表关联

接下里举个栗子,来说明一下这些操作是如何使用的。

比如对于一个学生管理系统来说。

创建学生表
create table student(
    sid int auto_increment primary key,
    sname char(30),
    gender char(20),
    class_id int,
          constraint fk_class_student foreign key(class_id) references class(cid)
)  engine=innodb default charset utf8;
创建一个学生表 里面的class_id 和class表中的cid关联在一起的

大家个举一反三,来创建老师表、课程表等等。
最后,我们来介绍一下数据库中的一些数据类型:

tinyint    比int范围小,推荐使用,运行速度快
int    整型
bigint    大数字

FLOAT      浮点型,在小数位置长时,结果不一定准确
DOUBLE  双精度,在小数位置长时,结果不一定准确,但比FLOAT准确
decimal    绝对准确,在底层是以字符串实现的数据存储,应用于银行卡余额之类的要求绝对准确的数据。

char(10) 速度快,就算只写了3个字符,也会在系统中占10个字符。所以系统在扫描时是知道你的字符长度的,扫描速度快。
varchar(10) 节省空间,写了几个字符就在系统中占了多少字符,但是扫描的速度慢,系统不知道你的字符长度,每次都需要去判断。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。