一、表单操作
1-1.创建表
  create table tb_name( id in primary key auto_increment); 
 
1-2.查看表
  desc table_name;
  show create table tb_name \G
 
1-3.修改表名
  alter table old_name rename new_name;
 
1-4.增加字段
  4-1.在表的最后一个位置增加字段
  alter table tb_name add 字段名 数据类型等;
  4-2.在表的第一个位置增加字段
  alter table tb_name add 字段名 数据类型等 first;
  4-3.在表的指定位置增加字段
  alter table tb_name add 字段名 数据类型等 after 指定字段;
 
1-5.删除字段
  alter table tb_name drop 字段名;
 
1-6.修改字段
  a.修改字段的数据类型
  alter table tb_name modify 字段名 数据类型;
  b.修改字段的名字
  alter table tb_name change 旧字段名 新字段名 新数据类型;
 
二、Mysql-子查询

a、带in的子查询
  当主查询的条件在子查询的结果中时

b、带any的子查询
  1、=any:功能与in效果一样
  2、>any:比子查询返货的数据记录最小值,还要大
  3、<any:比子查询返回的数据记录最大值,还要小

c、带all的子查询
  >all:比子查询返回记录中最大的还要大
  <all:比子查询返回记录中最小的还要小
例子:查询年薪比“卡特”高的球员

mysql> select name,year_wage from tb_player where year_wage > all(selec t name,year_wage from tb_player where name="卡特");
 
查询,位置和月奖金,与“卡特”一样的球员
mysql> select name,position,month_bonus from tb_player where (position,month_bon
us)=(select position,month_bonus from tb_player where name="卡特");
 
d、exist查询,tb_player中 tb_team 没有的球队
 select name from tb_team as t
 where not exists(select team from tb_player where team=t.name);
 
e、from查询
    select tmp.team,max(tmp.year_wage) from (select team,year_wage from tb_player group by team,name) as tmp group by tmp.team;
 
三、Mysql-左连接和右连接(left join和right join)

表A记录如下: 
aID        aNum 
1           a20050111 
2           a20050112 
3           a20050113 
4           a20050114 
5           a20050115 
表B记录如下: 
bID        bName 
1           2006032401 
2           2006032402 
3           2006032403 
4           2006032404 
8           2006032408

实验如下: 
1.left join 
sql语句如下:

SELECT * 
   FROM A 
     LEFT JOIN B 
      ON A.aID = B.bID

结果如下: 
aID        aNum                   bID           bName 
1            a20050111         1               2006032401 
2            a20050112         2              2006032402 
3            a20050113         3              2006032403 
4            a20050114         4              2006032404 
5            a20050115         NULL       NULL 
(所影响的行数为 5 行)

结果说明: 
        left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). 
B表记录不足的地方均为NULL.

2.right join 
sql语句如下:

SELECT * 
  FROM A 
    RIGHT JOIN B 
      ON A.aID = B.bID

结果如下: 
aID        aNum                   bID           bName 
1            a20050111         1               2006032401 
2            a20050112         2              2006032402 
3            a20050113         3              2006032403 
4            a20050114         4              2006032404 
NULL    NULL                8              2006032408 
(所影响的行数为 5 行)

结果说明: 
        仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

3.inner join 
sql语句如下:

SELECT * 
  FROM A 
    INNER JOIN B 
      ON A.aID = B.bID

结果如下: 
aID        aNum                   bID           bName 
1            a20050111         1              2006032401 
2            a20050112         2              2006032402 
3            a20050113         3              2006032403 
4            a20050114         4              2006032404

结果说明: 
        很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.

-----------------[以下为网上的一点资料]------------------ 
LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

语法: 
FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2

说明: 
① table1, table2参数用于指定要将记录组合的表的名称。 
② field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。 
③ compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。 
④ 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。

