第二天,导出文件sql,查询,视图view,聚合函数,反模式,字符串处理函数
//把数据库导出到脚本文件
mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql
CREATE TABLE stud(
id INT PRIMARY KEY,
NAME VARCHAR(32) NOT NULL,
score NUMERIC(4,1)
);
//把所有名字都设成"Mike"了
UPDATE stud SET NAME="Mike"
//只设置分数>=70的记录的Name
UPDATE stud SET NAME="Exc" WHERE score>=70
//同时修改多个字段(下面两种方式都可。字段值即使不是字符类型,也可以加引号---注意,字符类型的值必须加引号。因此为安全考虑,最好所有的值都加引号--单引号和又引号都可以)
UPDATE stud SET NAME="笨蛋",id=5 WHERE score<60
UPDATE stud SET NAME="笨蛋",id='5' WHERE score<60
※where子句的句型
Select 字段列表 From 表名 where 条件 and 条件 or 条件
Update table tableName set .. Where 条件
Delete from tableName where ….
//查询分数在[60,80]之间的学生
SELECT * FROM stud WHERE score>=60 AND score<=80;
SELECT NAME,score FROM stud WHERE score BETWEEN 60 AND 80; //between子句是包含边界的
//查询分类正好是65和85的学生
SELECT * FROM stud WHERE score=65 OR score=85;
SELECT * FROM stud WHERE score IN(65,85); //in子句中的值是离散的
//模糊查询: like 参数: %(任意匹配) _(匹配单字符)
SELECT * FROM stud WHERE NAME LIKE '王%'; //姓王的学生
SELECT * FROM stud WHERE NAME LIKE '王_'; //姓王且名为单字的学生
SELECT * FROM stud WHERE NAME LIKE '王__'; //姓王且名为双字的学生
SELECT * FROM stud WHERE NAME LIKE '%王%';//姓名中包含"王"的学生
//查询某字段值为空
SELECT * FROM stud WHERE score IS NULL; //注意,不能用"="号
//视图View ---对视图的操作能够时时更新到物理表,只是操作范围只针对视图中的进行(效率更高)
CREATE VIEW studV AS SELECT * FROM stud WHERE score<60;
SELECT NAME FROM studV;
UPDATE studV SET score = score*1.1; //该句执行后: 1)如果分数及格则studV视图中不再包含该数据 2)物理表stud中的数据也更改了。
//聚合函数
SELECT COUNT(*) AS num FROM stud; //统计表中数据的行数
SELECT COUNT(score) AS num FROM stud; //统计score列中非NULL数据行的数量
SELECT AVG(score) AS avgg FROM stud;//统计分数的平均值(不包含score值为null的记录)
SELECT AVG(score) AS avgg FROM stud WHERE score IS NOT NULL;
SELECT ROUND(AVG(score)) AS avgg FROM stud;//四舍五入,取整
SELECT ROUND(AVG(score),2) AS avgg FROM stud;//四舍五入,保留两位小数
SELECT SUM(score) AS avgg FROM stud;//求和
SELECT MAX(score) AS avgg FROM stud; //最大值(最高分)
//查询出最高分学生的信息
SELECT * FROM stud WHERE score = (SELECT MAX(score) AS avgg FROM stud );
SELECT * FROM stud WHERE score IN( SELECT MAX(score) AS avgg FROM stud );
//查询有哪些年龄段的学生(显示有哪些年龄值,即年龄值相同的只显示一个)---以后的显示有哪些专业、哪些部门 都用distinct
SELECT DISTINCT age FROM stud;
SELECT DISTINCT age FROM stud ORDER BY age ASC; //升序
SELECT DISTINCT age FROM stud ORDER BY age DESC; //降序
//反模式--以下语句要么显示所有记录,要么一条也不显示。因为EXISTS()返回的是同一个结果
SELECT * FROM stud WHERE EXISTS( SELECT * FROM stud WHERE age=25 );
//句型: group by... having... ---把各年龄段学生的平均分显示出来
SELECT AVG(score) 平均分, age FROM stud GROUP BY age;
SELECT AVG(score) 平均分, age FROM stud GROUP BY age HAVING age>20;
SELECT AVG(score) 平均分, age FROM stud GROUP BY age HAVING AVG(score)>=70;
//字符串处理函数
Length(str) - 求字符串长度
Ltrim(str) - 去掉左边的空格
Rtrim(str) - 去掉右边的空格
Left(str,n); - 从左边取出n个字符
Right(str,n); - 从右边取出n个字符
Substring(str,begin,len) -返回子串, begin的序号从1开始 ※
Reverse(str) –返回颠倒的字符串
Lower(str) - 转成小写
Upper(str) - 转成大写
Concat(Str,str…..)串联字符串。
Instr(str,s) – 返回s在str中出面的位置,没有则返回0
SELECT * FROM stud WHERE LENGTH(NAME)>3;
SELECT * FROM stud WHERE LENGTH(LTRIM(NAME))>3;
SELECT SUBSTRING(NAME,1,2) FROM stud;
SELECT * FROM stud WHERE SUBSTRING(NAME,1,1)='王';//显示姓王的学生
※数据库和Java类之间的对象
List<Stud> ---表格
Stud类对象(值对象,域对象) ---表记录(表中的一行)
Stud类对象中的属性(成员变量) -----表字段(Field)
第二天,导出文件sql,查询,视图view,聚合函数,反模式,字符串处理函数的更多相关文章
- SQL查询结果列拼接成逗号分隔的字符串:group_concat
转自:SQL查询结果列拼接成逗号分隔的字符串 背景:做SQL查询时会经常需要,把查询的结果拼接成一个字符串. 解决方法: 通过 group_concat 函数 拼接的结果很长,导致拼接结果显示不全,可 ...
- sql 查询如何将结果集 输出为一段字符串?
文件id集合 文件表. SELECT CONCAT('2323',(SELECT 'dsfsd'),'232323'); SELECT CONCAT('2323',(SELECT file_ids F ...
- 转发:使用sql命令查询视图中所有引用的基础表
转自:使用sql命令查询视图中所有引用的基础表 使用sql命令查询视图中所有引用的基础表 之前有写过如何利用sql查询视图中所有引用的表发现这个方法并不能查出视图中所有的基础表,如果视图中有嵌套视图就 ...
- SQL反模式学习笔记21 SQL注入
目标:编写SQL动态查询,防止SQL注入 通常所说的“SQL动态查询”是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句. 反模式:将未经验证的输入作为代码执行 当向SQL查询的字符串中插入别 ...
- SQL反模式学习笔记8 多列属性
目标:存储多值属性 反模式:创建多个列.比如一个人具有多个电话号码.座机号码.手机号码等. 1.查询:多个列的话,查询时可能不得不用IN,或者多个OR: 2.添加.删除时确保唯一性.判断是否有值:这些 ...
- SQL注入的字符串连接函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...
- Sql注入中连接字符串常用函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...
- SQL Server 索引(index) 和 视图(view) 的简单介绍和操作
--索引(index)和视图(view)-- --索引(index)----概述: 数据库中的索引类似于书籍的目录,他以指针形式包含了表中一列或几列组合的新顺序,实现表中数据库的逻辑排序.索引创建在数 ...
- Entity Framework 使用sql语句分页(查询视图)
1.查询视图 //3.查询视图 var sql = @" SELECT D.* FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY TestView.B_M ...
随机推荐
- PC/H5端各浏览器兼容性问题及解决方案?
概念:所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码解析的差异,造成页面显示效果不统一的情况. 1>不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写几个标签,不加样式控制的情况 ...
- Java基础学习补充 -- 异常处理和log4j日志
Java中的异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. Java中所有异常的基类Throwable:Throwable又分为Error类和Excepti ...
- Intellij格式化java和xml
使用Intellij的这段时间,一直在寻找一些技巧,不断提高对它的熟练度.接下来告诉大家一个小秘密,带大家体验一下Intellij半自动格式化代码的快感.那要使用这个功能还得安装一个插件--Eclip ...
- GoldenGate 应用系统升级
(仅复制DML时)源端和目标端数据库增减复制表 增加复制表 在GoldenGate的进程参数中,如果通过*来匹配所有表,因此只要符合*所匹配的条件,那么只要在源端建立了表之后GoldenGate就能自 ...
- Scala和范畴论 -- 对Monad的一点认识
Scala和范畴论 -- 对Monad的一点认识 背景 所有一切的开始都是因为这句话:一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已,有什么难以理解的.第一次看到这句话是在这篇文章: ...
- appium 模拟实现物理按键点击
appium自动化测试中,当确认,搜索,返回等按键通过定位点击不好实现的时候,可以借助物理按键来实现.appium支持以下物理按键模拟: 电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ ...
- [POI2015]WIL-Wilcze doły(单调队列)
题意 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. (1<=d<=n< ...
- caioj 1618 【动态规划】矩阵相乘的次数
刷刷水题压压惊 低级版的能量项链 相当于复习一次中链式dp 这种合并了之后又后效性的题目 都可以用类似的方法做 #include<cstdio> #include<cstring&g ...
- Android SDK Manager代理设置
1.SDK Manager中打开 Tools—>Manage Add-on Sites…—>User Defined Sites 2.New …输入: http://android-mir ...
- java钩子函数
也不知道我理解的对不对,欢迎大家讨论! 自己写了个钩子函数,我理解的钩子函数: public interface Transactioner { String wedontknow() ; } pub ...