sql常用的函数

对表结构进行操作的一些语句:

  • 添加字段名: alter table 表名 add 字段名 varchar()
  • 修改:1. 修改数据类型: alter table 表名 modify 字段名 数据类型

2.修改字段名字和字段类型: alter table 表名 chance 旧段名 ,新字段 数据类型

  • 删除字段 alter table 表名 drop 字段名
  • 修改表名:alter table 表名 rename to 新表名
  • 删除表: drop table 【if exists 】表名

truncate table 表名

对表中一些数据进行处理

  • 添加数据:insert into 表 (字段名) values(值)
  • 修改数据:update 表名 set 字段名1 = 值1,字段名2 = 值 where
  • 删除数据:delete from 表名 where

对数据库中一些表的结构进行约束

  1. 非空约束 not null 不为空
  2. 唯一约束 unique 所有数据唯一且不重复
  3. 主键约束 primary key 主键一行数据的唯一标识,非空且唯一
  4. 默认约束 default 保存数据时,若没有指定值,则采用默认值
  5. 检查约束 check 字段值满足一个值
  6. 外键约束 foreign key 两张表数据之间建立连接,保证数据一致性和完整性

主键约束,自动增长:primary key ,auto_increment

不为空,并且唯一:not null, unique

大于0,并且小于等于120 check

若没有值,默认为 1 default

添加 外键:

alter table 表名 add constraint 外键名称 foreign key (外键名称)references 主键名称

删除主键:alter table 表名 drop 外键名称

主键作用(外键):

外键取值规则:空值或参照的主键值

(1)插入非空值时,如果主键值中没有这个值,则不能插入。

(2)更新时,不能改为主键表中没有的值。

(3)删除主键表记录时,可以在建外键时选定外键记录一起联删除还是拒绝删除。

(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

no action 不允许删除 restrict同上

cascade 检查是否有外键,若有,删除时两者同时进行删除

set null 删除记录时,检查记录是否有外键 若有,则设置为null

set default 父表进行变更时,子表将外键设置为默认值

中学

DCL:data control language 管理数据库,控制数据库访问权限。

create user ‘用户名’ @‘主机名’ identified by '密码';

alter user '用户名' identified with mysql_native_password by '新密码' drop user '用户名' @‘主机名’

DCL 权限控制

show grants for '用户名' @ ‘主机名’;

多表查询

内连接:查询两表交集部分

隐式内连接:select 字段名 from 表1, 表2 where 条件(连接条件)

显示内连接:select 字段名 fROM 表1 join表2 on 条件(连接条件)

两者之间区别:隐式连接好理解好书写,语法简单,担⼼的点较少。但是显式连接可以减少字段的扫描,有更快的执⾏速度

外连接 :得到的是对应连接的一些数据

左外:左表所有的数据 select 字段名 from 表1 left join 表2 on 连接条件

右外: 右表所有的数据 select 字段名 from 表1 right join 表2 on 连接条件

自连接:自己表进行了解

select 字段名列表 from 表1 别名A join 表B on 条件

联合查询:union ,union all

将两个表进行拼接:这里需要注意的是union按理 会删除相同的部分

WEBRESOURCE15e27d87c9265e696c83beabfbba4ddd

一些常用的函数:

  • 字符串函数

concat(s1,s2) 字符串的拼接

lpad(str,n,pad) 左填充 用pad 进行左填充,达到n个字符串长度

rpad(str,n,pad) 左填充 用pad 进行左填充,达到n个字符串长度

trim(str) 去掉头尾部空格

substring(str,start,len) 返回字符串从str 从start位置起的len个长度的字符串

  • 数值函数

ceil(x) 向上取整

floor(x) 向下取整

mod(x,y) 返回x/y的模

rand() 返回0—1的随机数

round(x,y) 对x四舍五入,保留y位小数

  • 日期函数

curdate() 当前日期

curtime() 当前时间

now() 日期+时间

year(date) 指定date年份

month(date) 指定date 月份

day(date) 指定date日期

day_add(date, interval, expr,type) 返回日期/时间值加上一个时间间隔expr 后的时间值

datediff(date1,date2) 返回起始时间date1和结束时间date2的天数差

timestamps(seconds,date1,date2)

  • 流程控制函数

if (value,t, f)value为TRUE 返回t,否则f

ifnull(value1,value2) value1不为空,返回value1,否则返回value2

case

when value1 (value1 为TRUE)

then res

else

default

end;

case expr

when value1 (value1为expr)

then res

else

default

end;

Row_number()函数是SQL SERVER系统函数中的一种,它为结果集的分区中的每一行分配一个连续的整数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值