Mysql数据库常规操作(建表、查询)的更多相关文章

  1. mysql数据库(一):建表与新增数据

    一. 学习目标 理解什么是数据库,什么是表 怎样创建数据库和表(create) 怎样往表里插入数据(insert) 怎样修改表里的数据(update) 怎样删除数据库,表以及数据(delete) 二. ...

  2. MySQL数据库篇之多表查询

    主要内容: 一.多表连接查询 二.复合条件连接查询 三.子查询 1️⃣  多表连接查询 一.准备表 #建表 create table department( id int, name varchar( ...

  3. MySQL数据库篇之单表查询

    主要内容: 一.单表查询的语法 二.关键字的执行优先级 三.简单查询 四.where约束 五.分组查询 group by 六.having过滤 七.查询排序 order by 八.限制查询的记录数 l ...

  4. java中用activiti插件连接mysql数据库,自动建表过程中,在配置mysql架包路径“org.activiti.engine.ActivitiException: couldn't check if tables “

    java中用activiti插件连接mysql数据库,出现错误: org.activiti.engine.ActivitiException: couldn't check if tables are ...

  5. MySQL数据库 字段操作 多表关系(更新中...)

    外键 (foreign key) ## 外键 ```mysql # 作者(author):id,name,sex,age,mobile, detail_id # 作者详情(author_detail) ...

  6. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  7. 非关心数据库无法进行连表查询 所以我们需要在进行一对多查询时候 无法满足 因此需要在"1"的一方添加"多"的一方的的id 以便用于进行连表查询 ; 核心思想通过id进行维护与建文件

     非关心数据库无法进行连表查询 所以我们需要在进行一对多查询时候 无法满足 因此需要在"1"的一方添加"多"的一方的的id 以便用于进行连表查询 ; 核心思想通 ...

  8. mysql 数据操作 单表查询 目录

    mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...

  9. mysql 数据操作 多表查询 目录

    mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...

随机推荐

  1. MySQL 一台主机多实例root登录问题

    假设在一台机子上起多个MySQL实例. 比方port号为 3306. 3307. 3308 登录时候要选择不同的 mysql.sock文件 mysql -uroot -p123456 这一句 登录的是 ...

  2. Java - 多线程Callable、Executors、Future

    http://blog.csdn.net/pipisorry/article/details/44341579 Introduction Callable接口代表一段能够调用并返回结果的代码; Fut ...

  3. vijos - P1543极值问题(斐波那契数列 + 公式推导 + python)

    P1543极值问题 Accepted 标签:[显示标签] 背景 小铭的数学之旅2. 描写叙述 已知m.n为整数,且满足下列两个条件: ① m.n∈1,2.-,K ② (n^ 2-mn-m^2)^2=1 ...

  4. Laravel-错误调试与记录日志

    Laravel-错误调试与记录日志 标签(空格分隔): php 错误调试 配置 修改/config/app.php 'debug' => env('APP_DEBUG', true), 开启de ...

  5. 一天一个算法:求Sn=a+aa+aaa+…+aa…a之和

    /* 求Sn=a+aa+aaa+…+aa…a之值,其中a是一个数字. 例如:2+22+222+…+22222(此时n=5),n由键盘输入.*/ void Function3() { int a,n,s ...

  6. jquery判断页面元素是否存在

    在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的. 例如: document.getElementById(& ...

  7. Struts2的struts.xml的标准配置文档

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  8. VMware Workstation pro14 虚拟机下安装CentOS6.8图文教程

    转载收藏于 https://www.cnblogs.com/jepson6669/p/8371823.html 1 启动VMware的画面 2.点击 创建新的虚拟机 3 选择 典型(推荐) 4 选择 ...

  9. dedecms实现表单提交数据到指定的邮箱

    1.http://blog.csdn.net/webnoties/article/details/17219219 2.http://www.jz96.com/451.html 3.https://m ...

  10. 隐私:随机选择 MAC 地址

    隐私:随机选择 MAC 地址 从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时会使用随机 MAC 地址. 在 Android 9 中,您可以启用开发者选项(默认 ...