MySQL总结
增删改查(Create Delete Update Select)
一、增
1.数据库和表基本操作
创建数据库:CREATE DATABASE IF NOT EXISTS stduy [DEFAULT CHARSET utf8];
切换数据库:use study;
查看数据库里有哪些表:show tables;
创建一个新表:
Create table students (
Id int(10) primary key auto_increament,
Name varchar(100) not null,
Age int(4) );
查看表结构:desc students;
2.表内插入
插入多条语句:
Insert into students(id,name,age) values(1, ’张三丰’, 8),
(2, ‘郭襄’, 16)
(3, ‘杨过’, 38);
二、删
删除数据库:drop database study;
删除表:drop table students;
删除某一行:delete from students where condition;
三、改
Update students set name = ‘周伯通’ , age = 99 where id = 1;
四、查
查询语句平时使用较多,也比较熟悉,不再详细Review了,MySQL中常用查询语句如下:
SELECT name,age
FROM students
WHERE id = 1
GROUP BY name
HAVING name = ‘杨过’
ORDER BY age
LIMIT 1 OFFSET 0
五、基本函数
MySQL里函数不多,但平时练习使用频率较少,所以对于这里面能使用哪些函数,以及如何使用就不那么熟悉了,所以将目前学过的函数作一些总结。
1.字符串函数
Concat(str1,str2…) :连接字符串;
Concat(‘郭襄’, ‘16岁那年’, ‘爱上了’, ‘杨过’)
Substr(str,pos,len):根据位置和长度提取字符串;
Substr(‘123456789’,2,5)
Instr(str,substr): 在一个字符串(str)中搜索指定字符(substr),返回子串第一次出现的索引,如果没有则返回0
Instr(‘abcdefg’, ‘b’)
Trim([remstr from] str) :去除首尾所选字符,默认去除首尾空字符
Trim(“a” from “aaaaa张翠山aaaaaa”)
Lapd/rpad(str,len,padstr):用指定字符实现左/右填充至指定长度
lpad(“123456”,12,”ab”)
lpad(‘123456’, 3,’ab’) 长度小于字符串长度时,从左裁剪至等长
Replace(str, from_str, to_str) :替换
Replace(“张无忌爱上周芷若”, ”周芷若”, ”赵敏”)
Insert(str, pos, len, new_str):根据在字符串中的位置和长度进行替换
Insert(‘abcd’, 1, 2, ‘xp’)
Upper/lower(str):把str中所有字符变成大写/小写
Upper(‘abcd’)
Left/right(str,len):将str从左/右裁剪至指定长度
Left(‘abcd’, 3)
2.数学函数
Round(1.45):四舍五入
Round(1.567,2):保留几位小数
Ceil(1.25):向上取整
Floor(-2.4):向下取整
Truncate(1.6999,1):截断(截断小数点后)
Mod(-10,3)=-10%3:取余---mod(a,b)=a-(a/b)*b
Abs(-3.54):返回绝对值
Rand():返回0-1之间的随机数
3.日期函数
Now():返回当前系统日期+时间
Curdate():返回当前系统日期
Curtime():返回当前系统时间
Year(now()):返回日期的年
Month(),day(),hour(),minute(),second()
Str_to_date(“3-2 1992”, “%c-%d %Y”) 将字符通过指定格式转换成日期
Date_format(now(),”%y年%m月%d日”):将日期转换成字符
Datediff('2020-5-20','2020-5-25'):返回两个日期之间的天数(前者减后者)
4.流程控制函数
If(10>5,”大”,”小”):ture返回”大”,false返回”小”
ifnull(exp1,exp2) :如果expr1不为空,则返回expr1的值,如果expr1为空则返回expr2的值
Case使用一(等于):
Select salary as 原始工资,department_id,
Case department_id
When 30 then salary*1.1
When 40 then salary*1.2
When 50 then salary*1.3
Else salary
End as 新工资
Case使用二(范围):
Select salary,
Case
When salary>20000 then “A”
When salary>15000 then “B”
When salary>10000 then “C”
ELSE “D”
END AS 工资级别
Datediff(2020-4-6,2019-12-31):日期差用天表示
5.其它函数
Version():查看MySQL版本号
Database():返回默认或当前数据库的名称
User():显示当前登陆的用户名与它对应的host