表的修改

语句:alter table table_name  table_name为修改的表的名称

格式:ALTER TABLE table_name

           [ ADD   colum_definition   [ FIRST   |   AFTER   column_name ] ] ,

           [ CHANGE   old_column_name   column_definition   [ FIRST   |   AFTER   column_name ] ] ,

           [ DROP   old_column_name ] ,

           [ DROP   PRIMARY  KEY ] ;

table_name:指要修改表的名称。

colum_definition:指一个列的定义,包括创建表时列的所有可能的定义方式。

old_column_name:当前表中的列名,即要修改或删除的列名。

FIRST:可选选项,如果标明则新加列或修改列将被置于表的第一个列。

AFTER   column_name:可选选项,如果标明则新加列将被置于表中column_name列后面。

DROP   PRIMARY  KEY:删除表的主键。

例:

mysql> alter table mytable-> add bonus float(15,2) after salary,-> change id serial_no int(6) not null;
Query OK, 0 rows affected (0.19 sec)
Records: 0  Duplicates: 0  Warnings: 0

这里,对表 mytable 在列 salary 后面增加了一个名为 bonus 的列用于储存奖金。同时对 id 列做了修改,将列名重命名为 serial_no ,将长度从5改为6。在执行了 alter table 命令后,数据库系统会对表中数据做一下检查,检查表中的数据是否满足新的表定义。

在修改表的时候,对 id 的修改并没有重新指定修改后的列 serial_no 仍为主键。但 MySQL 自动将主键从 id 替换成了 serial_no。

表的删除

语句:drop table table_name ;

例:

mysql> drop table mytable;
Query OK, 0 rows affected (0.01 sec)

删除表后,表的结构和表的数据都被删除。

数据的插入

语句:insert into table_name ( 列名1 ,..., 列名n ) value ( 插入的值1,...,插入的值n ) ;

例 1:

mysql> insert into mytable (id,name,age,birthday,salary) value (001 , 'qjy' , 19 , null , 2000 );
Query OK, 1 row affected (0.00 sec)
mysql> insert into mytable (id,name,age,birthday,salary) value (002 , 'qsy' , 29 , null , 3000 );
Query OK, 1 row affected (0.02 sec)

例 2:

mysql> create table mytable_new like mytable;
Query OK, 0 rows affected (0.09 sec)mysql> insert into mytable_new select * from mytable where salary >=3000;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0mysql> select * from mytable_new;
+----+------+-----+----------+----------+
| id | name | age | birthday | salary   |
+----+------+-----+----------+----------+
|  2 | qsy  |  29 | NULL     |  3000.00 |
|  3 | esy  |  43 | NULL     | 40000.00 |
|  4 | asd  |  26 | NULL     | 20000.00 |
+----+------+-----+----------+----------+
3 rows in set (0.00 sec)

创建一个新的复制表 mytable_new,使用语句insert into mytable_new select * from mytable where salary >=3000 ; 再查询 mytable_new,即显示出 salary 列的数值 >= 3000 的项。

数据的查询

格式:SELECT   [ ALL | DISTINCT ]   column_name , ... , expr ...

           [ FROM table_name , ...

           [ WHERE condition ]

           [ GROUP BY column_name , ... [ HAVING condition ] ] 

           [ ORDER BY   column_name   [ ASC | DESC ] , ... ]

           [ LIMIT   [ offset , ]   row_count ] ] ;

其中,table_name 表示要查询的表的名称。select 后面可以跟列名或一般表达式。ALL 和 DISTINCT 关键字是一个可选属性,ALL 查询所有记录,DISTINCT 只查询不重复的记录。如果在 select 后只跟一般表达式,则可以实现一些表达式运算。

例 1:

mysql> select 1+1;
+-----+
| 1+1 |
+-----+
|   2 |
+-----+
1 row in set (0.00 sec)

例 2:查询 mytable 中的所有数据

