ez sql mysql_SQL语法+MySQL实战

一、SQL入门

概念理解:instance实例>DB库>table表

1,MySQL建库

create database ;

2,删库

drop database ;

3,建表

create table

(

int NOT NULL AUTO_INCREMENT,

char(50) NOT NULL,

char(255) NULL,

PRIMARY KEY (,)

) engine=InnoDB default charset=utf8;

注:常见的字段类型有:int, char, float(double), bool, date

主键值必须唯一。如果主键使用单个列,则它的值必须唯一。如果使用多个列,则这些列的组合值必须唯一。主键只能使用不允许NULL值的列。允许NULL值的列不能作为唯一标识。

AUTO_INCREMENT 告诉MySQL,本列每当增加一行自动增量。

常见存储引擎有三种:InnoDB(多用于商业订单场景,但不支持全文本搜索),MEMORY(数据存储在内存而不是磁盘上,速度快,适合于临时表),MyISAM(性能极高支持全文本搜索)

alter table后要给出更改表名,应尽量避免更改表,可以重新建表。

4,删除表

drop table ;

5,重命名表

rename table ;

二、SQL处理数据基本方法

数据检索

1,查看表中的字段信息

desc ;

2,检索某表中所有的数据内容

select * from ;

3,检索某表中部分字段的数据内容

select ,, from ;

4,检索某表中某一字段的不重复数据内容

select distinct from ;

5,限定检索某表中前3行的数据内容

select * from limit 3;

6,限定检索某表中第4行之后的3行数据内容

select * from limit 3,3;

数据排序

7,按照单个字段(字段1)从小到大排序

select * from order by ;

8,按照单个字段(字段1)从大到小排序(降序)

select * from order by desc;

注:若排序的内容是数字则按数字大小排序,若是字符内容则按首位(数字

9,多个字段的排序(在字段1的基础上如果有重复,再按字段2排序)

select * from order by ,;

10,当查询多个字段,若部分信息内容一致,建议增加多个字段排序

select , from order by ,;

注:排序字段(字段2)可不在查询字段(字段1,3)中

11,找出最贵产品top1

select * from order by desc limit 1;

数据过滤

12,筛选表中满足条件的数据(操作符针对已知值)

select * from where != 1;

注:where条件的操作符有=, >, =, <=, <>, !=, between 1 and 8, in (1,2,3), not in (2),

13,筛选表中满足条件的数据(通配符找字符串)

select * from where like 'jet%';

注:where条件的 like通配符 %模糊匹配, _逐字匹配,

14,筛选表中满足条件的数据(正则表达式匹配文本字符串)

select * from where REGEXP '.000';

注:正则表达式中 '.'代表任意字符,'|'代表or,'[1-2]'代表1-2的范围,'[^2]'代表非2,'\\.'代表真正的'.'字符,'?'代表任何一个字符,'[0-9]'代表所有的数字,'[a-zA-Z]'代表所有的字符串,'[0-9]{4}'代表4位数字,'[[:digit:]]{4}'代表4位数字。

15,空值检查(找字段1中值为空的行)

select * from where is NULL;

16,组合筛选条件

select * from where and/or ;

注:若 and 和 or 连用会有计算次序的问题,一般先and后or,或先括号内后括号外部条件。

数据处理

17,字段的拼接

select * concat(, '-', ) from ;

18,使用字段别名

select * concat(, '-', ) as from ;

19,处理文本串函数(如:删除或填充值,转换值为大写或小写)

# trim为去掉相关空格,ltrim去掉左边空格,rtrim去掉右边空格

select * ltrim ( rtrim() ) as from ;

# 定义字符串全部大写/小写,upper函数为全部大写,lower函数为全部小写

select ,upper() as from ;

# 字符串截位处理,截取字段1中字符串从1-5的内容

select ,substring(,1,5) from ;

# 发音匹配函数,soundex功能,中文中可能不太适用

select * from where soundex()=soundex('li');

20,算数操作的数值函数(如:返回绝对值,进行代数运算+-*/)

select * + as from ;

注:取余mod(), 0-1之间的随机数rand(),随机种子:rand(1)确定的随机值,指数2的3次方pow(2,3),向上取整ceil(),向下取整floor(),四舍五入round(),绝对值abs()。

21,日期和时间函数(如:返回两个日期之差,检查日期有效性)

#筛选日期时间字段中2015年9月份的所有数据

select * from where date() between '2015-09-01' and '2015-09-30';

#筛选日期时间字段中2015年9月份的所有数据

select * from where year()=2015 and month()=9;

#返回两个日期之差,用于检查日期有效

select datediff('2017-01-01','2016-01-01');

注:常见的时间处理函数:year(), month(), day(), 当前日期curdate(), 当前时间curtime(), 添加日期adddate(), 添加时间addtime(), 日期之差datediff()。

22,系统函数(返回用户登录信息,检查版本细节)

#没有实际案例

select * * as from ;

数据汇总

23,行数,行组中的和,表列中的最大值/最小值/平均值

#求表1中,字段1的平均值

select avg() from ;

#求表1中,行数

select count(*) from ;

#求表1中,字段1的最大/最小值

select max(),min() from ;

#求表1中,字段1的数据之和

select sum() from ;

注:常见的汇总函数:平均值avg(), count(), max(), min(), sum()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值