ctrl+q 打开查询窗口
ctrl+/ 注释
ctrl +shift+/ 解除注释
ctrl+r 运行选中的SQL语句
ctrl+l 删除选中行内容
ctrl+d 复制当前行内容并粘贴到下一行
ctrl+w 关闭当前查询窗口

数据库的基本概念

数据库完整性:指存在数据库中的数据的准确行和可靠性;
数据库完整性的分类:实体完整性、域完整性、引用完整性
实体完整性:指数据表中的数据保持唯一性、不重复,可使用primarykey或unique约束;即行内容的完整性
域完整性:数据表中的字段要符合逻辑要求,是有效的数据,可添加check或default约束,列数据的完整性;
引用完整性:数据库表与表之间的字段是有联系的,可用foreign key约束;

DBMS:关系型数据库管理系统;
SQL:结构化查询语言;
JDBC:一种用于执行SQL语句的jav API,由一组用java语言编写的类和接口组成;

增删库表、字段、索引等操作

CREATE/DROP DATABASE增删数据库;
CREATE/DROP table 增删表;
ALTER TABLE stu ADD st_age int;增加年龄字段;
ALTER TABLE stu ADD st_age;删除学生字段;
ALTER TABLE stu ADD INDEX(st_name);添加索引;
ALTER TABLE stu DROP INDEX st_id;删除索引;
DML:增、删、改
DQL:查

select * from t_stu ;–这样查询慢
select s_name from t_stu;– 这样快
insert into t_stu(sname,sage)value(‘王欢’,23)—增加
delete from t_stu where sage = 22;–删除
update t_stu set sage=25 where sname =’唐强’;-修改

常用的关键字:

like%/like_、BETWEEN AND、in、is null、desc、DISTINCT、group by、limit
SELECT sname from stu where sname like ‘王欢’;– 只能查到两个王欢
SELECT sname from stu where sname like ‘王欢%’;– 模糊查询 ,查到三个王欢
SELECT DISTINCT sname from stu where sname like ‘王欢’;– like 和=的作用好像一样?
SELECT sname,sscore from stu where sscore BETWEEN 0 and 60;– 这里的数字必须是BETWEEN 小 AND 大,才能有查询结果
SELECT sname,sscore from stu where sscore in(89,90);– 只能查找分数为89和90的人
SELECT sname,sscore from stu GROUP BY sscore DESC LIMIT 0,5;– 查看班上前5名的成绩
SELECT sname,sscore from stu where sscore is null;– 查看没有成绩的
SELECT sname,sscore from stu where sscore is not null;– 查看有成绩的
SELECT SUM(sscore),AVG(sscore),MAX(sscore),MIN(sscore) from stu;– 查看总成绩、平均成绩、最高成绩、最低成绩
SELECT sname,sscore from stu GROUP BY sscore desc;– 按成绩分组倒序排列成绩;默认为升序ASC

聚合函数:
SUM()、AVG()、COUNT、MAX()、MINI()
select count(score) from stu;– 求总分数
select avg(score) from stu;– 求平均值
select sum(score) from stu;– 求总分数
SELECT sname,sscore from stu where sscore in(SELECT MAX(sscore) from stu);– 查询分数最高的人的姓名 和成绩;

SQL执行顺序 F-W-G-S-H-O

第一步: 执行FROM
第二步: WHERE条件过滤T
第三步: GROUP BY 分组
第四步: 执行SELECT投影列
第五步:HAVING条件过滤
第六步: 执行ORDER BY 排序

注意!! :在分组查询中,能够查询的字段只能是分组字段和聚合函数
WHERE运行在分组前,故后面不能有聚合函数,HAVING运行在分组后,只能作聚合函数的过滤

CASE WHEN THEN

这同java种的switch有点相似
select a.*,(CASE WHEN gender = ‘男’ THEN ‘帅哥’
ELSE ‘美女’
END)’称呼’,
(CASE WHEN height = 180 THEN ‘高’
ELSE ‘低’
END)’身高’
from t_student a;

更多相关文章

  1. MySQL 数据(字段)类型
  2. mysql中逗号分隔字段的更好替代方案
  3. mysql 常用字段和占用 字节数
  4. hibernate(*.hbm.xml)中新添加的字段被标记为红色(找不到)的解决方法
  5. 保持最新的一个字段值,直到它发生变化,然后保持其最新的字段值
  6. 替换wordpress WP_POSTS表中post_date字段的年份(4位数)
  7. 蜂巢和数据库之间的完整性检查
  8. 如何以varchar字段为编号?
  9. 常见几种数据库中自增字段的设置方法(转)

随机推荐

  1. android-pull方式解析xml文件以及XML文件
  2. Android学习——android:cacheColorHint=
  3. Android Studio首次运行卡在Fetching and
  4. 一个提供Android各历史版本在线源码的网
  5. 转载——android 有用的知识
  6. Android MVVM之Databinding(二) 使用篇
  7. Android高手进阶教程(七)之----Android
  8. Android中实现跑马灯效果
  9. android 实现左右滑动效果
  10. Android的Recovery中font_10x10.h字库文