数据表操作
创建数据表
mysql> create table user(
-> id int ,
-> name varchar(10) ,
-> age int);
修改数据表
alter table user add tel varchar(11) ; //为数据表添加字段
alter table 数据表 add 字段名 数据类型 ;
alter table user change name realname varchar(5) ;//修改数据表字段
alter table user alter column age set default 16 ; //修改默认值
alter table user drop tel ; //删除字段
查看数据表
show tables;
删除数据表
drop table user ;
查看数据表结构
desc user ;
数据操作
增删改查
- 插入数据
insert into user values (1 , 'zhangsan' , 17); //直接插入一条数据3
insert into user values(2 , 'lisi' , 18) , (3 , 'wang' , 19) ; //同时插入多条数据
insert into user (id , age) values (4 , 20) ; //选择字段插入数据
- 删除数据
delete from user where id = 1 ;
delete from 表名 where 条件 ;
delete from user ; //不加条件会删除表中所有数据
- 修改数据
update user set age = 15 where id = 1 ;
update 表名 set 修改值 where 条件1 ;
select * from user ; //不加条件会修改所有条目
- 查询数据
select * from user ; //* 表示所有字段
select id , age from user ; //查询所需字段
select * from user where id = 2 ; //根据条件查询
SQL函数
数学函数、日期函数、字符串函数、聚合函数
数字函数
- 求绝对值abs()
select abs(integral) from user where id = 5 ;
select abs(字段) from 表名 where 条件 ;
- 向下取整floor()
select floor(integral) from user where id = 5 ;
select floor(字段) from 表名 where 条件 ;
- 向上取整ceil()
select ceil(integral) from user where id = 5 ;
字符串函数
- 添加数据insert(s1 , index , len , s2)
在查询的结果中对字符串内容进行添加数据的修改
s1是目标字符串,index是下标,下标从1开始,len是添加长度,s2是追加内容。
select insert(realname , 2 , 3 , 'insert' ) where id = 5 ; //从2开始后3位的数据替换为整个insert
- 将字母转换为大写upper()
select upper(realname) from user ;
- 将字母转换为小写lower()
select lower(realname) from user ;
- 返回s字符串的前len个字符left(s , len)
select left(realname , 2) from user ;
- 返回s字符串后len个字符right(s,len)
select right(realname , 2) from user ;
- 从中间截取字符串,有index开始,长度为len,substring(s ,index , len)
select substring(realname , 2 , 3 )from user ;
- 反转字符串reverse(s)
select reverse(realname) from user ;
日期函数
- 获取当前日期curdate()
select curdate() ;
- 获取当前时间curtime()
select curtime() ;
- 获取当前日期+时间now()
select now() ;
- 计算两个日期之间间隔天数datediff(date1 , date2)
select datediff('2021-5-6' , '2020-4-3') ;
- 计算date日期累加n天后的日期adddate(date , n)
select adddate('2020-11-1' , 100) ;
- 计算date日期之前n天的日期subdate(date , n)
select subdate('2020-11-1' , 100) ;
聚合函数
- 根据某个字段统计总记录数count()
select count(*) from user ;
- 计算某个字段值的总和sum()
select sum(age) from user ;
- 计算某个字段的平均值avg()
select avg(age) from user ;
- 求某个字段的最大值max()
select max(age) from user ;
- 求某个字段的最小值min()
select min(id) from user ;
条件查询
分组查询
select age from user group by age ;
排序查询
select * from user order by age ; //默认升序
select * from user order by age desc ; //降序
select * from user order by age asc ; //升序
MySQL运算符
算是运算符
- 执行运算符:加减乘除
select age +2 from user ;
- 比较运算符:大于、小于、等于、不等于,1为true、0为false
select age > 20 from user ;
- 逻辑运算符:与或非(&& ,|| , !),将两个比较运算符进行逻辑计算
select age > 20 && integral < 6 from user ;
特殊运算符
- 判断是否为空值 is null
select integral is null from user ;
- 判断值是否在区间之内 between
select age between 10 and 20 from user ;
- 判断值是否在某个确定的集合中 in
select realname from user where age in (17 , 19 , 222) ;
- 模糊查询 like
select * from user where realname like 'l%' ; //查询以l开头的数据
select * from user where realname like '%n' ; //查询以n结尾的数据
select * from user where realname like '%a%' ; //查询包含a的数据