学习MySQL过程中的随笔一
第一天:
关于安装出现了很多问题,各种不懂的bug,没得法只能在网上查找解决方法,终于!!!
登录成功了,一下午的时间
附上参考资料:https://blog.csdn.net/weibo_boer/article/details/65449032
进去若提示要修改密码,可输入:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
则会提示:Query OK, 0 rows affected (0.04 sec),显示修改成功!

一、用户管理
1、创建用户:
create user ‘用户名’@‘IP地址’ identified by ‘密码’;
2、删除用户:
drop user ‘用户名’@‘IP地址’;
3、修改用户:
rename user ‘用户名’@‘IP地址’ to ‘新用户名’@‘IP地址’;
4、修改密码:
ALTER USER ‘用户名’@‘IP地址’ IDENTIFIED BY '新密码';
二、用户授权管理
1、查看权限:
show grants for ‘用户名’@‘IP地址’ ;
2、授权:
grant 权限 on 数据库.表 to ‘用户名’@‘IP地址’ ;
3、取消授权:
revoke 权限 on 数据库.表 from ‘用户名’@‘IP地址’ ;
三、学习SQL语句规则
1、数据类型:
数字:tinyint、int、bigint、FLOAT、DOUBLE、decimal # 最常用的为decimal(不算符号情况下的数字总个数,小数点后位数)
字符串:char(10)、varchar(10)、text # char中若不满10个字符,则尾端自动添加,varchar中10为最大允许的字符串的长度,尾端不自动添加
时间类型:YEAR(年)、DATE(年-月-日)、TIME(时:分:秒)、DATETIME(年-月-日 时:分:秒)、TIMESTAMP(年月日 时分秒) #DATETIME最常用
其他:ENUM、SET # 枚举enum中,只能选择一个值(字符类型),集合set中可以多个值组成一个集合
2、操作文件夹:
show databases; # 显示所有文件夹
create database db1 default charset utf8; # 创建名为db1的文件夹,default charset utf8 表示编码方式
drop database db1; # 删除名为db1的文件夹
3、操作表:
(1)显示某文件夹下所有表格:show tables
(2)创建表:
create table t1(
列名 类型 null / not null # null 表示该类允许为空
id int auto_increment primary key,
name char(10),
teacher int,
constraint fk_student_teacher_id foreign key(teacher) references teacher(id) #添加外键
)engine=innodb default charset=utf-8; # 创建名为t1的表,编码方式为utf8
# auto_increment 表示自增(用时需加上 primary key)
# show session variables like ‘auto_incre%’; # 查看局部变量,global则是查看全局变量
# set session auto_increment_increment=2; # 设置局部会话步长,使用 global 则是设置全局会话步长
# primary key 表示:约束(不能重复也不能为空);加速查找
# innodb 支持事务,原子性操作(举例:一方在转账的时候若网络出现故障使服务器断开,另一方未收到转账,则金额返还给原主)
(2)清空表
delete from t1; 或 truncate table t1; #二者的区别在于,如果使用了自增auto_increment ,则前者清空后,新增的序列号会紧接着之前的,而后者清空则序列号重新开始
(3)删除表:drop table t1;
(4)插入数据:insert into 表(列名,列名...) values(值,值...);
insert into 表(列名,列名...) values(值1,值1),(值2,值2);
insert into 表(列名,列名...)select name,age from 表1;
(5)删除数据:delete from 表;
delete from 表 where id = 1 and name = ‘alex’;
(6)更新数据:update 表 set name = ‘alex’,age=19 where id = 1;
(7)查找数据:select * from t1;
select id, name ,11 from t1;
select * from t1 where id in(1,2,5); # 或者 not in
select * from t1 where id between 5 and 10;
select * from t1 where id in(select id from t2);
select id,name as cname from t1 where id > 10 or name =‘xxx’;
(8)其他:
a、通配符:
select * from t1 where name like ‘a%’;
select * from t1 where name like ‘a_’;
b、限制:
select * from t1 limit 10;
select * from t1 limit 10,20; #从11行开始读,往后读取20行
select * from t1 limit 20 offset 10; #同上
c、排序:
select * from t1 order by 列名 desc;# 按照列名从大到小
select * from t1 order by 列名 asc; # 按照列名从小到大
select * from t1 order by 列名1 desc,列名2 asc; # 先根据列名1排序,若出现相同的序号,则将按照列名2的排序方式
d、分组:select max(id),count(name),count(email),name as cname from userinfo where id>2 group by name,email having max(id)>2 order by max(id) desc;
# 自带有count、sum、max、min、avg方法,拓展:另有一种使用方法来统计id数:select count(id)from userinfo;
# 特别的,书写顺序为:where、group、having、order by ,且对于聚合函数结果进行二次筛选时,必须使用 having
e、连表:select host_id from userhost,host where userhost.id = host.id;
select host_id from userhost left join host on userhost.id = host.id;
# 效果同第一条,且 left (right) 表示左(右)边表全部显示,若用 inner 表示含有NULL行不显示。
select score.sid,score.student_id from score
left join student on score.student_id=student.sid
left join course on score.course_id=course.cid
left join class on student.class_id=class.cid
left join teacher on course.teacher_id=teacher.tid;
f、组合:
1、自动处理重合:select tid,tname from teacher union select sid,sname from student;
2、不会处理重合:select tid,tname from teacher union all select tid,tname form teacher;
g、其他:
1、条件判断:case when 条件 then 输出1,else 输出2 end; 例:sum(case when num>60 then 1 else 0 end)/ count(1)*100 as 及格率;
2、对于NULL取舍:if(isnull(num),0,num) 例:select student_id,avg(if(isnull(num),0,num)) from score,student;
h、练习题链接:http://www.cnblogs.com/wupeiqi/p/5748496.html
学习MySQL过程中的随笔一的更多相关文章
- 学习MySQL过程中的随笔二
MySQL深入学习: 视图 使用视图的目的:多次使用同一张临时表(或者已经存在的表) 视图只是一个虚拟表,其本质为[根据SQL语句获取动态的数据集,并为其命名],用户只需使用别名即可获得实时的 ...
- 学习Mysql过程中拓展的其他技术栈:Docker入门介绍
一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...
- 学习Mysql过程中拓展的其他技术栈:设置linux虚拟机的固定ip和克隆linux虚拟机
一.设置linux虚拟机的固定ip 1. 安装好虚拟机后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子 ...
- 关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)
关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录) 作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position ...
- 利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)
利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录) 作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $(" ...
- html/css 盒子布局 Margin 、Padding 、border 以及 清除浮动的知识 (学习HTML过程中的小记录)
html/css 盒子布局 Margin .Padding .border 以及 清除浮动的知识 (学习HTML过程中的小记录) 作者:王可利(Star·星星) width 是"宽 ...
- Python使用Mysql过程中一些错误
Python使用Mysql过程中一些错误 ssh登录远程服务器 ssh ubuntu@xxx.xxx.xx.xx 第一:ubuntu终端中登录Mysql mysql -uroot -p 然后输入密码即 ...
- 深度学习训练过程中的学习率衰减策略及pytorch实现
学习率是深度学习中的一个重要超参数,选择合适的学习率能够帮助模型更好地收敛. 本文主要介绍深度学习训练过程中的6种学习率衰减策略以及相应的Pytorch实现. 1. StepLR 按固定的训练epoc ...
- 各种报错各种坑 webpack让我在学习的过程中一度想要放弃
由于拓展部分不是必须的,只是可以增强用户体验,但是有些时候页面给分页预留的位置不够,这个时候我们就可以通过设置来除去这一部分 子分区由两种创建方法,一种是不定义每个子分区子分区的名字和路径由分区决定, ...
随机推荐
- 《剑指offer》连续子数组的最大和
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- SpringMvc+Hibernate+Mysql保存表情字符(昵称)到数据库报错的问题?
背景: 一个中小型H5游戏 描述: 游戏通过微信授权登入, 获取到用户昵称并将用户信息保存至Mysql数据库, 当遇到有些用户微信昵称中带有表情(特殊字符)时, 保存至数据库出错! 核心错误: Cau ...
- 如何利用docker 构建golang线上部署环境
公司最近开发了一个项目是用golang 写的,现在要部署到线上环境去,又不想在服务器上装单独的golang,决定用docker 封装下,直接打到镜像里面,然后就直接在hub.docker.com上面搜 ...
- const 成员函数
我们知道,在成员函数中,如果没有修改成员变量,应该给成员函数加上 const 修饰符,例如 #include <iostream> using namespace std; class F ...
- eclipse查看一个方法被谁引用(调用)的快捷键四种方式
1.(首推)双击选中该方法,Ctrl+Alt+H 如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ctrl+Alt+H”, Eclipse就会显示出这个方法被哪些方法调用 ...
- mysql查看每个数据库所占磁盘大小
#查看每个数据库所占磁盘大小 SELECT TABLE_SCHEMA AS "库名", , ) AS "表所占空间(MB)", , ) AS "索引所 ...
- Django 学习第十一天——中间键和上下文处理器
一.中间键的引入: Django中间件(Middleware)是一个轻量级.底层的"插件"系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出. djang ...
- python底层原理
有同学问到了一个问题,python中存储变量是通过内存地址来存储,那么python又是如何去判断内存中的地址是什么数据类型的呢.经过查找,找到这篇文章: 原博客地址:http://www.cnblog ...
- 修改input和textarea的placeholder的颜色,限制文本框字数输入
<style type="text/css"> textarea{ width: 400px; height:400px; resize: none; } .limit ...
- SoapUI破解及安装教程
之前学了一段时间的SoapUI,但是好久不用了,这里记录下专业版的破解的流程,后续的学习会不断更新. soapUI安装及破解(这里针对专业版) 下载地址:http://dl.eviware.com/l ...