我买了本深入浅出MySQL, 记录一下笔记。

一、数据定义语言(DDL)

1.创建数据库  create database name;

2.显示所有的数据库  show databases;

3.选择操作的数据库  use dbname;

4.显示所选择的的数据库中所有的数据表 show tables;

5.删除数据库 drop database dbname;

6.创建表

create table tablename(
column_name1 column_type1 constraints,
column_name2 column_type2 constraints,
column_name3 column_type3 constraints,

.....
);

7.查看表的定义  desc tablename;

8.查看表的定义2 show create table tablename \G;

9.删除表 drop table tablename;

10.修改表 alter table语句

(1)修改表类型

alter table tablename modify [column] column_definition [first|after col_name];

如把emp的ename字段改为varchar(20);

(2)增加表字段

alter table tablename add [column] column_definition [first|after col_name]

如,在emp中增加新字段age,类型int(3): alter table emp add column age int(3);

(3)删除表字段

alter table tablename drop [column] col_name;

如,删除emp中的age字段: alter table emp drop column age;

(4)字段改名

alter table tablename change [column] old_col_name column_definition [first|after col_name];

如,将age字段改名为age1,并且修改字段类型为int(4): alter table emp change age age1 int(4);

change 和 modify 都可以修改属性 不过change要输入两次名称

(5)修改字段排列顺序 first|after column_name 选项用于此处

例1:把birth date型字段加在ename之后:alter table emp add birth date after ename;

例2:把age字段放在最前面: alter table emp modify age int(3) first;

(6)修改表名

alter table tablename rename [to] new_tablename;

如,将emp改名为emp1: alter table emp rename emp1;

二、数据操纵语句(DML语句)

1.插入记录

在emp中插入一条记录 insert into emp (ename, hiredate, sal, deptno) values('zzx1','2015-06-09','2000',1);

不指定字段名称,则values后的顺序应该与排列顺序一致  insert into emp values('zzx1','2015-06-09','2000',1);

一次插入多条  insert into dept values (5,'dept5'),(6,'dept6');

2.更新记录

将表dept中deptno=5的deptname改为'lisa': update dept set deptname='lisa' where deptno=5;

同时更新多个表的记录: update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.name where a.deptno=b.deptno;

3.删除记录

delete from tablename [where condition]; //如果不加where条件,则会删除表的所有记录

例1:delete form emp where ename='dony';

例2,同时删除多个表的相关记录:delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;

4.查询记录

select * from tablename [where condition];

查询emp的所有记录: select * form emp;

查询emp的ename和deptno字段: select ename, deptno from emp;

(1)查询不重复记录 distinct

显示emp中不重复的的deptno: select distinct deptno from emp;

(2)条件查询 where关键字

显示emp中的deptno=1的记录:select * from emp where deptno=1;

多字段条件查询:select * from emp where deptno=1 and sal<3000;

(3)排序 order by关键字

