当前位置:首页 > AI娱乐 > 正文内容

alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表

admin16小时前AI娱乐4

alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表

第二十章 插入数据

是用来插入(或添加)行到数据库表的。插入数据的几种方式:

1  插入完整的行

2 插入行的一部分

3  插入多行

4 插入某些查询结果

 语句

 INTO (,,)

 ,, FROM ;

列省略

如果表中定义允许,则可以在操作中省略某些列,省略的列必须满足以下某个条件。

1 该列定义为允许为NULL

2 在表定义中给出默认值,

提高整体性能

数据库经常多个客户访问,对处理什么请求以及用什么次序处理进行管理MySQL的任务。操作可能很耗时(特别是由很多索引需要更新时),而且它可能降低等待处理的语句性能。

如果数据检索是最重要的(通常是这样的),则你可以通过在 和INTO之间添加关键字  指示mysql降低语句的优先集

更新和删除数据

为了更新(修该)表中的数据,可使用语句,可采用两种方式使用

1 更新表中特定的行

2 更新表中所有的行

更新行和删除行的时候一定要加上WHERE子句,否则后果自负

 bname SET zda = ‘’ , zdb = ‘’ WHERE zdid=’20005’;

 关键字    如果使用更新多行,并且在更新这些行中的一行或多行时出现一个错误,则整个操作被取消,(错误发生前更新的所有行被恢复到他们原来的值)为即使发生错误也继续进行更新。可使用关键字

   bname;

删除数据

为了从表中删除(去掉)数据alert add column,使用语句,可以使用两种方式:

1 从表中删除特定的行

2 从表中删除所有的行

不要省略WHERE子句

更快的删除  如果想从表中删除所有的行,不要使用,可以使用 TABLE语句alert add column,他完成相同的工作,但速度更快(实际上是删除原来的表并重新创建一个表,而不是逐行去删除表中的数据)

更新和删除的指导原则

下面是许多sql程序员使用的或是所遵循的习惯

1 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE子句的或语句。

2 保证每个表都有主键,尽可能的像WHERE子句那样使用它(可以指定各主键、多个值、和值的范围)

3 在对和语句操作使用WHERE前,应该先用进行测试,保证它过滤的数据是正确的记录,以防编写的WHERE子句不正确。

4 使用强制实施引用完整的数据库,这样MYSQL将不允许删除具有与其他表相关联的数据的行

第二十一章  创建和操纵表

创建表

一般两种创建表的方法

1 使用具有交互式创建和管理表的工具

2 表也可以直接用MySQL语句操纵

在使用交互式工具时,工具也是生成MySQL语句操纵数据库

表创建基础

为了利用 TABLE创建表,必须给出下列信息:

1 新表的名字,在关键字 TABLE之后给出

2 表列的名字和定义,用逗号分隔

 TABLE table

  int       NOT NULL  ,

  char(20)  NOT NULL   1,

  char(20)  NOT NULL ,

  char(20)  NOT NULL ,

…..

  KEY ( )

)  =  

如果表已经存在,则必须先删除后在创建他alert add column,不可以直接覆盖。如果仅想在表没有存在的情况下创建它,应该在表名后给出 IF NOT 

使用NULL值  如果不指定列为NOT NULL则它默认是NULL

主键再介绍  主键的值必须是唯一的。创建主键时可以用单列做主键 KEY(,),也可以使用多列做主键 KEY(,).主键值不允许为NULL

索引创建

INDEX ( ,….);

使用

每个表只允许使用一个列,而且它必须被索引,(如通过使它为主键)

如果两个表关联,添加时一表时需要另一表的主键,该怎么获得呢:

可以使用()函数获得这个值 此语句返回最后一个的值。

指定默认值

如果在插入行时没有给出值,mysql允许指定此时使用默认值。默认值是在 TABLE语句的列定义中的关键字定义的。

  char(20)  NOT NULL   1,

MySQL不允许使用函数作为默认值,它只支持常量

引擎搜索

你可能已经注意到,迄今为止使用的  TABLE语句全都以 = 语句结束

与其他的DBMS一样,MySQL有一个具体管理和处理数据的内部引擎,在你使用 TABLE语句是,该引擎具体创建表,在其他应用中区修改读取删除表等处理你的请求,多数时候它隐藏在DBMS内,不需要过多的关注它。

但MySQL与其他的DBMS不一样,它具有多种引擎,它打包多个引擎,这些引擎都隐藏在MySQL服务器内,全都能处理用户的请求。

alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表 第1张

为什么要发行多种引擎呢,因为他们具有各自不同的功能和特性,为了不同的任务选择正确的引擎能获得良好的功能和灵活性

