mysql数据操作插入 查询 修改 删除命令用法

insert添加数据

前面我们学习了数据库,数据库表,接下来我们学习一下操作表中的数据。

让我们开始利用 insert 语句来增加记录,这是一个 SQL 语句,需要为它指定希望插入数据行的表或将值按行放入的表。如果你设置了主键并且自动增长,添加的时候需要把对应的主键值设置为null或者数字“0”。

基本语法:

insert [into] tbl_name [(col_name,...)] VALUES (pression,...)
insert [into] tbl_name SET col_name=expression

“into”一词自 MySQL 3.22.5 以来是可选的。(这一点对其他形式的insert 语句也成立。)values表必须包含表中每列的值,并且按表中列的存放次序给出。(一般, 这就是创建表时列的定义次序。如果不能肯定的话,可使用describe tbl_name来查看这个次序。)。 看一下实例:

可指定所有列的值:

insert test01_01 values(null,'www.111cn.net','23','beij');

使用多个值表,可以一次提供多行数据:

insert test01_01 values('www.111cn.net','23','beij'),('grey','34','ah');

可以给出要赋值的那个列,然后再列出值。这对于希望建立只有几个列需要初始设置 的记录是很有用的:

insert test01_01(name) values('gery');
insert test01_01(name) values('mack'),('rose');
insert test01_01 set name='sara';//使用这种形式的 insert 语句不能插入多行

insert...select添加数据

当我们在上一节学习创建表时,知道可以使用select从其它表来直接创建表,甚至可以同时复制数据记录。如果你已经拥有了一个表,你同样可以从select语句的配合中获益。

基本语法:

insert into tb_name select * from tb_name1;//表结构完全一致
insert into tb_name(col1) select col1 from tb_name1;//取某个值添加
insert into ... select语句满足下列条件:

1:查询不能包含一个order by子句

2:insert语句的目的表不能出现在select查询部分的from子句,因为这在ANSI SQL中被禁止让从你正在插入的表中select.问题是select将可能发 现在同一个运行期间内先前被插入的记录。当使用子选择子句时,情况能很容易混淆

看下面实例:

insert into test01_03 select * from test01_01;
insert into test01_03(name) select name from test01_01;

select查询

除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处。这就 是select语句的用途,即帮助取出数据。select大概是SQL语言中最常用的语句,而且怎样使用它也最为讲究;用它来选择记录可能相当复杂,可能会涉及许多表中列之间 的比较。本节介绍select语句关于查询的最基本功能。 select语句的语法如下:

select selection_list  //选择哪些列
from table_list  //从何处选择行
where primary_constraint  //行必须满足什么条件
group by grouping_columns // 怎样对结果分组
having secondary_constraint  //行必须满足的第二条件
order by sorting_columns //怎样对结果排序
limit count  //结果限定

注意:所有使用的关键词必须精确地以上面的顺序给出。例如,一个having子句必 须跟在group by子句之后和order by子句之前

上述语法中除了select关键字之外,其他每样东西都是可选的。有些数据库需要用from关键字,但是MySQL允许对表达式求值而不引用任何表

普通查询

select最简单的形式是从一张表中检索每样东西

基本语法:

select columns from tb_name;

columns是列名称,可以写成*号,表示查询所有列;也可以指定某个列。tb_name是你的目标数据库表。

看两个例子:

select * from test01_01;//查询当前表里所有的列的数据
select name,age from test01_01;//查询当前表里name列和age列的所有数据
select (2+3*4.5)/2.5;//表达式求值而不引用任何表

条件查询

不必每次查询都返回所有的行记录,你能从你的表中只选择特定的行。你可以使用where或者having,这里我们只讲where语句,因为where能实现having绝大部分功能

基本语法:

select columns from tb_name where expression..;
expression的表现形式很多,例如name='www.111cn.net',age>=20,name='www.111cn.net' or name ='www.111cn.net'等等,都可以写在where表达式后面。

看一个例子:

select * from test01_01 where name ="www.111cn.net";//筛选出当前表中name的值是www.111cn.net的所有数据。

查询排序

使用order by子句对查询返回的结果按一列或多列排序。order by子句的语法 格式为:

order by column_name [asc|desc] [,…]

其中asc表示升序,为默认值,desc为降序。order by不能按text、text和image数据类型进行排序。另外,可以根据表达式进行排序

看下面实例:

select * from test01_01 order by age asc;//按照年龄升序输出
注意desc/asc关键词仅适用于紧跟在它之前的列名字

分组和行计数

group by从句根据所给的列名返回分组的查询结果,可用于查询具有相同值的列

基本语法:

group by col_name,….

单独使用group by没有任何意义,它的真正作用在于与各种组合函数配合,用于行计数

看下面实例:

select name,count(*) from test01_01 group by name;//按name分组,并且统计数量

如果你除了计数还返回一个列的值,那么必须使用group by语句,否则无法计算记录,产生错误。

多表查询

查询多个表,from子句列出表名,并用逗号分隔,因为查询需要从他们两个拉出信息

基本语法:

select t1.name,t2.name from tb_name1 as t1,tb_name2 as t2 where t1.name=t2.name;

上述代码表示,从t1和t2中取出两张表name相同的值。as表示为这个表取别名。

实例如下:

 select t1.name as t1name,t1.age as t1age,t2.name as t2name,t2.age as t2age
 from test01_01 as t1,test01_03 as t2 where t1.name=t2.name;

update更新数据

修改数据我们用update更新,这是最常用的更新数据语句,我们看下语法

update tbl_name SET 要更改的列

where 要更新的记录

这里的 where 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。

实例如下:

update test01_03 set name='www.111cn.net' where age= '20';

delete删除数据

删除一条语句,我们常用delete关键字。语法定义:

delete from tbl_name where 要删除的记录

where子句指定哪些记录应该删除。它是可选的,但是如果不选的话,将会删除所有的记录。这意味着最简单的delete语句也是最危险的

实例如下:

delete from test01_01 where age=10;//删除年龄为10的数据

时间: 2024-10-27 07:14:58

mysql数据操作插入 查询 修改 删除命令用法的相关文章

python-Python 读取MYSQL数据并插入到CSV文件相应位置

问题描述 Python 读取MYSQL数据并插入到CSV文件相应位置 数据库有一张表,除时间以外,每个字段都有可能重复(因为是按照系统时间,自动获取的网页数据现在我想做一张csv表,表的列名是时间字段(跟据数据库时间自增的),每行开头是名称(数据库存在的,只不过是去重后取出的)那么现在问题来了,如何按照时间名称从数据库获取数据填入相应的位置. 解决方案 你直接用对应的sql语句查询出符合你要求的数据,然后再写入CSV文件. 解决方案二: MySQL 直接读取csv文件数据到表中python读取c

c# txt 删除 修改-关于C#操作txt完成修改删除学生信息

问题描述 关于C#操作txt完成修改删除学生信息 比如 有一个班级的学生,每个学生有很多相关信息(比如有5个相关信息:性别,身高,体重,成绩,联系方式) 分别按行存储在一个TXT文档中,我现在用C#做了一个界面,其中checkedlistbox中用于存储学生名,旁边6个编辑框用于显示勾选学生的信息(其中一个是学生名),现在我想勾选一个学生名进行修改和删除该学生在txt中的数据,如何操作 有没有详细代码 解决方案 一定要用txt么? 其他的可以么? 解决方案二: 理论上是可行的,但是应该很麻烦,建

xpath对ajax的完全操作,添加修改删除xml节点

提示:您可以先修改部分代码再运行 <!-----------------小马哥xpath对ajax的完全操作,添加修改删除xml节点---------------------> <button onclick="alert(xml.lookxml())" id=button1 name=button1>查看XML标签</button> <hr> 添加节点:姓名:<input type=text id="name"

MYSQL的操作类(修改后的新版本)

mysql           class MySQLDB  {    //MYSQL数据库操作类    //作者:熊毅    //版本:2.0(发行版)        //可以自由转载,修改请通知我scxy78@yeah.net    //转载请保留以上声明        //使用说明:    //该类完全按照ADO的习惯书写的,用过ASP的人都觉得ASP连接数据库比PHP好用(这是我的感觉),    //但PHP得一个一个API地写,挺累,该类做了完全的封装    //创建类的实例时可以指定

Mysql导入导出工具Mysqldump和Source命令用法详解_Mysql

在PHP网站开发中,时常遇到Mysql数据库备份或数据库迁移工作,这时Mysql怎么导入导出数据库中的数据就非常关键,Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法. M

mysql数据库表创建 查询 修改及删除命令

create创建数据库表 创建数据库表太常用了,只要用到数据库,我们就会用到创建数据库表,我们用create 语句来创建,看下面语法: create table tbl_name(create_definition,...) [type =table_type] create_definition:col_name type [not null | null][default default_value] [auto_increment][primary_key] create table是固定

MySQL数据库的创建选择与删除命令详解

创建数据库: MySQL的任何事情都是以数据库开始的,数据库我们可以理解为"书架",表则可以理解为"书架上的书",而表中的数据则可以理解为"书中的内容".也就是说数据库是容器.当我们输入完用户名密码连接到MySQL后,可以使用CREATE DATABASE命令来创建一个新的MySQL数据库.例如:  代码如下 复制代码 create database xiaoxiaozi; /* Query OK, 1 row affected (0.06 se

Python 调取MYSQL数据并插入到CSV文件

如何利用python脚本将远程数据库查询值,并将该值按照csv中"column A"对应关系整体插入到"column B",最近handle了一个case,联想到python天生对数据处理较shell有明显的优势,最后尝试用脚本搞定这个看起来逻辑很简单,但又不简单的data processing.Target:column A 是DB内存储的若干Project name,需要通过查询数据库,获取这些project name在DB对应的Project key的具体值,

Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页_实用技巧

/**********************************************************************************  *   * 功能说明:XML处理基类  * 作者: 刘功勋;  * 版本:V0.1(C#2.0);时间:2006-12-13  *   * *******************************************************************************/ using System;