mysql基础之插入数据

现在我们已经建立了二个表,接下来看一下如何向表中添加数据。我们可以使用最简单的方法:INSERT语句。使用INSERT语句,可以为表添加一条或多条记录。我们先向authors表中添加数据,再向books表中添加数据,因为books表引用了authors表中的字段:

INSERT INTO authors(author_last,author_first,country)
VALUES (‘Greene‘,‘Graham‘,‘United Kingdom‘);
SELECT LAST_INSERT_ID;

INSERT INTO books(title,author_id,isbn,genre,pub_year)
VALUES (‘The End of the Affair‘,1,‘0099478447‘,‘novel‘,‘1951‘);

第一个SQL语句为Graham Greene添加了一条记录,Graham Greene是The End of the Affai的作者。如同上面列出的那样,标准的INSERT语法要为每个插入值指定相应的列。如果想为所有的列添加值,则不需要指定列名,但被添加的数据一定要按表中列的顺序排列。

第二个SQL语句中,通过LAST_INSERT_ID函数可以从author表中取出我们刚刚输入的记录的标识码。

第三个SQL语句中,添加了Graham Greene作品数据信息。在这个语句中,列的排列顺序与数据表中的顺序不同。MySQL允许这样的操作。只要保证值和列的顺序相对应就可以了。

时间: 2024-08-25 13:22:16

mysql基础之插入数据的相关文章

MySQL基础学习之数据查询

一般查询 SELECT * FROM 表名 SELECT 属性名  FROM  表名 条件查询 SELECT 属性名 FROM 表名  WHERE 条件表达式 查询数据值1,数据值2的表单 SELECT *  FROM  表名  WHERE  属性名 [NOT] IN(数据值1,数据值2....) 查询数值1,数据2的表单 SELECT *  FROM  表名  WHERE  属性=值  AND 属性1=值1 查询数值1到数值2之间的表单 SELECT *  FROM  表名  WHERE  属

MySQL基础学习之数据表

查看数据表 SHOW TABLE; 查看数据表详细结构 SHOW CREATE TABLE 表名\G; 创建数据表 CREATE TABLE 表名(数据名 类型,数据名1  类型2); CREATE TABLE department ( d_id INT(10) , d_name VARCHAR(20) , function VARCHAR(20) , address VARCHAR(30) ); 删除数据表 DROP TABLE 表名; 修改数据表 修改数据表名        ALTER TA

向mysql中批量插入数据的性能分析

MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VARCHAR( 50 ) NOT NULL,other_value VARCHAR( 50 ) NOT NULL) 通常情况下单条插入的sql语句我们会这么写: 代码如下   INSERT INTO example(example_id, name, valu

mysql使用存储过程插入数据后,参数为中文的为?或乱码

最近了解了一下mysql存储过程,之前版本的mysql不支持存储过程,5.0版本后就可以支持存储过程的使用:恰好笔者下载使用版本为5.6.20: 做了一个给表插入数据的简单存储过程,发现打开表后汉字全部显示为?号.如下: 于是上网查资料,忙了两小时才搞定!好了,现在简单叙述一下. 笔者遇见的问题是由两种原因引起的: 第一:使用Navicat数据库客户端建立表设置问题导致的,如下: 将上边操作完成后,可以在表里插入汉字,没有?号或者乱码现象了,本以为问题解决了,但使用存储过程时依然插入的是?号:然

mysql:insert插入数据过慢如何解决,设置innodb_flush_log_at_trx_commit为0就能解决

问题: 最近在做性能测试,造数据,发现insert好慢,只有几十条每秒,很奇怪,最后再网上找到了原因. 网文如下: MY SQL insert 速度过慢 最近在用MySQL做存储,测试中发现插入数据太慢了,插入速度只有20-30 条/秒,后来查资料后,将MySQL的1个参数:innodb_flush_log_at_trx_commit,1改为了0(修改方法,可以直接修改my.ini(windows)/my.cnf(linux)中的对应参数,似乎用命令直接设置没有效果),插入速度就提升到了3000

用java向mysql数据库中插入数据为空

利用java面向对像编程,向数据库中插入数据时.遇到插入的数据为空的情况.在此做一小结: 1.数据库连接正正常 2.sql语句没有问题 3.程序没有报异常 4.代码: import java.util.Scanner; import org.junit.Test;public class JDBCTest { //2).在测试方法testAAddStudent()中 //1.获取从控制台输入的Student对象:Student student=getStudentFromConsole(); /

php笔记七:php操作MySQL表格(插入数据)

1.用到的SQL语句 INSERT INTO 表名 (字段列表) VALUES (值列表),(值列表)... ; 注意: 1).字段列表要和值列表对应 2).当向表中的所有字段插入数据时,可以将字段列表省略 2.例子: <?php //向表中插入数据 //包含连接数据库文件(两种方法,require比include更加严格,如果路径不对会报严重错误) //include 'conn.php'; require 'conn.php'; //拼装插入数据的SQL语句 $sql = "INSER

mysql中循环插入数据--造测试数据

背景描述 测试需求:如上图,筛选按预约数排序靠前的机构,排名第51及之后的机构不显示. 验证功能前,测试数据中至少有50个不同预约数, 实现方式: 1.或手工往数据库表中插入  ,50个机构下分别添加不同的预约数,要边添加.边记录预约数. 2.按某种规律生成数据,往数据库表中插入. 3.用sql语句循环写数据,(提前是找到规律) ------------------------------------------------------------------------------------

使用mysql数据库,插入数据出现问号(?)的问题,解决方法

首先,我用的mysql数据库是5.7.12版本. 出现的问题: 1.插入数据显示错误,插入不成功,出现:Incorrect string value: '\xCD\xF5\xD5\xBC\xBE\xA9' for column 'Sname' at row 1 2.插入中文,虽然插入成功,但是显示:?? 解决方法: 在my.ini文件中的  [mysqld]  中加入  #character-set-server=utf8 如图所示,必须在蓝圈的上方,就是说,蓝圈内的内容必须在[mysqld]的