您的位置:首页 > 数据库 > MySQL

MySQL基于Navicat的基本操作技巧

2017-01-08 21:44 381 查看

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql