SQL语句

1、DDL—数据定义语句

1.1、数据库

  • 增:创建数据库—create database 数据库名;

  • 删:删除数据库—drop database 数据库名;

  • 改:修改数据库字符集和校对规则—alter database 数据库名称 character set 字符集名称 collate 字符集对应校对规则

  • 查:

  • 切换数据库:use 数据库名;

  • 查看权限下的所有数据库:show databases;

  • 查看某个数据库详细定义语句:show create database 数据库名\G

1.2、数据库表

  • 增:创建表格—create table 数据库表名(字段名 数据类型,字段名 数据类型.....)

  • 删:删除表—drop table 表名称;

  • 改:

  • 修改表名称

  • alter table 旧表名 rename to 新表名;

  • rename table 旧表名称 to 新表名称

  • 修改表结构

  • 增加字段

  • alter table 表名称:add column 字段名称 数据类型;

  • 加在某个字段后面:alter table 表名称 add column 后加字段名称 数据类型 After 某个字段

  • 加字段放在第一位:alter table 表名称 Add cloumn 字段名称 数据类型 first;

  • 删除字段:

  • alter table 表名称 column 字段名称

  • 修改字段

  • 数据类型:alter table 表名称 modify 【column】 字段名称 新的数据类型;

  • 名称:alter table 表名称 change 【column】 旧字段名称 新的字段名称 新的数据类型;

  • 位置:

  • alter table 表名称 modify 【column】 字段名称 数据类型 first;

  • alter table 表名称 modify 【column】 字段名称 数据类型 after 另一个字段;

  • 查:

  • 查看表结构

  • desc 表名称;

  • describe 表名称;

  • 查看所有表格

  • show tables

  • show tables from 数据库名称

  • 查看表的详细定义信息:show create table 表名称\G

2、DML数据操作语句

2.1、添加数据

  • 单条:

  • insert into表名称 values(值列表)-------注意:这种方式默认添加的值与字段顺序一致,需要类型、个数必须一一对应

  • insert into表名称(字段列表) value (值列表)-------注意字段与值对应,可写部分字段

  • 多条:insert into 表名 values(值列表),(值列表),(值列表)

2.2、删除数据

  • 删除部分:delete from 表名称 where 条件

  • 删除整张表:

  • delete from 表名称 ;一条一条删支持回滚

  • truncate 表名称 ;直接删表重建,效率高,但是不能回滚,建议忘掉

2.3、修改数据

  • 修改所有:update 表名 set 字段名=值,字段名=值;

  • 修改部分:update 表名 set 字段名 = 值 where 条件;

3、DQL—查询语句

3.1、普通查询

【select 字段列表 from 表名称 where 筛选条件】

说明:

  1. 列表字段可以只写需要用到的,如果查询所有字段可直接在select后面写【*】,但是建议养成直接写字段习惯。

  1. 不写where代表查询整张表数据

3.2、查询结果排序(order by)

【select 列表字段 from 表名 where 筛选条件 order by 排序字段 desc/asc】

说明:

关键字:order by

降序:desc

升序:asc

3.3、查询结果分组(group by)

【select 列表字段 from 表名称 where 筛选条件 group by 分组字段 having 筛选条件 order by 排序字段】

说明:

  1. 书写位置分组关键字(group by)在排序(order by)之前

  1. having:代表分组后对分组结果进行筛选

  1. 一般分组常配合函数使用

  1. 使用分组后列表字段就不能随便写,要不写函数,要不只能写分组字段,否则报错

3.4、查询结果分页(limit)

【select 字段 from 表 where 条件 order by 排序字段 limit m,n】

公式:m=(page-1)*n

n:表示每页显示记录数

m:表示从第几行开始取记录,这里注意第一行的索引是0

page:表示第几页

3.5、函数

  • 单行函数

  • 数学函数:

函数

意义

ABS(x)

返回x的绝对值

CEIL(x)

返回大于x的最小整数值

FLOOR(x)

返回小于x的最大整数值

FLOOR(x)

返回小于x的最大整数值

MOD(x,y)

返回x/y的模

RAND()

返回0~1的随机值

ROUND(x,y)

返回参数x的四舍五入的有y位的小数的值

TRUNCATE(x,y)

返回数字x截断为y位小数的结果

SQRT(x)

返回x的平方根

POW(x,y)

返回x的y次方

  • 字符串函数

函数

意义

CONCAT(S1,S2,……Sn)

连接S1,S2,……Sn为一个字符串

UPPER(s)或UCASE(s)

将字符串s的所有字母转成大写字母

LOWER(s)或LCASE(s)

将字符串s的所有字母转成小写字母

LTRIM(s)

去掉字符串s左侧的空格

RTRIM(s)

去掉字符串s右侧的空格

TRIM(s)

去掉字符串s开始与结尾的空格

  • 时间日期函数:

函数

意义

CURDATE()和CURRENT_DATE()

获取系统日期

CURTIME()和CURRENT_TIME()

获取系统时间

  • 加密函数

函数

意义

md5(str)

返回字符串str的md5值,也是一种加密方式

SHA(str)

返回字符串str的sha算法加密字符串,40位十六进制值的密码字符串

SHA2(str,hash_length)

返回字符串str的sha算法加密字符串,密码字符串的长度是hash_length/4。hash_length可以是224、256、384、512、0,其中0等同于256。

  • 条件判断函数

函数

意义

IF(value,t,f)

如果value是真,返回t,否则返回f

IFNULL(value1,value2)

如果value1不为空,返回value1,否则返回value2

CASE WHEN 条件1 THEN result1 WHEN 条件2 THEN result2 … ELSE resultn END

if ,else if

CASE (expr) WHEN 常量值1 THEN 值1 WHEN 常量值2 THEN 值2 … ELSE 值n END

switch...case

  • 分组函数(聚合函数)

  • 求平均值:AVG(x)

  • 求总和:SUM(x)

  • 求最大值:MAX(x)

  • 求最小值:MIN(x)

  • 统计记录数:COUNT(x)

3.6、关联查询

  • 内连接:

关键字

inner join

语法实例

select 字段列表 from 表1 inner join 表2 on 关联条件

结果

A表 ∩ B表

  • 左外连接

关键字

left join

语法实例

select 字段列表 from 表1 left join 表2 on 关联条件

结果

A - A∩B

  • 右外连接

关键字

right join

语法实例

select 字段列表 from 表1 right join 表二 on 关联条件

结果

B - A∩B

  • 自连接连接

  • 自己连接自己的字段,物理实际上只有一张表,但逻辑上是成两张表

3.7、集合操作(全外连接)

前提:俩个结果集,字段个数和字段类型一一对应

关键字

意义

union

并集去重,对俩个集合进行并集操作,不包括重复行同时进行默认规则的排序

union All

全集不去重,对俩个结果进行并集操作,包括重复行,不进行排序

intersect

交集找重复,对俩个结果进行交集操作,不包括重复行,同时进行默认规则进行排序

minus

对俩个结果进行差操作,不包括重复行,同时进行默认规则的排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值