数据库相关操作:

1.数据库级别: CURD

show databases;

create database db1 default charset=utf8;

use db1;

select database();

drop database db1;

show create database db1;

2.文件级别: CURD

show tables;

create table students(

id int unsigned auto_increment primary key not null,

name varchar(30) not null,

age tinyint unsigend default 0,

height decimal(5,2),

constraint 外键名 foreign key (自己列名) references 主表(主列)

gender enmu('男','女','人妖','保密'),

tel int unique not null

)engine=innodb default charset=utf8;

delete from students;

truncate table students;

drop table students;

show create table students;

desc students;

alter table 表名 add 列名 类型 约束;

alter table 表名 modify 列名 新类型 新约束;

alter table 表名 change 原名 新名 新类型 新约束;

alter table 表名 drop 列名;

3.数据级别: CURD

insert into students(id,name) values('0','alex'),('0','Eva-J');

insert into students values('0','alex',18,17.5,'女',138888);

delete name from students where id<3;

update students set name='Eva-J' where id=1;

select * from students;

4.去重查询:

select distinct name,age from students;

select * from students order by age ASC height desc;

5.排序查询:

select * from students order by age ASC height desc;

6.分页:

select * from students limit 0,10;

select * from students limit m*(n-1),m;

7.分组:group by 可以做去重查询。

*****报错*****select * from students group by gender;

select gender,group_concat(name) from students group by gender;

select gender,count(*) from students group by gender;

筛选用having

select gender,count(*) from students group by gender having count(*)>3;

8.聚合函数:

select sum(age) from students;

select count(*) from students;

select avg(age) from students;

select ifnull(school,'要查找的不存在') from students;

9.连接:

内连接

select * from A表 join B表;----------->笛卡尔积

seleft * from A表 join B表 on A.gongfuid=B.id;

外连接

****报错*****select * from A left join B ;

select * from A left join B on A.gongfuid = B.id;

10.自连接:

--创建表--

create table areas(

id varchar(30) not null primary key,

title varchar(30),

pid varchar(30)

);

-- 导入 sql 文件--

source /路径.areas.sql

查询------------>关键就是给area表起两个不同的别名连接。

select * from areas city join areas pro on city.pid=pro.id;

11.子查询:

-标量 求班级中身高高于平均身高的学生信息

select * from students where height > (select avg(height) from students);

-行 求出班级中身高最高并且年龄最大的同学

select * from students where (age,height) = (select max(age), max(height) from students);

-列 查询所有使用了技能表中技能的所有英雄

select * from hero where gongfuid in (select id from gongfu);

12.数据库范式:

1NF 一个字段存储一个数据

2NF =1NF + 表中有主键 + 表中非主键元素必须完全依赖于主键

3NF = 2NF + 非主键字段必须直接依赖与主键字段(不能传递依赖)

13.E-R图

4种图形

多对多的时候要建立中间关系表

14.外键(唯一)

创建外键

表已经存在添加外键

alter table 表名 add foreign key(字段名) references 主表名(主表字段);

创建表的同时添加外键约束

create table students(

字段名 类型 约束;

....;

forign key (字段名) references 主表名(主表字段)

);

查看外键约束名称

show create table students;

alter table 表名 drop foreign key 外键约束名;

15.sql高级语法:

插入另外一个表的查询语句

insert into 表名(字段名)select...

insert into good_cates(name) select cate_name from goods group by cate_name;

在创建表的同时插入select 语句数据需要起一样的名字

create table xxx() select....

create table good_brands (

id int unsigned primary key auto_increment,

name varchar(36) not null)

select brand_name as name from goods group by brand_name;

连表更新 在连表过程中使用一个标的字段值去修改另外一个表的值

update A join B on 条件 set 字段名=值;

16.参数化列表

sql='insert into xxx values(0,%s,%s,%s)'