当然你也可以省略这些数据库引擎,如果省略=语句,则使用默认引擎(很可能为),多数sql语句都会默认使用它,但并不是所有的语句都默认使用它,这就是为什么=语句很重要的原因。

以下几个需要知道的引擎

1 是一个可靠的事务处理引擎,它不支持全文本搜索。

2  在功能上等同于MySAM,但由于数据存储在内存,所以速度更快(特别适用于临时表)

3 MySAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理

引擎类型可以混用。混用引擎类型的一个大缺陷。外键不能跨引擎,即使用一个引擎的表不能引用具有使用不同引擎的表的外键

更新表

为了更新表,可以使用ALTER TABLE语句,但是在理想状态下,当表中存储了数据后就不应该再去更新表了。所以在设计表时需要花费大量的时间去考虑,以便后期不做太大的改动。

ALERT TABLE更改表结构,必须给出下面的信息:

1 在ALERT  TABLE之后给出要修改的表名

2 所做更改的列表

添加一列 ALERT TABLE  ADD  CHAR(90);必须指明数据类型

删除一列 ALERT TABLE  DORP  ;

定义外键

ALERT TABLE  ADD  

 KEY ()   ()

可以单条ALTER TABLE语句对单个表进行多个修改,每个修改用逗号分隔开。

复杂的表结构一般需要手动删除过程

1 用新的列布局创建一个新表

2 使用  语句从旧表复制数据当道新表。如果有必要,可以使用转换函数和计算字段

3 检验包含所需数据的新表

4 重名名旧表

5 用旧表原来的名字重命名新表

6 根据需要,重新创建触发器、存储过程、索引和外键

小心使用ALTER TABLE 因为它是不可逆的操作,最好操作前完成已备份。

删除表

DORP TABLE table;   不可撤销,永久删除表

重命名表

 TABLE table TO ;  多个表重命名 逗号分隔开

IF NOT 

DORP 

IF 

