MySQL——数据的操作(增,删,改,查)
表的修改
语句: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——数据的操作(增,删,改,查)相关推荐
- 表单的增 删 改 查
django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...
- properties(map)增.删.改.查.遍历
import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...
- python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...
实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...
- Linux技术--mysql数据库增-删-改-查
# mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器 Linux或者 windows * 数据库 * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...
- Python 操作 Elasticsearch 实现 增 删 改 查
Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...
- PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理
笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...
- python_操作MySQL 初解 之__类方法调用并 增-删-改-查
文件一: 调用(sqls文件) 1 # 导入模块 2 import pymysql 3 from sqls import * 4 # 创建类 5 class KaoShi(object): 6 7 # ...
- 简单的php数据库操作类代码(增,删,改,查)
数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [stri ...
- pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能
文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...
- list 增 删 改 查 及 公共方法
1 # 热身题目:增加名字,并且按q(不论大小写)退出程序 2 li = ['taibai','alex','wusir','egon','女神'] 3 while 1: 4 username = i ...
最新文章
- c#操作oracle的通用类
- 查找二叉树中出现次数最多的数 Find Mode in Binary Search Tree
- Parallel Programming-使用CancellationTokenSource调度并行运行的Task
- python基础教程:变量的使用
- 团队冲刺站立会议03
- 洛谷P1040-加分二叉树-dp+二叉树
- android 模仿uc标签页,模仿UCweb菜单 - 白羽雕弓 - 博客园
- UI设计素材干货|日历也要设计,模板都给你们整理好了
- python和财务管理的区别与联系_会计管理与财务管理区别与联系
- 存储桶列表访问权限_如何设置 ACL 存储桶权限? - Amazon Simple Storage Service
- web前端开发技术期末考试_(完整word版)web前端开发技术试卷三
- 财务主管的ERP实施之路
- msys2(msys2-i686-20180531)32位下安装GMT4.5.6
- 08CMS之AJAX
- Rational Rose安装教程
- java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
- 我用这个画3d图和电路图、上网,防止鼠标手
- excel组合汇总_Excel汇总20150302
- Live Mesh Technology Preview
- 微博应用 php源码,新版微测试应用平台|微博应用|微趣源码,有后台+2套模版
热门文章
- 毫米波雷达攻“芯”为上,行业巨头挑战传统供应链合作模式
- 一级目录的解释(存储什么东西,英文)
- 流媒体服务器架设及RMVB制作教程(转)
- 准确率上升,损失loss也上升
- GDKOI 2017 参赛总结
- 计算机开机出现ROM,电脑开机显示error怎么办
- java项目割接_java数据割接:Sql server2005数据迁移至Sql server2008
- 只要不上网,pc机就不会感染计算机病毒,大学计算机题库——判断题.xls
- IOS开发教程第一季之03多线程day3--最大并发数,队列的暂停,取消和恢复、操作优先级、线程监听、多线程下UITableView显示图片案例
- CSS3动画 3DBOX