MySql数据库 SQL语言|函数 基础一篇够用

MySql相比较于SQL server具有体积更小,使用更方便等优点,并且MySql开源,主表采用索引组织表,使用物理复制。

MySql的默认路径: C:\Program Files 默认密码root
char是定长字符串类型 varchar是变长字符串类型 比char类型更节省空间
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字,都可以存放20个,最大大小是65532字节

SQL语言默认四种:
1.数据定义语言DDL(Data Definition Language)
即基础增删改查语言 create/drop/alter/turncate
2.数据操纵类语言DML(Data Manipuplation Language)
检查和更新语言: insert/delete/update/select
3.数据控制语言DCL(Data Control Language)
对象授权,用户维护等
grant/revoke/commit/rollback
4.其他

1. SQL语句:

SHOW DATABASES/TABLES 查看所有数据库/表
在这里插入图片描述

**create database db1 default character set utf8;**创建数据库
在这里插入图片描述
**drop database db1;**删除数据库
在这里插入图片描述
**create table t1(id int(3),name varchar(20),age int(2),country varchar(20));**创建表
在这里插入图片描述
alter table t1 add(info varchar(20)); 添加表字段
alter table t1 drop id; 删除表字段语句
在这里插入图片描述
**alter table t1 modify age varchar(20);**修改表字段类型格式
**alter table t1 change age newAge int(3);**修改表字段名称
**alter table t1 rename per;**修改表名
truncate table t1;turn表示截断 与drop不同 此处是清空表结构
**drop table t1;**删除表结构

  • truncate 和 delete的区别

对于少量数据,delete效率高,一行一行删除
对于海量数据,truncate效率高
delete支持闪回,truncate不支持闪回
delete不会释放空间,truncate会释放空间
delete会产生碎片,truncate不会产生碎片

2.创建一个员工表小案例

create table t_employees_info (
user_id int(15) COMMENT ‘员工编号’,
name1 VARCHAR(10) COMMENT ‘员工姓名’,
job VARCHAR(9) COMMENT ‘员工职位’,
hiredate DATE COMMENT ‘入职日期’,
sal int(7) COMMENT ‘员工薪资’
);

在这里插入图片描述
向表中插入值
insert into t_employees_info (user_id,name,job,mgr,hiredate,sal,deptid) values (5555,‘zhangsan’,‘kaifa’,‘0000’,‘2000-1-1’,800,20);
在这里插入图片描述
查询员工表
在这里插入图片描述
查询员工表中员工部门是10和20的编号姓名等:

在这里插入图片描述
查询员工表中部门既不是20也不是30的所有员工信息
在这里插入图片描述
查询张三和李四的工资
在这里插入图片描述
按照组别算每个组的平均工资
在这里插入图片描述
查询部门id员工平均工资大于2000的部门(使用having语句)
在这里插入图片描述

SELECT共6个字句 SELECT FROM必须有 他们之间必须遵循严格的顺序
SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY
其中HAVING和*比较消耗资源 应尽量避免使用

1.比较运算
1 > >= < <= = <>(或!=)
在这里插入图片描述

2.范围查询
BETWEEN AND 、NOT BETWEEN AND
在这里插入图片描述

3.空值查询
IS null 、IS NOT null #IS不等同于’='
在这里插入图片描述

4.字符匹配查询
[NOT]LIKE<匹配的字符串>[ESCAPE<换码字符>]
%表示任意长度的字符串 _表示任意一个字符
5.当查询表中数据记录较多时,可以进行排序 order by字句
6.Distinct 去重
7.分组查询Group By子句

3.SQL函数

常用的聚合函数
1.count 统计指定字段的记录个数
2.sum 统计指定字段的和
3.avg统计指定字段的平均值
4.max\min返回指定字段中的最大\小值

函数:string || string 字符串连接操作
函数:CONCAT(str,str…)
在这里插入图片描述
也可以连接字符串和非字符串
在这里插入图片描述
函数:string || non-string 字符串连非字符串操作

函数:bit_length(string) 计算字符串的所占位数
在这里插入图片描述
函数:lower(string) upper(string)转换大小写

函数:position(substring in string)子串在字符串中的位置

函数:substring(string [from int] for int]) 截取任意长度的子字符串

函数:to_char(str1,text)将时间戳或者数字转化为字符串

SELECT TRUNC/ROUND/CEIL/FLOOR 数字截取/四舍五入/进位取整/退位取整
在这里插入图片描述
删除某张表的重复数据,只保留一条
思路:根据编号分组,将重复的数据放到一组中,然后一组只保留一个
rowid:物理地址 rowrun:逻辑地址
delete from t1 where rowid not in (select min(rowid) from t1 group by id);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

八缸键盘侠

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值