DML和DQL以及常用函数
1.使用INSERT添加数据
1.1 insert into 表名(字段名列表)values(值);多行值用逗号隔开
例:INSERT INTO `students`(`学号`,`密码`,`学生姓名`,`性别`,`年级编号`,`手机号码`,`地址`,`出生日期`)VALUES(10002,123,'李文才','男',1,13645667890,'','1994-04-12'),
(10003,123,'才','男',1,13645667890,'','1994-04-12');
1.2 将查询结果插入到新表
create table 新表名(select 字段名1,字段名2,.... 字段名n from 原表名);
例:create table `student`(select `学号`,`学生姓名`,`年级编号` from students);》》》》》将students中的 `学号`,`学生姓名`,`年级编号`插入到新表student中,新表student无需提前创建,不然会报错!
2.使用DML更新数据
update 表名 set 列名=更新值[where 更新条件];
例:UPDATE students SET 学号=20001 WHERE 学号=10002;》》》》》》将学号10002改为20001
3.使用DML删除数据
3.1 使用delete删除数据
delete [from] 表名[where 删除条件]; 删除的是整条记录
例:DELETE FROM students WHERE 学号=10012;》》》》》删除学号为10012的学生信息
3.2 使用truncate table删除数据
truncate table 表名;
删除的是列表中的所有行,删除的数据不能恢复还原,不建议使用
4.使用DQL中的select语句进行查询
select 字段名/列名/表达式/函数 from (where 查询条件)(order by 排序的列名)》》》》》order by 使用来排序的
4.1 查询所有的数据行和列 select * from 表名;
4.2 查询部分行和列
例子:SELECT 学号,学生姓名,地址 FROM students WHERE 地址='北京市海淀区';》》》》查询地址为北京市海淀区的行,且只显示 学号,学生姓名,地址;
SELECT 学号,学生姓名,地址 FROM students WHERE 地址<>'北京市海淀区';》》》》查询地址不为北京市海淀区的行,且只显示 学号,学生姓名,地址;
5. 常用函数
5.1 聚合函数 AVG() 返回某字段的平均值》》》》select avg(studentResult) from result;
count() 返回某字段的行数》》》》select count(studentResult) from result;
max() 返回某字段的平均值》》》》select max(studentResult) from result;
min() 返回某字段的平均值》》》》select min(studentResult) from result;
sum() 返回某字段的平均值》》》》select sum(studentResult) from result;
5.2 字符串函数 concat(str1,str2,......,strn)连接字符串为一个完整的字符串》》》select concat('My','S','QL')返回:MySQL
insert(str,start,len,newstr)字符串str从start位置开始,将len个字符串的子串替换为newstr》》》》SELECT INSERT('这是Orcal数据库',3,6,'MySQL');返回:这是MySQL数据库
lower(str)将字符串str中的所有字符变为小写》》》》》selector lower('MySQL'); 返回:mysql
upper(str)将字符串str中的所有字符变为大写》》》》》selector lower('MySQL'); 返回:MYSQL
substring(str,num,len)返回字符串str的第num个位置开始长度为len的字符串》》》》select substrig('JavaMySQL',5,5);返回:MySQL
5.3 时间日期函数 curdate 获取当前日期 select curdate();返回:2018-03-14
curtime获取当前时间 select curtime();返回:16:34:20
now获取当前日期和时间 select now();返回:2018-03-14 16:35:20
week(date)返回日期date为一年中第几周 SELECT WEEK('2018-02-14'); 返回:6》》》select week(now());当前时间是第几周
year(date)返回日期date的年份
hour(time)返回日期time的小时值
minute(time)返回日期time的分钟值
datediff(date1,date2)返回日期date1和date2之间相隔的天数》》》》》SELECT DATEDIFF('2018-05-14','2018-03-14');返回:61
adddate(date,n)计算日期date加上n天后的日期》》》》》SELECT ADDDATE('2018-03-14',6);返回:2018-03-20
5.4 数学函数 ceil(x)返回大于或等于数值x的最小整数》》》》SELECT CEIL(5.9);返回:6
floor(x)返回小于或等于数值x的最大整数》》》》SELECT CEIL(5.9);返回:5
rand()返回0~1间的随机数
6. order by排序字句 asc升序,desc降序
SELECT `学生姓名`,`年级编号`,`科目名`,`成绩` FROM school WHERE `成绩`>80 ORDER BY `成绩`ASC,`年级编号`DESC;
表示成绩大于80,并且按成绩升序,年级降序的顺序排列
7. limit字句 limit(位置偏移量,显示行数)