在整型数据列后加上  属性可禁止负数,取值从0开始。范围扩大一倍-125—125  0-250

  数据字段属性,在数值之前自动用0补足不足的位数,声明一个int(3)插入5 返回005

 TABLE (

Id int(5) .……

Num ind(3) ….

Sex  int(1)   0 ……

Name (10) NOT NULL……

Mysql默认字符集设置:win my.ini    Linux   /etc/f

-set- = gbk;

- =;

创建数据库时设置字符集语句:

  IF NOT mydb   SET utf8  ;

数据库文件结构

一个数据表会有三个文件,以.frm为后缀的结构定义文件,以.MYD为后缀名的数据文件,一个以.MYI为后缀名的索引文件

一个数据表只有一个文件

 TABLE t (i INT)  = ;

 TABLE t (i INT) TYPE = ;

(”sql……..,$linke)  当文件连接两个数据库时指定在哪个数据库上执行

当query函数出错时可以用()【错误号】和()函数来确定

当query函数执行后可以使用()来查看他们到底修改了多少行

还可以()查看最后插入的自增字段(id)值

查询结果集处理

$ = ( * from books);

rows=();   显示结果的行数

cols=(); 显示结果的列数

(); 将一条结果记录返回并以一个普通索引数组的形式保存

(); 将一条结果记录返回并以一个普通关联数组的形式保存

(); 将一条结果记录返回一个关联数组或索引数组alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表,或同同时获得索引关联数组,通过传递 、 中的一个常量返回不同的数组形态。默认使用常量

();  以一个对象的形式返回一条结果记录,它的各个记录需要以对象的方式进行访问。

获取列数信息(数据类型,长度,索引)  ()

PHP默认把结果集一直保存到php脚本执行结束为止,如果想提前释放结果集,使用()函数。

标识列所用的计数值重置

整理

首先说两种可以重置种子的方法:

–  a:

TABLE name

alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表 第2张

–新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 。

/*

TABLE 在功能上与不带 WHERE 子句的 语句相同:二者均删除表中的全部行。

但 TABLE 比 速度快,且使用的系统和事务日志资源少。

语句每次删除一行,并在事务日志中为所删除的每行记录一项。

TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。

新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 。

如果要删除表定义及其数据,请使用 DROP TABLE 语句。

对于由 KEY 约束引用的表,不能使用 TABLE,而应使用不带 WHERE 子句的 语句。

由于 TABLE 不记录在日志中,所以它不能激活触发器。

TABLE 不能用于参与了索引视图的表。

*/

–  b:

DBCC (表, , 1)

/*

DBCC 说明

DBCC (‘’, )

不重置当前标识值。DBCC 返回一个报表alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表,它指明当前标识值和应有的标识值。

DBCC (‘’)

或 DBCC (‘’, )

如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。

DBCC (‘’, , )

当前值设置为 。如果自创建表后没有将行插入该表,则在执行 DBCC 后插入的第一行将使用 作为标识。否则,下一个插入的行将使用 + 1。如果 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。

由此我想起上次有一个网友的问题能很好的让大家认识这个问题,

网友问题如下:

–有张表

  table   A(

A1   int   (1,1)     key,

A2   (20),

A3   (15,10)

–有个存储过程

  proc   (@nA   int)

as

begin   tran

  A   where   A1=@nA

if(@@Error=0)

else

Go

–当执行完

exec     1

–以后

–我想让表里的所有记录A1从新从1开始排列,该怎么修改存储过程,请高手指点

很显然在不利用SET 开关项的前提下是无法在自增列完成这个功能的。

很自然的我们就引出这个SET 开关项

SET

允许将显式值插入表的标识列中。

语法

SET {table } { ON | OFF }

好下面我们就先利用这个开发项完成 这个网友的功能

tb(id int (1,1),(1))

tb ’a’

tb ’b’

tb ’c’

go

* from tb

go

   proc   (@nA  int)

as

begin   tran

SET tbON

from tb where   id=@nA

if(@@Error=0)

begin

* into #from tb where id >@nA

from tb where id> @na

tb(id,col) id - 1 , #

drop table #

加入微信交流群:************ ,请猛戳这里→点击入群

扫描二维码推送至手机访问。

版权声明:本文由前沿科技娱乐汇发布,如需转载请注明出处。

本文链接:https://kejiyl.com/post/6456.html

分享给朋友:

“alert add column MySQL必知必会笔记(六)插入数据 创建和操纵表” 的相关文章

从 AI 小说创作看人工智能的创造力边界

从 AI 小说创作看人工智能的创造力边界

在当今数字化时代,人工智能(AI)的发展如日中天,其在各个领域的应用不断拓展,小说创作也成为了 AI 涉足的领域之一。AI 小说创作的出现,引发了人们对于人工智能创造力边界的深入思考。AI 小说创作的兴起,让我们看到了人工智能在语言处理和文本生成方面的巨大潜力。通过大量的文本数据训练,AI 可以学习...

分析 AI 小说创作中的语言风格与情感表达

分析 AI 小说创作中的语言风格与情感表达

在当今的文学创作领域,AI 小说创作正逐渐崭露头角,成为一种备受关注的新兴创作形式。AI 小说以其独特的语言风格和情感表达,为读者带来了全新的阅读体验。从语言风格来看,AI 小说展现出了多样化的特点。一方面,AI 能够生成简洁明了、直截了当的语言风格。它不会像人类作家那样在文字上过多地修饰和雕琢,而...

AI 生成音乐与传统音乐制作的成本效益对比

AI 生成音乐与传统音乐制作的成本效益对比

在当今数字化的时代,音乐制作领域正经历着一场深刻的变革,AI 生成音乐逐渐崭露头角,与传统音乐制作方式形成了鲜明的对比。从成本和效益两个维度来看,这两种音乐制作模式各有优劣。传统音乐制作通常需要一支庞大的专业团队,包括作曲家、编曲家、乐手、录音师、混音师等。每个环节都需要投入大量的人力、物力和时间。...

AI 如何为游戏角色赋予鲜活的智能与情感

AI 如何为游戏角色赋予鲜活的智能与情感

在当今的游戏领域,AI 技术正逐渐成为塑造游戏角色的重要力量。它不仅能够赋予游戏角色出色的智能表现,还能让这些角色拥有丰富而鲜活的情感,从而使玩家能够更加深入地与游戏世界互动,沉浸其中。AI 为游戏角色赋予智能主要体现在多个方面。在角色的行为逻辑方面,AI 可以根据不同的情境和目标,做出合理且多样化...

AI 音乐:突破传统音乐风格界限的新力量

AI 音乐:突破传统音乐风格界限的新力量

在当今数字化的时代,音乐领域正经历着一场前所未有的变革,而 AI 音乐无疑成为了这场变革中的关键力量。它以其独特的方式突破了传统音乐风格的界限,为音乐创作、表演和欣赏带来了全新的体验。传统音乐风格往往受到时代、地域和文化的限制,形成了各自独特的特点和表现形式。AI 音乐却打破了这些界限,将不同风格的...

解读 AI 小说创作中的情节创新点与局限

解读 AI 小说创作中的情节创新点与局限

在当今数字化时代,AI 技术的发展为小说创作带来了全新的机遇和挑战。AI 小说以其独特的方式展现出情节创新的一面,同时也存在着一些不可忽视的局限。情节创新点方面,AI 小说首先在故事架构上展现出了独特的创造力。它能够快速生成各种复杂而新颖的情节框架,打破传统小说的叙事模式。例如,AI 可以创造出跨越...