Navicat常用快捷键
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;
使用过好几种数据库的管理工具,包括sql manager,最近使用了navicate感觉这个工具比其他的用着都顺手,而且比较轻,所以写个简单说明以便日后查询。
1、 连接数据库。(Navicat可以连接大部分最常用的的数据库,以下以mysql为例)
2.点击Mysql,进入连接数据库界面,此处“连接名”可以随意写,最好与你的项目相关,主机名和IP地址就填你想要连接数据库所在地址,端口的话,mysql默认的是3306端口,用户名和密码就是你数据库的用户名和密码。
3、点击“连接测试”可以测试是否能够连接数据库,成功连接之后点击确定就行。成功连接后进入下图界面。双击数据库下的库名可以打开相应的数据库
4、右键表,可以选择添加数据库表,此处需要记住的是,栏位就代表数据库的字段,添加栏位就是添加字段,可以对字段的名字、类型等进行定义。定义好字段之后点击保存输入表名即可。
5、建立库表之后就可以往表里插入数据了。数据插好之后,点击下方的分别表示“添加数据,删除数据,保存,撤销,刷新”等操作。
