go学习——mysql学习
2022/3/20 19:32:55
本文主要是介绍go学习——mysql学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mysql 学习
- 一、mysql使用命令符
- 开始使用
- 退出mysql
- 查看数据库
- 使用数据库
- 查看该数据库下有哪些表
- 创建数据库
- 查看mysql数据库的版本号
- 查看当前使用的是哪个数据库
- 二、关于SQL语句分类
- DQL
- 数据查询语言(select.......)
- DML
- 数据语言操作(操作表中数据)
- DDL
- 数据定义语言(操作表中结构)
- TCL
- 事务控制语言
- DCL
- 数据控制语言
- 三、导入sql文件
- 导入方法
- 查看数据
- 四、DQL
- 1、简单查询
- 查询一个字段
- 给查询的列表起名
- 列表参与运算
- 条件查询
- 条件
- 排序
- 2、单行处理函数
- 3、多行处理函数
- 分组函数(先分组,再使用)
- 4、单表查询
- 对查询结果去重
- 5、连接查询(跨表查询)
- 内连接之等值连接
- 内连接之非等值连接
- 内连接之自连接
- 外连接(表分主次)
- 多表连查
- 子查询
- union 合并查询结果集
- limit 使用
- 分页
- 五、DDL
- 建表
- mysql数据类型
- 删除表
- 六、DML
- 插入数据(insert)
- 插入日期
- mysql日期格式
- 修改update
- 删除数据(delete)
一、mysql使用命令符
开始使用
先以管理员身份启动
然后mysql -uroot -p102077登录
退出mysql
mysql> exit;
查看数据库
mysql> show databases;
使用数据库
mysql> use xyuanjin(数据库名称);
查看该数据库下有哪些表
mysql> show tables;
创建数据库
mysql> create database xyuanjin(数据库名称);
查看mysql数据库的版本号
mysql> select version();
查看当前使用的是哪个数据库
mysql> selest database();
二、关于SQL语句分类
DQL
数据查询语言(select…)
DML
数据语言操作(操作表中数据)
增:insert 删: delete 改: update
DDL
数据定义语言(操作表中结构)
create 新建 (等同于增) drop 删除 alter修改
TCL
事务控制语言
事务提交 commit;
事务回滚 rollback;
DCL
数据控制语言
授权 grant 撤销授权 revoke
三、导入sql文件
导入方法
mysql> source C:…(文件路径)
查看数据
mysql> show tables; //查看数据库中的表
mysql> select * from 表名; //查看表中所有数据
mysql> desc 表名; //查看表的结构
四、DQL
1、简单查询
查询一个字段
mysql> select 字段名 from 表名;
例: mysql> select name from classinformation;
mysql> select name,age from classinformation;
mysql> select * from classinformation;
给查询的列表起名
用as关键字,也可省略,若所起列表名中有空格或别名是中文,则将列表名用单引号括起来即可
例: mysql> select name as studentname from classinformation;
mysql> select name as ‘student name’ from classinformation;
mysql> select name studentname from classinformation;
mysql> select name ‘student name’ from classinformation;
列表参与运算
mysql> select time*12 from tablename;
条件查询
select
字段一,字段二,字段三,
from
表名
where
条件;
条件
between…and…
is null (is not null)
in (not in)
like (模糊查询)
其中%匹配任意字符,_匹配一个字符
例:’%y’ 以y结尾
‘y%’ 以y开头
‘_y%’ 第二个字母是y
‘__y%’ 第三个字母是y
排序
select
字段一,字段二,字段三,
from
表名
where
条件
order by
…; (默认升序 升序asc 降序desc)
例:
order by
sal asc, ename desc;
2、单行处理函数
lower() 转换小写
upper() 转换大写
length() 取长度
substr() 取子串 substr(被截取的字符串,起始下标,截取长度)
trim() 去空格
rand() 生成随机数
round() 四舍五入 round()
ifnull() 将null转换为一个具体值
case…when…then…else…end 当满足啥啥时然后执行啥啥
3、多行处理函数
分组函数(先分组,再使用)
count
sum
avg
max
min
4、单表查询
select 5 (select中可以使用分组函数)
…
from 1
…
where 2 (where中不可以使用分组函数)
…
group by 3
…
having 4 (对分组之后的的数据进一步过滤)
…
order by 6
…
limt 7
...
例:找出每个工作岗位的平均薪资,要求显示平均薪资大于1500,除MANAGER岗位之外,平均薪资按照降序排列
select
job,avg(sal) as avgsal
from
emp
where
job <> ‘MANAGER’
group by
job
having
avg(sal) > 1500
order by
avgsal desc;
对查询结果去重
&&&& distinct 放在所查询的字段前面
对工作岗位去重
select distinct job from emp;
对多个字段去重(联合字段进行去重)
select distinct job ,name from emp;
5、连接查询(跨表查询)
//表起别名,提高效率
select
e.ename,d.dname
from
emp e, dept d
where
e.deptno = d.deptno
内连接之等值连接
查询员工名字及其所在部门名称(两张表的连接为部门编号相同)
select
e.ename,d.dname
from
emp e
inner(可省略) join
dept d
on
e.deptno = d.deptno (等值)(连接条件)
where
筛选条件
内连接之非等值连接
查询每个员工的薪资等级,要求显示员工名,薪资及其等级
select
e.ename,e.sal,s.grade
from
emp e
inner join
salgrade s
on
e.sal between s.losal and s.hisal;(非等值连接)
内连接之自连接
技巧:一张表看成两张表
查询员工的上级领导,显示员工名和对应领导名
select
a.ename as’员工名‘,b.ename as’领导名’
from
emp a
join
emp b
on
a.mgr = b.empno //员工的领导编号 = 领导的员工编号
外连接(表分主次)
左外连接 left join
右外连接 right join
查询员工的上级领导,显示所有员工名(员工表为主表)
select
a.ename as’员工名‘,b.ename as’领导名’
from
emp a
left (outer) join //right join 右边为主表
emp b
on
a.mgr = b.empno //员工的领导编号 = 领导的员工编号
多表连查
select
…
from
a
join
b
on
a和b的连接条件
join
c
on
a和c的连接条件
left join
d
on
a和d的连接条件(左连接,a为主表,d为次表)
子查询
select语句嵌套(可以嵌套于select,from,where中)
from 中的select可以当作一个新的表
union 合并查询结果集
例:1. select name,job from emp where job in (‘manager’,‘salesman’)
2. select name,job from emp where job = ‘manager’
union
select name,job from emp where job = ‘salesman’
使用union效率更高
limit 使用
作用 :将查询结果一部分取出来,通常使用在分页查询中
用法 :limit startIndex(可省),length
startIndex 起始下标,从0开始
length 长度
例:
select
name,sal
from
emp
order by
sal desc
limt
0,5;
limit在order之后执行
分页
limit (pageNo-1)*pageSize , pageSize
五、DDL
建表
creat table 表名(
字段一 数据类型, //不要忘了逗号
字段二 数据类型
);//不要忘了分号
//表明一般用 t_ 或 tbl_ 开头
mysql数据类型
varchar 可变长度字符串(可动态分配空间,但速度慢)
char 定长字符串(速度快)
int 整数型
bigint 长整型
float 单精度浮点型
double 双精度浮点型
date 短日期类型 默认格式:%Y-%m-%d
datetime 长日期类型 默认格式:%Y-%m-%d %h:%i:%s
clod 字符大对象(最多可储存4G字符串)
blod 二进制大对象(图片、声音、视频等流媒体数据)
删除表
drop table t_student; //当这张表不存在的时候报错
drop table if exists t_student; //如果存在这张表,就删除
六、DML
插入数据(insert)
insert into 表名(字段名1,字段名2,字段名3…) values(值1,值2,值3…)
注意: 字段名和值一一对应,即数量对应,数据类型对应
若省略字段名不写,则默认写了全部字段名,所以值要写全部的
例:insert into t_student(no,name,age,email) values(1,‘xiaobai’,17,‘123456@qq.com’)
插入日期
格式化数字 : format(数字,‘格式’)
select ename,format(sal,’$999,999’) as sal from emp; //千分位
str_to_date : 将字符串varchar类型转换成date类型
date_format : 将date类型转换为具有一定格式的varchar类型
mysql日期格式
%Y 年
%m 月
%d 日
%h 时
%i 分
%s 秒
now() 函数 获取当前时间,带有时分秒信息!!!为datetime类型
修改update
update 表名 set 字段名1 = 值1,字段名2 = 值2,字段名3 = 值3…where 条件;
注意:没有限制条件会导致所有数据都改变
例:update t_user set name = ‘jack’,birth = ‘2002-02-02’,create_time = now() where id = 2;
删除数据(delete)
delet from 表名 where 条件;
注意:没有限制条件会将所有数据都删除
这篇关于go学习——mysql学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南