插入数据表

3.1.1 插入表数据

一旦创建了数据库和表,下一步就是向表里插入数据。通过INSERTREPLACE语句可以向表中插入一行或多行数据。

语法格式:

INSERT [LOW_PRIORITY | DELAYED |HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name [(col_name,...)]

VALUES ({expr | DEFAULT},...),(...),...

| SET col_name={expr | DEFAULT}, ...

[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

说明:

tb1_name:被操作的表名。

col_name:需要插入数据的列名。如果要给全部列插入数据,列名可以省略。如果只给表的部分列插入数据,需要指定这些列。对于没有指出的列,它们的值根据列默认值或有关属性来确定,MySQL处理的原则是:

1)具有IDENTITY属性的列,系统生成序号值来唯一标志列。

2)具有默认值的列,其值为默认值。

3)没有默认值的列,若允许为空值,则其值为空值;若不允许为空值,则出错。

4)类型为timestamp的列,系统自动赋值。

VALUES子句:包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。若tb1_name后不给出列名,则在VALUES子句中要给出每一列(除IDENTITYtimestamp类型的列)的值,如果列值为空,则值必须置为NULL,否则会出错。VALUES子句中的值:

1expr:可以是一个常量、变量或一个表达式,也可以是空值NULL,其值的数据类型要与列的数据类型一致。例如,列的数据类型为int,插入的数据是‘aaa’就会出错。当数据为字符型时要用单引号括起。

2DEFAULT:指定为该列的默认值。前提是该列原先已经指定了默认值。

如果列清单和VALUES清单都为空,则INSERT会创建一行,每个列都设置成默认值。

INSERT语句支持下列修饰符:

LOW_PRIORITY:可以使用在INSERTDELETEUPDATE等操作中,当原有客户端正在读取数据时,延迟操作的执行,直到没有其他客户端从表中读取为止。

DELAYED:若使用此关键字,则服务器会把待插入的行放到一个缓冲器中,而发送INSERT DELAYED语句的客户端会继续运行。如果表正在被使用,则服务器会保留这些行。当表空闲时,服务器开始插入行,并定期检查是否有新的读取请求(仅适用于MyISAMMEMORYARCHIVE表)。

为了让客服端能识别汉字

set character_set_client=gb2312;

为了让结果不出现乱码

set character_set_results=gb2312;

create table xs

(学号 char(6) notnull primary key,

姓名 char(8),

专业名 char(10),

出生日期 date,

总学分 tinyint,

照片 blob,

备注 text

);

插入记录命令

insert into 表名(字段名1,字段名2.。。。)

values(1,值2.。。。);

081101王林计算机 1 1990-02-10 50null null

insert into xs(学号,姓名,专业名,出生日期,总学分,照片,备注)

values('081101','王林','计算机','1990-02-10',50,null,null);

或者:(如果提供的值的个数和顺序与表中字段一致,可以省略字段名)

insert into xs values('081101','王林','计算机','1990-02-10',50,null,null);

或者:如果只给表中的部分字段插入值时,要指明字段名

insert into xs(学号,姓名,专业名,出生日期,总学分)

values('081101','王林','计算机','1990-02-10',50);

081102李四

insert into xs(学号,姓名)values('081102','李四');

081103王五 软件工程1990-10-10

insert into xs values('081103','王五','软件工程','1990-10-10',null,null,null);

insert into xs(学号,姓名,专业名,出生日期) values('081103','王五','软件工程','1990-10-10');

1.创建数据库

create database 库名

create database if not exists 库名

创建库的同时指定字符集,校对规则

create database mydb character set utf8

collateutf8-general_ci;

显示所有数据库

show databases;

显示创建数据库的定义信息

show create dabasese 库名

2.修改数据库,只能改参数

alter database 库名characterset gb2312 collate gb2312_chinese_ci;

3.删除数据库

drop database 库名

drop database if exists 库名

4.创建表

创建表就是创建表的结构:包含哪些字段(属性),字段名,字段类型

create table 表名

(字段名1 类型,

字段名2 类型,

。。。。

)

创建一个学生表

xs:id name sex

确定你的表建在哪个库中,把此库变为当前数据库

use 库名;

create table xs

(

id int,

name char(10),

sex char(2)

);

5.修改表结构:增加字段 修改旧字段 删除字段

alter table 表名

add 字段名类型(宽度)//增加字段

modify 旧字段类型 //修改旧字段

drop 字段名//删除字段

change 旧字段名新字段内容//改列名

在学生表中增加birthday字段

alter table xs

add birthday date;

alter table xs

modify name varchar(20);

alter table xs

change name sname varchar(20);

6.修改表名

rename table 旧名 to 新名

7 复制表

create table 表名 like 表名1

8 删除表

drop table 表名

删除记录:

delete from 表名 //删除表中的所有记录,此表变为了空表

delete from 表名 where 条件 //删除表中符合条件的记录

delete from xs where 学号='081102';

droptable xs ; //删除整张表,结构和记录

truncate table 表名 //快速删除表中的所有记录

修改记录(更新记录)

update 表名

set 字段名1=1 [,字段名2=2.。。。]

where 条件

insert

delete

update

你可能感兴趣的:(数据)