mysql> select * from mytable;
+----+------+-----+----------+----------+
| id | name | age | birthday | salary   |
+----+------+-----+----------+----------+
|  1 | qjy  |  19 | NULL     |  2000.00 |
|  2 | qsy  |  29 | NULL     |  3000.00 |
|  3 | esy  |  43 | NULL     | 40000.00 |
|  4 | asd  |  26 | NULL     | 20000.00 |
+----+------+-----+----------+----------+
4 rows in set (0.00 sec)
mysql> select id ,name from mytable where salary>10000;
+----+------+
| id | name |
+----+------+
|  3 | esy  |
|  4 | asd  |
+----+------+
2 rows in set (0.00 sec)

           语句:select 显示的列名 from 表名 where 条件 ;

例 4:查询各个年龄的人数与平均工资

mysql> select age,count(*),avg(salary) from mytable group by age;
+-----+----------+--------------+
| age | count(*) | avg(salary)  |
+-----+----------+--------------+
|  19 |        1 |  2000.000000 |
|  26 |        1 | 20000.000000 |
|  29 |        1 |  3000.000000 |
|  43 |        1 | 40000.000000 |
+-----+----------+--------------+
4 rows in set (0.00 sec)

count 函数:计算每个年龄的员工的数量。

  avg 函数:计算平均工资。

例 5:查询 mytable 所有数据并按工资从高到低排序,如果工资相同按年龄从低到高排列

mysql> select * from mytable order by salary desc,age asc;
+----+------+-----+----------+----------+
| id | name | age | birthday | salary   |
+----+------+-----+----------+----------+
|  3 | esy  |  43 | NULL     | 40000.00 |
|  4 | asd  |  26 | NULL     | 20000.00 |
|  2 | qsy  |  29 | NULL     |  3000.00 |
|  1 | qjy  |  19 | NULL     |  2000.00 |
+----+------+-----+----------+----------+
4 rows in set (0.00 sec)

语句:select * from mytable order by salary desc , age asc ;

desc:降序排列,即由高到低。

asc:升序排列,即有低到高。

例 6:查询 mytable 中的1~3条数据

mysql> select * from mytable limit 0,3;
+----+------+-----+----------+----------+
| id | name | age | birthday | salary   |
+----+------+-----+----------+----------+
|  1 | qjy  |  19 | NULL     |  2000.00 |
|  2 | qsy  |  29 | NULL     |  3000.00 |
|  3 | esy  |  43 | NULL     | 40000.00 |
+----+------+-----+----------+----------+
3 rows in set (0.00 sec)

使用 limit 时,第一条记录的 offset 为 0 。即 (查询的第几条数据-1,查询数据数) 。

数据的更新

格式:UPDATE table_name1 [ , table_name2 ] [ , ... ]

           SET column_name1 = value1 [ , column_name2 = value2 ] [ , ... ]

           [ WHERE ... ] ;

table_name:更新的表名。

column_name : 更新的列名。

value : 更新后的值。

WHERE :后面跟要更新的记录条件,与 SELECT 语句中的 WHERE 用法相同。

语句:update 表名 set 列名 = ‘ 更改值 ’ where 更新记录的条件

mysql> select * from mytable_new;
+----+------+-----+----------+----------+
| id | name | age | birthday | salary   |
+----+------+-----+----------+----------+
|  2 | qsy  |  29 | NULL     |  3000.00 |
|  3 | esy  |  43 | NULL     | 40000.00 |
|  4 | asd  |  26 | NULL     | 20000.00 |
+----+------+-----+----------+----------+
3 rows in set (0.01 sec)mysql> update mytable_new set name = 'vivin' where id = '3' ;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from mytable_new;
+----+-------+-----+----------+----------+
| id | name  | age | birthday | salary   |
+----+-------+-----+----------+----------+
|  2 | qsy   |  29 | NULL     |  3000.00 |
|  3 | vivin |  43 | NULL     | 40000.00 |
|  4 | asd   |  26 | NULL     | 20000.00 |
+----+-------+-----+----------+----------+
3 rows in set (0.00 sec)

数据的删除

格式:DELETE FROM table_name

           [ WHERE ... ] ;

