[大数据学习之路] 初识MySQL(二)
【摘要】 上篇文章中,我们简单的介绍了一下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)