course.execute(sql,['参数1','参数2','参数3’])

17.事务

原子性

一致性

隔离性

永久性

Begin / start transaction

commit

rollback

命令行默认自动开启事务自动提交事务

关闭命令行自动提交  set autocommit=0;

pymsql默认自动开启手动提交

conn.commit()

conn.rollback()

一般放在事务中的是insert操作

隐式提交不能撤销

18.索引

加速查找

show index from 表;

alter table 表名 add index 索引名(字段名(字符串长度));

alter table 表名 add index 索引名(字段名);

alter table 表名 drop 索引名(字段名);

mysql自连接查询去重_MySQL命令汇总相关推荐

  1. mysql关联查询去重_MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)...

    MySQL的外键 什么是外键,很简单保持数据一致性的一个约束键.如果你有两张表,第一张是学生表,第二张表是一个成绩表,我们来看看保持数据一致性,其实在Django等框架的模型中中也能做关联获取对象. ...

  2. MySQL自连接查询的深入分析

    MySQL自连接查询的深入分析 一般的连接查询使用两张不同的表,指定连接条件,然后进行查询.自连接查询格式和普通的连接查询书写格式完全相同,只不过我们需要把一张表想象成两张表使用. 自连接查询是自己和 ...

  3. mysql 自关联的子孙查询,Mysql自连接查询实例详解

    本文实例讲述了Mysql自连接查询.分享给大家供大家参考,具体如下: 自连接查询 假想以下场景:某一电商网站想要对站内产品做层级分类,一个类别下面有若干子类,子类下面也会有别的子类.例如数码产品这个类 ...

  4. linux mysql 命令行查询 乱码_mysql命令提示行连接乱码的解决

    解决MySQL命令行无法连接问题错误ERROR1045(28000) 问题现象: 用navicat可以连接数据库 通过命令行mysql -uroot -p 输入密码后提示"ERROR 104 ...

  5. mysql慢查询单位_MySQL慢查询

    MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句.具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢 ...

  6. mysql日志查询指令_MySQL查询日志总结

    MySQL查询日志介绍 MySQL的查询日志记录了所有MySQL数据库请求的信息.无论这些请求是否得到了正确的执行.默认文件名为hostname.log.默认情况下MySQL查询日志是关闭的.生产环境 ...

  7. mysql数据库管理系统模式_MYSQL命令行模式管理MySql的一点心得

    MYSQL命令行模式管理MySql的一点心得 MYSQL命令行模式管理MySql的一点心得 MySql数据库是中小型网站后台数据库的首选,因为它对非商业应用是免费的.网站开发者可以搭建一个" ...

  8. mysql分页查询关键_MySQL优化教程之超大分页查询

    背景 基本上只要是做后台开发,都会接触到分页这个需求或者功能吧.基本上大家都是会用MySQL的LIMIT来处理,而且我现在负责的项目也是这样写的.但是一旦数据量起来了,其实LIMIT的效率会极其的低, ...

  9. mysql数据库查询笔记_mysql笔记: 查询

    mysql笔记: 查询 查询准备 CREATE DATABASE search; use search; # 学生表(student):学号.姓名.性别.出生日期.班级 CREATE TABLE st ...

最新文章

  1. Luck Club-SDT 去中心化的游戏
  2. python有哪些常用的package_python package相关机制总结
  3. leetcode解题报告:198 House Robber
  4. 2015-04-22记录--一些JS疑惑
  5. base64的php文件上传,PHP传统文件上传和Base64位文件上传
  6. 机器学习:如何在安卓上集成TensorFlow
  7. Android 数据存储之文件存储小记
  8. axis=0 与axis=1 的区分
  9. 二叉树学习之非递归遍历
  10. 文末送书 | 数据分析简单入门
  11. Python面试题之下面代码会输出什么
  12. 三星电视机的极光TV显示服务器异常,三星液晶电视机故障有哪些 三星液晶电视机故障解决方法【图文】...
  13. easyUI根据参数动态的生成列数
  14. 通过用户电脑ip获取用户当前所在城市以及天气
  15. Java 数组类型转字符串类型
  16. 小爱mini改aux立体声_DIY移动的智能助手-------将小爱音箱搬到爱车上
  17. IE6下的Aborted解决办法
  18. java feature task同步_FetrueTask做java方法超时处理
  19. linux系统应用学习(三)--- 动态库静态库
  20. Java SSM开发大众点评后端

热门文章

  1. 中、美、印、日四国程序员大比拼
  2. mathtype批量修改公式的字体大小
  3. 强化学习7——基于环境模型的RL方法
  4. mongodb 3.4 安装_暴雨免安装中文版下载
  5. python max函数_Python max内置函数详细介绍
  6. XSS 注入漏洞处理
  7. Linux / 僵尸进程、孤儿进程 产生原因、有什么危害、如何预防(解决方案)
  8. java全面的计算器代码_Java实现计算器的代码
  9. uploadhandler.php,多个WordPress主题’upload-handler.php’任意文件上传漏洞
  10. 容器安全最佳实践入门