table_name 指删除的表名,where 后面跟删除记录的条件。

例:

mysql> select * from mytable_new;
+----+-------+-----+----------+----------+
| id | name  | age | birthday | salary   |
+----+-------+-----+----------+----------+
|  2 | qsy   |  29 | NULL     |  3000.00 |
|  3 | vivin |  43 | NULL     | 40000.00 |
|  4 | asd   |  26 | NULL     | 20000.00 |
+----+-------+-----+----------+----------+
3 rows in set (0.00 sec)mysql> delete from mytable_new where salary=20000;
Query OK, 1 row affected (0.00 sec)mysql> select * from mytable_new;
+----+-------+-----+----------+----------+
| id | name  | age | birthday | salary   |
+----+-------+-----+----------+----------+
|  2 | qsy   |  29 | NULL     |  3000.00 |
|  3 | vivin |  43 | NULL     | 40000.00 |
+----+-------+-----+----------+----------+
2 rows in set (0.00 sec)

MySQL——数据的操作(增,删,改,查)相关推荐

  1. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  2. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  3. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  4. Linux技术--mysql数据库增-删-改-查

    # mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器   Linux或者 windows  * 数据库  * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...

  5. Python 操作 Elasticsearch 实现 增 删 改 查

    Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...

  6. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理

    笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...

  7. python_操作MySQL 初解 之__类方法调用并 增-删-改-查

    文件一: 调用(sqls文件) 1 # 导入模块 2 import pymysql 3 from sqls import * 4 # 创建类 5 class KaoShi(object): 6 7 # ...

  8. 简单的php数据库操作类代码(增,删,改,查)

    数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [stri ...

  9. pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能

    文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...

  10. list 增 删 改 查 及 公共方法

    1 # 热身题目:增加名字,并且按q(不论大小写)退出程序 2 li = ['taibai','alex','wusir','egon','女神'] 3 while 1: 4 username = i ...

最新文章

  1. c#操作oracle的通用类
  2. 查找二叉树中出现次数最多的数 Find Mode in Binary Search Tree
  3. Parallel Programming-使用CancellationTokenSource调度并行运行的Task
  4. python基础教程:变量的使用
  5. 团队冲刺站立会议03
  6. 洛谷P1040-加分二叉树-dp+二叉树
  7. android 模仿uc标签页,模仿UCweb菜单 - 白羽雕弓 - 博客园
  8. UI设计素材干货|日历也要设计,模板都给你们整理好了
  9. python和财务管理的区别与联系_会计管理与财务管理区别与联系
  10. 存储桶列表访问权限_如何设置 ACL 存储桶权限? - Amazon Simple Storage Service
  11. web前端开发技术期末考试_(完整word版)web前端开发技术试卷三
  12. 财务主管的ERP实施之路
  13. msys2(msys2-i686-20180531)32位下安装GMT4.5.6
  14. 08CMS之AJAX
  15. Rational Rose安装教程
  16. java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
  17. 我用这个画3d图和电路图、上网,防止鼠标手
  18. excel组合汇总_Excel汇总20150302
  19. Live Mesh Technology Preview
  20. 微博应用 php源码,新版微测试应用平台|微博应用|微趣源码,有后台+2套模版

热门文章

  1. 毫米波雷达攻“芯”为上,行业巨头挑战传统供应链合作模式
  2. 一级目录的解释(存储什么东西,英文)
  3. 流媒体服务器架设及RMVB制作教程(转)
  4. 准确率上升,损失loss也上升
  5. GDKOI 2017 参赛总结
  6. 计算机开机出现ROM,电脑开机显示error怎么办
  7. java项目割接_java数据割接:Sql server2005数据迁移至Sql server2008
  8. 只要不上网,pc机就不会感染计算机病毒,大学计算机题库——判断题.xls
  9. IOS开发教程第一季之03多线程day3--最大并发数,队列的暂停,取消和恢复、操作优先级、线程监听、多线程下UITableView显示图片案例
  10. CSS3动画 3DBOX