select * from tablename [where condition] [order by field1 [desc\asc], field2 [desc\asc],...;  //默认升序 asc

把emp表中的记录按照工资高低进行显示:select * from emp order by sal;

(4)限制 limit

select ... [limit offset_start, row_count]; //offset_start其实偏移量 默认为0

显示emp中按sal排序后的前3条记录:select * from emp order by sal limit 3;

显示emp中按sal排序后的从第二条记录开始的前3条记录:select * from emp order by sal limit 1,3;

(5)聚合

select [field1,field2...] fun_name from tablename [where where_condition] [group by field1,field2,...] [with rollup] [having where_contition];

说明:

fun_name表示要做的聚合操作,常用sum(求和), count(*)(记录数), max, min;

group by 表示要进行分类聚合的字段

with rollup 表明是否对分类聚合后的结果进行再汇总

having 对分类后的结果再进行条件过滤

例:

统计emp中公司总人数: select count(1) from emp;

统计emp中各个部门人数: select deptno,count(1) from emp group by deptno;

统计emp中各部门人数和总人数:select deptno,count(1) from emp group by deptno with rollup;

统计人数大于1的部门:select deptno, count(1) from emp group deptno having count(1)>1;

统计公司所有员工的薪水总额,最高和最低薪水: select sum(sal),max(Sal),min(sal) from emp;

(6)表链接

内连接:仅选出两张表表中互相匹配的记录。

查询所有雇员的名字和所在部门:select ename,deptname from emp,dept where emp.deptno=dept.deptno;

外连接:会显示其他不匹配的记录

左连接:包含所有左边表中的记录,甚至右边表中没有和它匹配的记录

右连接:与左连接相反

例左连接:select name,deptname from emp left join dept on emp.deptno=dept.deptno;

例右连接:select name,deptname from dept right join emp on emp.deptno=dept.deptno;

上面两个例子显示相同。

(7)子查询

常用关键字 in, not in, =, !=, exists, not exists等

例从emp表中查询出所有部门在dept表中的所有记录:select * from emp where deptno in (select deptno from dept);

select * from emp where deptno = (select deptno from dept);

(8)联合 union, union all

将emp和dept表的部门编号的集合显示出来:select deptno from emp union all select deptno from dept;

去掉重复记录:select deptno from emp union select deptno from dept;

三、数据控制语句(DCL语句)

没看。

四、帮助的使用

1.显示所有可供查询的分类: ? contents;

2.用 “? 类别名称”进一步查询, 如查询数据类型:  ? Data Types;

3.查询命令的用法:“? 命令名称”, 如查询show命令: ? show;

五、元数据信息查询

没细看,好复杂的样子。

【mysql5.6】SQL基础的更多相关文章

  1. 信安周报-第02周:SQL基础

    信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...

  2. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  3. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  4. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  5. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  6. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  7. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  8. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  9. 第一章 SQL基础

    第一部分:SQL基础1. 为什么学习SQL自人类社会形成之日起,社会的运转就在不断地产生和使用各种信息(文献.档案.资料.数据等):在如今所谓的信息时代,由于计算机和互联网的作用,信息的产生和使用达到 ...

  10. SQL基础--&gt; 约束(CONSTRAINT)

    --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...

随机推荐

  1. CK表达式编辑器

    1.      什么是表达式编辑器? 这个工具允许技术员传入一系列的参数,由用户编辑一个公式返回一种特定的结果.之所以需要使用表达式编辑器,就是因为用户编辑的公式经常变,技术员无法想出一办法来适应用户 ...

  2. oracle group 语句探究(笔记)

    1.group by语句在oracle中没有排序功能,必须依靠order by才能实现按照预定结果的排序 2.group by 的cube扩展 with test as ( id, name from ...

  3. swift学习(二)--基本运算符、字符串、集合操作

    在这一篇博客里面,我想要介绍一下swift里面一些常用的基本运算符,还有涉及到的字符串,集合操作.你会发现在swift里面还是有许多其他语言所不具有的特性运算操作的. 首先最基本的+,-,*,/,&g ...

  4. 调试mvc 源码【转:http://www.cnblogs.com/wucj/archive/2013/06/09/3128698.html】

    最近在研究asp.net mvc的源码,于是在想,既然提供了源码,那我们如何进入源码调试了?在网上找了一些调试的方法,试了几个都不行,于是折腾了一上午,终于弄出来了,下面看看我的操作步骤.   一:准 ...

  5. mongoDB 3.0 安全权限访问控制

    MongoDB3.0权限,啥都不说了,谷歌百度出来的全是错的.先安装好盲沟,简单的没法说. 首先,不使用 —auth 参数,启动 mongoDB: mongodb-linux-i686-3.0.0/b ...

  6. hi3531播放1080p60f, 延迟越来越大的问题与解决办法

    问题 hi3531播放1080p60f, 延迟越来越大 左边屏幕是ffplay播放的,右边屏幕是3531播放的 数据是udp组播 mpegts, h264 12M码流 原因 经过测试发现: 解码器中缓 ...

  7. ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)

    转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...

  8. 【Sort List】cpp

    题目: Sort a linked list in O(n log n) time using constant space complexity. 代码: /** * Definition for ...

  9. .net之XML

    前言 想想毕业到现在已经工作了3个月,总结的知识点还是太少.这周因为项目完成的差不多了,有空补充一下知识,上周学了XML吗,一直都没有总结.今天便总结一下,一方面梳理一下知识点,一方面巩固下知识. X ...

  10. USACO 4.1.2 栅栏的木料

    这个讲的超好....一定要看...然后看我代码就好懂啦... http://blog.csdn.net/ta201314/article/details/41287567 各种优化确实非常好....搜 ...