MySql基础

MySql的优点

  • 代码开源,一般可以免费使用
  • 性能搞,执行速度快
  • 简单,很容易安装或卸载

MySQL的数据管理软件是c/s结构的,底层是tcp/ip协议程序

本机命令行登录:mysql -u用户名 -p密码

链接其他电脑的数据库:mysql -h地址 -P端口号 -u用户名 -p密码


常用sql命令

  • show databases; 查看有哪些数据库

    • information_schema: 数据库里是服务端基本的一些数据,没事别乱搞
    • mysql:存放了自己的用户信息,表信息,时区信息等等
    • performance_schema:是一些性能的分析
    • test:默认空的,给你自己操作的,随你搞,删掉都可以
  • use 数据库名; 使用数据库进行增删改查等操作,就是进入到该数据库

  • show tables; 查看数据库里表

  • select database();查看当前在哪个数据库

  • desc 表名; 查看该表的描述,就是看它的字段或者属性以及各个字段的约束

  • set names 值(列如,utf8);设置客服端的字符集 (windows的命令行一般默认为gbk)

  • exit;退出

  • create table 表名(

    字段名 数据类型 约束,

    );

sql的语法注意事项

  • 不区分大小写(库名,表名,字段名建议大写,其他的关键值建议小写)
  • 也有注释,#单行注释,–也表示单行注释(但是–后面必须跟一个空格,否则出错),还有一个多行注释给java的一样
  • 如果你写的语句太长,可以换行写,但是不要卡在一个字符上换行

sql语句

sql语句在所有的关系型数据库都差不多大同小异,但也有可能会存在每个数据库它独有的语句或语法。列如,LIMIT语句是MySql独有的语句。

sql语句的分类

  • DDL:数据定义语言,用来定义数据库对象的,就是建表,建库子类的语句
  • DML:数据操作语言,用来定义数据库记录(数据),就是数据库的数据进行增删改的操作的语句
  • DCL:数据控制语言,用来定义访问权限和安全级别,一般人用不到这种语句(DBA用的)
    • TCL:事物控制语言
  • DQL:数据查询语言,用来查询记录(数据)就是select

DQL语句

基础查询语句

select 查询列表 from 表面;

​ 查询列表可以是字段、表达式、常量、函数等

​ 举列:

  • 查询常量

    ​ SELECT 100;
    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e7wKus3p-1620787651039)(MySql.assets/1618670151942.png)]

  • 查询表达式

    SELECT 100%3;
    在这里插入图片描述
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fl7xgsFX-1620787651043)(MySql.assets/1618670125180.png)]

  • 查询单个字段

    SELECT username FROM table;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6an91yBD-1620787651043)(MySql.assets/1618670379359.png)]
    在这里插入图片描述

  • 查询函数 (查看当前数据库名)

    SELECT DATABASE();

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2RPqafgz-1620787651045)(MySql.assets/1618670413826.png)]
    在这里插入图片描述

​ 查询的结果集是一个虚拟表

​ 查询的顺序是:先看库里有没有该表,如果有,再去表里筛选出列

mysql里的+号作用

  • 两个操作数都是数值,就正常运算

  • 其中有一个为字符型,将字符型强制转换为数值型,如果无法转换,则直接当0处理

  • 其中一个为null,结果为null

    concat(),将字符连接成一个字符,如果其中有参数为null,就会把结果赋为null

    ifnull(one,re),判断one字段是否为null,如果是就用re当它的值,不是null就用本身的值
    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GnsditF1-1620787651047)(MySql.assets/1618802256368.png)]

    distinct 去重关键字

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BcpPYeDF-1620787651048)(MySql.assets/1618802017334.png)]
    在这里插入图片描述

查看表结构

  • DESC 表名;
  • SHOW COLUMNS FROM 表名;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AumxRw0M-1620787651049)(MySql.assets/1618802290847.png)]
在这里插入图片描述

起别名
  • 可以使用as关键字(原名 as 别名)
  • 可以使用空格(原名 别名)

条件查询

SELECT 查询列表 FROM 表名 WHERE 条件;

执行顺序:先走from子句,再走where子句,最后select子句

  • 按关系表达式筛选:关系运算符 < ,> ,>=, <= , != , <>,<=>
  • 按逻辑表达式筛选:&&,||,!,and,or, not
  • 模糊查询:like,in,between,is null

=与is的区别

​ =只能判断普通的内容,is只能判断NULL值

还有一个 <=>,这个叫安全等于,普通内容和NULL值都可以判断


排序查询

SELECT 查询列表 FROM 表名 WHERE 条件 ORDER BY 排序列表

执行顺序:先走from子句,再where子句,再select子句,最后order by子句

排序列表可以是单个字段,多个字段,表达式,函数,列数(或列名),以及以上的组合。(多个字段表示,按顺序一个一个条件排,就是先按年龄排,年龄相同时再按工资)

升序(默认),同追加asc,降序,追加desc

length(str), 计算字节长度


常见函数
字符函数

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R0sFAtPf-1620787651050)(MySql.assets/1618802982200.png)]

concat():拼接函数

length(): 字节长度函数

char_length():获取字符长度

substring()所截取的字符串,开始位置,截取长度): 截取子串,位置从1开始算,截取长度可以不写,就是截取到结尾

instr(str1,str2):获取str2的最开始出现位置

trim(str1 FROM str2):去掉str2前后str1字符

lpad(str1,number,str2):在str1的左边填充str2,但是填充后的长度为number,

rpad(s ,n ,s2):在右边填充

upper() 转换大写

lower() 转换小写

strcmp(str,str) 比较字符串大小,有点类似java String的compareto()

LEFT /RIGHT:截取长度(str,length)

数学函数

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YKuNzRcg-1620787651053)(MySql.assets/1618803048226.png)]

abs():绝对值

cell():向上取整,就是天花板函数,但是是返回>=参数的最小整数,注意=

floor():向下取整,就是地板函数,返回<=参数的最大整数,

round(number,length):四舍五入函数,length是几位小数,可以不写,默认0

mod():取余,被除数的符号为余数的符号

truncate(x,d):截取,保留小数点后d位

日期函数

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E1wMCHQs-1620787651053)(MySql.assets/1618803063187.png)]

now():获取当前日期,会包含时间

curdate():获取当前日期,不含时间

curtime():获取当前时间

datediff():计算两个日期的差,是那前一个参数减第二个参数,返回值为天数

date_format():第一个参数为日期,第二个为格式字符串,具体如下图
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SC6z8Yx4-1620787651055)(MySql.assets/image-20210326101848795.png)]

举列
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qF1CBrAb-1620787651057)(MySql.assets/image-20210326102047677.png)]
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ifTA910t-1620787651058)(MySql.assets/image-20210326102122176.png)]

str_to_date():按指定的格式解析字符串为日期,是date_forma()的反过来
在这里插入图片描述

如[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kPLr3opU-1620787651059)(MySql.assets/image-20210326102350817.png)]

流程控制函数

if(条件,表达式1,表达式2):如果条件为真,做表达式1,否则表达式2

  1. 情况1:类似switch语句,可以实现等值判断

    case 表达式

    when 值1 then 结果1

    when 值2 then 结果2

    else 结果n

    end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m78探索者

谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值