函数
#left() right() 左边或者右边的字符
#lower() upper() 转换成大写或小写的字符
#ltrim() rtrim() 去除左边或者右边的字符
#length() 长度,一字节为单位
#soundex() 转换为语音值
select * from student where soundex(coll) = soundex('hello');
日期和时间处理
- 日期格式:YYYY-MM-DD
- 时间格式:HH:MM:SS
AddDate() | 增加一个日期(天、周等) |
---|---|
AddTime() | 增加一个时间(时、分等) |
CurDate() | 返回当前日期 |
CurTime() | 返回当前时间 |
Date() | 返回日期时间的日期部分 |
DateDiff() | 计算两个日期之差 |
Date_Add() | 高度灵活的日期运算函数 |
Date_Format() | 返回一个格式化的日期或时间串 |
Day() | 返回一个日期的天数部分 |
DayOfWeek() | 对于一个日期,返回对应的星期几 |
Hour() | 返回一个时间的小时部分 |
Minute() | 返回一个时间的分钟部分 |
Month() | 返回一个日期的月份部分 |
Now() | 返回当前日期和时间 |
Second() | 返回一个时间的秒部分 |
Time() | 返回一个日期时间的时间部分 |
Year() | 返回一个日期的年份部分 |
数值处理
函数 | 说明 |
---|---|
SIN() | 正弦 |
COS() | 余弦 |
TAN() | 正切 |
ABS() | 绝对值 |
SQRT() | 平方根 |
MOD() | 余数 |
EXP() | 指数 |
PI() | 圆周率 |
RAND() | 随机数 |
汇总
函 数 | 说 明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |
#distinct 聚合函数去重
select avg(distinct(coll)) as avf_coll from student;
数据定义语言
数据库
#创建数据库
create database student;
create database student if exists;
#删除数据库
drop database student;
drop database studnet if exists;
#选择数据库
user student;
数据表
#创建表
create table student(
id int(10) unsigned not null comment 'id',
name varchar(64) not null default 'default' comment '名称',
tender tinyint(1) not null default 0 comment '性别',
age tinyint(3) not null default 0 comment '年龄'
);
#根据已有表创建新表
create table student_two as select * from student;
#删除表
drop table student;
#修改数据表
#添加列
alter table student add score int(3);
#删除列
alter table student drop column score;
#修改列
alter table student modify column score int(3);
#添加主键
alter table student add primary key (id);
#删除主键
alter table student drop primary key;
索引
#创建索引
create index student_index on student(id);
#添加索引
alter table student add index student(id);
#创建唯一索引
create unique index student_id on student(id);
#删除索引
alter table student drop index student_id;
约束
约束类型:
NOT NULL
- 指示某列不能存储 NULL 值。UNIQUE
- 保证某列的每行必须有唯一的值。PRIMARY KEY
- NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。FOREIGN KEY
- 保证一个表中的数据匹配另一个表中的值的参照完整性。CHECK
- 保证列中的值符合指定的条件。DEFAULT
- 规定没有给列赋值时的默认值。
create users(
id int(10) unsigned not null auto_increasement comment '自增id',
username varchar(64) not null unique default 'default' comment '用户名',
password varchar(64) not null default 'default' comment '密码',
enable tinyint(4) default null comment '是否有效',
primary key(id)
)engine=innodb auto_increasement=2 default charset=utf8mb4 comment = '用户表';
事务
#开启事务
start transaction;
#插入A
insert into user values(1,'root','root');
#创建保留点
savepoint updateA;
#插入数据B
insert into user values(2,'root2','root2');
#回滚到保留点
rollback to updateA;
#提交事务
commit;
权限
#创建用户
create user jesse identified by 'password';
#修改用户名
update user set user='jesse' where user='jesse';
flush privileges;
#删除用户
drop user jesse;
#查看权限
show grants for jesse;
#授予权限
grant insert,select on *.* to jesse;
#删除权限
revoke insert,select on *.* from jesse;
#更改密码
set password for jesse = 'password';