IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> go学习——mysql学习 -> 正文阅读

[大数据]go学习——mysql学习

一、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

建表

create  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)

delete from 表名  where  条件;

注意:没有限制条件会将所有数据都删除

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:57:41  更:2022-03-21 21:01:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:51:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码