澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站:操作表数据,mysq数据库常

2019-07-15 作者:数据库网络   |   浏览(92)

一、 约束的含义和分类
1.1约束的含义:是一种限制,用于限制表中的数据,保证数据的完整性和一致性。
1.2约束的分类:
①not null:非空,保证字段不能为空。违反约束不会报错,但是会有警告,适用于说有的类型。
②default:默认约束,当数据插入的时候,指定的字段如果没有数据插入,即插入默认值。
③primary key:主键,保证字段具有唯一性,并且非空,等价于唯一 非空的组合。
④unique:唯一,用于保证字段的唯一性,可以为空。
⑤check:检查约束,mysql不支持。
⑥foreign key:外键约束,用于约束两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表的添加的外键约束,用于引用主表中某列的值。
1.3添加约束
列级约束:语法上六大约束都支持,但是外键约束没有效果。【mysql不支持检查约束】
表级约束:除了非空和默认,其他都支持。
添加时机:创建表时、修改表时。
二、 唯一约束和主键约束比较、外键解析
1.主键唯一键的比较
澳门新萄京官方网站 1
2.外键解析
①在从表设置外键关系
②从表的外键列的类型和主表的关联列类型要求一致或者兼容
③主表的关联列必须是一个key,主键或者是唯一键
④插入数据的时候,先插入主表,然后插入从表
⑤删除数据的时候,先删除从表,再删除主表
三、 创建表时添加约束
语法概述:
Create table 表名(
字段名 字段类型 列级约束,
字段名 字段类型,
表级约束
)
1.添加列级约束
①在字段类型之后直接添加,可以有多个直接加空格隔开
②支持:默认、主键、唯一、非空
澳门新萄京官方网站 2
澳门新萄京官方网站 3
列级约束不能将外键约束添加成功。
2.添加表级约束
【constraint 约束名】 添加约束名字,是可选的。
澳门新萄京官方网站 4
澳门新萄京官方网站 5
澳门新萄京官方网站 6
①主键的命名失效,主键名字只能是primary
②外键添加成功,别名也成功添加
③check 检查约束,mysql不支持
3.约束的通用写法
澳门新萄京官方网站 7
澳门新萄京官方网站 8
四、修改表时添加约束
1.添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束
2.添加表级约束a
alter table 表名 add [constraint 约束名] 约束类型(字段名) [外键的引用]
澳门新萄京官方网站 9
澳门新萄京官方网站 10
澳门新萄京官方网站 11
[1]添加非空约束
alter table userchen modify column userchen varchar(20) not null;
澳门新萄京官方网站 12
[2]添加默认约束
澳门新萄京官方网站 13
[3]添加主键
澳门新萄京官方网站 14
[4]添加唯一约束
澳门新萄京官方网站 15
[5]添加外键【表级约束】
澳门新萄京官方网站 16
五、删除约束
[1]删除非空约束
澳门新萄京官方网站 17
[2]删除默认约束
澳门新萄京官方网站 18
[3]删除主键
澳门新萄京官方网站 19
[4]删除唯一键
澳门新萄京官方网站 20
[5]删除外键
澳门新萄京官方网站 21
六、级联删除
澳门新萄京官方网站 22
澳门新萄京官方网站 23
情况一、当删除父类数据时,对应从表的数据也将被删除
澳门新萄京官方网站 24
澳门新萄京官方网站 25
情况二、级联删除置null
澳门新萄京官方网站 26
澳门新萄京官方网站 27

NOT NULL:非空,该字段的值必填

mysql字段约束

1、创建数据库表:

创建数据表:create table 数据表名

 

UNIQUE:唯一,该字段的值不可重复

字段约束用来确保数据的完整性(可靠性和准确性)。

1主键约束
1>主键简介:
主键是表的标志列,在mysql中支持将一个或多个字段作为一个主键来使用。关系数据库依赖于主键,主键在物理层面只有两个用途:
唯一的标志一行记录作为一个可以被外键引用的有效对象。 2>设置主键:
创建主键分为单字主键和复合主键
单字主键创建只需在字段后边添加primary key
澳门新萄京官方网站 28
如上图所示,在mysqltest数据库创建student表,把学生的sid列设置为单字主键。
复合主键的创建:
澳门新萄京官方网站 29
如果有一张表,创建的时候没有添加主键,现在要给它添加主键:
alter table table_name add primary key(字段名称);
澳门新萄京官方网站 30
如上图,给已有的good表设置gid为主键。
3>修改主键:
修改主键有两种可能,一种是表中有主键,需要将主键修改在其它字段上(如上边给good表添加主键),另一种是表中没有主键,需要修改字段类型,使其成为主键。类型的修改要使用modify关键字。
对于已经设置了主键的表,主键的修改不能够直接执行。必须先删除原有主键,再重新设置主键。主键的删除只是删除了指定字段或字段组的主键约束,并不能够删除字段或字段组,一个表中只能有一个主键。
前边建的book表有主键字段组(bnum、typeid),现将表中的原有主键删除,将字段bnum修改为主键。
删除主键:alter table table_name drZ喎?" target="_blank" class="keylink">vcCBwcmltYXJ5IGtleTs8YnIgLz4NCjxpbWcgYWx0PQ=="修改主键" src="" title="" />

2外键约束

1>外键简介
外键记录了表与表之间字段的联系。外键将不同表的字段关联起来,使这些数据在修改、删除时有着关联,在数据操作时维护这些数据完整性。
外键有两个作用:

让数据自己通过外键来保证数据的完整性和一致性能够增加数据库表关系的可读性
外键的定义还要遵循以下的情况:所有的表必须是InnoDB型,它们不能是临时表,mysql中只有InnoDB类型的表才支持外键所有要建立外键的字段必须建立约束对于非InnoDB表,foreign key 子句会被忽略

2>外键的使用
语法:
alter table table_name add [constraint 外键名] foreign key [id] (index_cil_name, …) references table_name (index_col_name, …)
[on delete {cascade " set null | no action | restrict}]
[on update {cascade | set null | no action | restrict}]
可以看到mysql对创建外键要求严格,精确到字段的类型和长度。
对于外键最好采用 on delete restrict 和on update cascade的方式。
cascade:外键表中外键字段值会跟随父表被跟新,或所在的列会被删除。
no action:不进行任何关联操作
restrict:restrict相当于no action,即不进行任何操作。拒绝父表修改外键关联列,删除记录。
set null:在父表的外键关联字段被修改和删除时,外建表的外键列被设置为空(null)。

对于数据的添加,子表的外键列输入的值,只能是父表外键关联列已有的值,否则出错。
现有刚刚创建的表student和book。把book中typeid字段对应student表中的sid字段:
澳门新萄京官方网站 31
通过show create table table_name 可以创建表的代码以及存储引擎,同时可以看到外键的设置。
删除外键:
alter table table_name drop foreign key 外键名;
一张表的外键可能不止一个,删除多个外键可以重复使用上述语句。
澳门新萄京官方网站 32
注:定义外键时,使用“constraint 外键名 foreign key …”语句,能够很方便的通过外键名来删除外键。

  1. 非空约束
    被设置了非空约束的字段,在添加数据的时候必须要有数据。非空约束限制字段中的内容不能为空,但可以是空串或0。
    在创建表的时候直接在字段类型后边添加 not null 或null,即可设置为字段非空或者空。
    把已有的表某个字段设置为非空:
    alter table table_name modify 字段名 字段类型 not null;
  2. 默认值
    默认值是为字段指定默认的数据值。默认值的使用减轻了数据添加的负担,默认值除了可以定义为指定值,还可以设置为当前时间。被设置默认值的字段最好不为空,否则系统将无法确定该字段在添加时添加null还是默认值。
    添加默认值:
    在创建表的时候直接字段类型后边添加 “default 默认数据”,对于已有的表使用set关键字:
    alter table table_name alter 字段名 set default 默认值数据;
    删除已有的默认值:
    alter table table_name alter 字段名 drop default;
    修改默认值:可先执行删除语句在执行添加默认值语句。
    澳门新萄京官方网站 33
    上述sql语句先给typeid添加默认值2,再修改为5.
  3. 唯一性约束
    唯一性约束(unique constraint)要求添加该约束的列字段的值唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或多列不出现重复值。
    创建唯一约束字段:
    在建表时,可以直接创建唯一约束,可以直接在字段的数据类型后边直接添加unique关键字,也可以在所有字段定义之后使用[constraint <约束名>] unique(<字段名>)
    对于已经存在的表和字段,添加唯一约束要使用add关键字:
    alter table table_name add unique(字段列表);
    删除唯一约束:
    alter table table_name modify column 字段名 字段类型 [字段约束];
  4. 自增约束
    自增约束是一种由系统自动增加并填入字段数值的约束。
    auto_increment是数据列的一种属性,只适用于整数类型数据列,
    auto_increment数据列必须有唯一约束,以避免序号重复,
    mysql一张表中只能有一个auto_increment字段,
    当使用truncate table table_name 删除全部数据时,auto_increment会从1重新开始编号,
    自增字段的值只能一次加1,而不能像SQL Server数据库中的自增约束一样,每次加2、每次加3,
    在InnoDB数据表中,不可通过 create table or alter table 的auto_increment=n 语句来改变自增初值。
  5. 删除指定名称的约束
    mysql中,一个字段的所有约束都可以同名约束名删除,使用drop index语句:
    alter table table_name drop index 约束名;
    澳门新萄京官方网站 34

字段约束用来确保数据的完整性(可靠性和准确性)。 1主键约束 1主键简介: 主键是表的标志列,在mysql中支持将一个或多个...

       create table table_name(fields_name1 datatype,fields_name2 datatype.....);

1.创建表规范

create table 表名(

  列名   数据类型    是否为空   自动排序/默认值  主键/外键/唯一键,

  列名   数据类型    是否为空   默认值   外键/唯一键

) ENGINE=InnoDB  default  charset=utf8;

 

强制创建数据库:create database if not exists 数据库名;

DEFAULT:默认,该字段的值不用手动插入有默认值

2、查看表:  

数据类型不用再说了

PRIMARY KEY:主键,该字段的值不可重复并且非空 unique not null

      show tables;

是否为空 not null/null

  • not null:表示不能为空
  • null:表示可以为空

 

FOREIGN KEY:外键,该字段的值引用了另外的表的字段

 

默认值 default

default  XX:表示此列的数据默认为XX  

 

1、区别:

 3、创建带有主健约束的表(包括有单字健和多字健类型)

自动排序  auto_increment:表示根据列插入数据的先后顺序自动排序

 

①、一个表至多有一个主键,但可以有多个唯一

     1、单字键约束

注意:自动排序和默认值不能同时设定在一个列上,并且自动排序必须是主键/唯一键其中一个

 

②、主键不允许为空,唯一可以为空

         字段名 数据类型,primary key[默认值]

主键:primary key

一张表只能有一个主键,主键是唯一不重复,并且不能为null,所以一般直接把自动排序列设置为主键

 

2、相同点

      2、定义完所有列之后指定主健

唯一键:unique key

唯一键,顾名思义,唯一不重复,但可以为null,但一张表可以有多个唯一键

 

都具有唯一性

       constraint <约束名>primary key[默认值]

外键:foreign key

如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。

一张表中可以有多个外键,用于将当前表以设定的该列联系其他数据表

 

澳门新萄京官方网站 35

 

 

1)创建外键

首先需要两张表,先创建一个part部门表,此时的部门表暂且认定为主表

澳门新萄京官方网站 36

 

插入一些数据得:

澳门新萄京官方网站 37

 

再创建一个user员工表,此时的员工表设定为从表,在创建员工表时,把part_id作为foreign key,以此作为部门表的联系。

注意:外键设置都设置在从表上,**子表(从表)的外键必须和父表(主表)的关联主键类型一致,不然报错**

 

 澳门新萄京官方网站 38

 

插入数据,如果插入的数据不在外键约束好的数据内,则会报错

澳门新萄京官方网站 39

 

这就是外键的功效。具体在什么时候使用呢?就是在表与表之间有联系且不能有差异时,可以使用外键

  

2)删除外键:先删除外键名,再删外键字段

3)删除带有外键的数据表:先删除从表,再删除主表

4)外键约束操作:

 

澳门新萄京官方网站 40

 

 

cascade创建:当父表的id某字段删除时,子表也跟着删除**

mysql> create table users1(
    -> id smallint unsigned primary key auto_increment,
    -> username varchar(20) not null,
    -> pid smallint unsigned,
    -> foreign key (pid) references provinces(id) on delete cascade  #依据provinces表的外键约束方式cascade

 

5)约束:

主键,唯一键,外键,默认值的功效都是约束的作用

 

澳门新萄京官方网站 41

 

 

 

都支持组合键,但不推荐

 4、多字段联合主键

ENGINE

就是数据库引擎,mysql默认支持的数据引擎:INNODB,BERKLEY,ISAM,MYISAM,HEAP

最常用的就InnoDB和Myisam

  • Myisam:支持全文索引,查询数据时老快了
  • Innodb:支持事物,原子性操作

原子性操作:设置和修改数据只有两种结果,要嘛成功要嘛不成功,设置中途如果出错,所有相关数据会回滚到之前未操作的状态

 

1、用于限制两个表的关系,从表的字段值引用了主表的某字段值

    主健同多个字段联合组成

default  charset = utf8:创建表时设定此表的字符编码为utf8

2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求

。语法:

查看当期数据表的编码等信息:show create table  表名;/**show full columns from 表名;**

 

 

3、主表的被引用列要求是一个key

   Primary key[字段1,字段2,……]

2.范例

1)一般创建法

澳门新萄京官方网站 42

 

 2)也可以设置好后在后面插入,并且主键可以设置复合键,处的id和name复合在一起同属一个主键

澳门新萄京官方网站 43

 

注意:在创建表时最后一行不加逗号,不然报错

 

插入数据:

澳门新萄京官方网站 44

 

注意:当设置有自动排序时,插入数据不需要再给定列名和数据,它会自动生成

  

4、插入数据,先插入主表

  5、使用外键约束

3.删除数据表:drop  table 数据表名

澳门新萄京官方网站 45

 

5、删除数据,先删除从表

     外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

4.查看数据

可以通过以下两种方式来删除主表的记录

     外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键主要作用是保证数据引用的完整性,定义外健后,不允许删除在另一个表中具有关联关系的行。外键的作用是保持数据的一致性,完整性。

1)数据表信息:show  columns  from  数据表名;

澳门新萄京官方网站 46

 

2)查看表数据:select  × from  表名;

澳门新萄京官方网站 47

 

如果数据很多,加上‘G’表示以网格的形态呈现索引:

 澳门新萄京官方网站 48

 

 

#方式一:级联删除

    主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。

5.修改表:alter table 数据表名

ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY REFERENCES major ON DELETE CASCADE;

    从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。

 

#方式二:级联置空

    语法:

1).添加

1)添加列: alter table 表名  add  列名  数据类型;

2)添加主键:alter  table 表名  add  primary key(列名);

3)添加外键:alter table  表名  add constraint  外键名称(随意,注意顾名思义) foreign key 从表(外键字段) references 主表(主键字段)

4)修改数据库编码:alter database 库名 character set=utf8;

5)修改数据表编码:alter table 表名  charset= utf8;

 

ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY REFERENCES major ON DELETE SET NULL;

    Constraint <>foreign key 字段1,【字段2】,references【主表名】主健列1,主键列2……

2).重设

1)重设默认值:alter  table 表名  alter  字段  set  default  值;

2)重设列:

  • ``alter table 表名 modify column 列名 类型;  -- 类型
  • ``alter table 表名 change 原列名 新列名 类型; -- 列名,类型

 

注意:当把数据类型由大类型改为小类型,有可能数据会丢失

 

 

create table 表名(

    外键名为定义的外键约束的名称,一个表中不能有相同名称的外键;字段名表示子表需要添加外键约束的字段列;主表名即被子表外键所依赖的表的名称;主键列表示主表中定义的主键列,或者列组合。

3).删除

1)删除列:alter  table  表名  drop 列名

2)删除多列:aler  table 表名  drop  列名,列名,列名

3)删除外键:alter  table 表名 modify 列名 

4)删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

5)删除的同时新增一列:注意用逗号隔开就行

澳门新萄京官方网站 49

6)删除主键:

注意:一个表只能有个一个主键,所以删除主键时可以不用给列名。

修改列名时,如果列名是主键约束并且自动排列,直接修改会报错:

澳门新萄京官方网站 50

原因在于mysql不能单独定义两个主键

 

正确步骤:

a.先删除自增长(此时可以改名)

澳门新萄京官方网站 51

 

b.再删除主键:

澳门新萄京官方网站 52

 

c.再重新设置列定义:

澳门新萄京官方网站 53

 

 此时的unsigned表示无符号的意思,也就是非负数,只用于整型

 

字段名 字段类型 not null,#非空

    关联指的是在关系型数据库中,相关表之间的联系。它是通过相容或相同的属性或属性组来表示的。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配。如果类型不一样,则创建子表时,就会出现错误。

6.更新数据:updata table 表名  set 列名 = 值

 

字段名 字段类型 primary key,#主键

   6、使用非空约束

表数据操作 

 

字段名 字段类型 unique,#唯一

     非空约束就是字段值不能为空。

1.清空表数据:

  • delete from 数据表名,逐条删除(速度较慢)
  • truncate  table 数据表名,整体删除(速度较快)
  • DELETE FROM 数据表名 WHERE……,删除某一列满足条件的数据

 

字段名 字段类型 default 值,#默认

      字段名   数据类型 Not null

澳门新萄京官方网站,2.对表数据增删改查:

1)增:

insert into 表 (列名,列名...) ``values (值,值,值...)【插入单条数据】

`insert` `into` `表 (列名,列名...)values`(值,值,值...),(值,值,值...)【插入多条数据】

insert into 表 (列名,列名...) ``select (列名,列名...) ``from 表【把查询到的其他表数据插入】

澳门新萄京官方网站 54

 

 

2)删:

delete from 表【删除/清空数据】

delete from 表 ``where id=1 ``and name``=``'字段' 【删除某一段符合条件的数据】

 

3)改:

update 表 ``set 列名与字段关系(如name ='test') where 列名与`字段关系(如id >4)```

 

4)查:

select * ``from 表【查询表的所有数据】

select * ``from 表 ``where ...【查询满足条件的字段数据】

select 列名`as`.. ``from 表 ... 【查询满足条件的表中所有数据】

 

5)其他:

 

a、条件  where

``select * ``from 表 ``where id > 1 ``and name != ``'alex' and num = 12;

 

``select * ``from 表 ``where id ``between 5 ``and 16;

 

``select * ``from 表 ``where id ``in (11,22,33)

``select * ``from 表 ``where id ``not in (11,22,33)

``select * ``from 表 ``where id ``in (``select nid ``from 表)

 

b、通配符*

 

``select * ``from 表 ``where name like 'ale%'  - ale开头的所有(多个字符串)

``select * ``from 表 ``where name like 'ale_'  - ale开头的所有(一个字符)

 

c、限制  limit

 

limit参数是从0开始计数

``select * ``from 表 limit 5;            - 前5行

``select * ``from 表 limit 4,5;          - 从第4行开始的5行

``select * ``from 表 limit 5 offset 4    - 从第4行开始的5行

 

d、排序  order by

asc  小到大

desc  大到小

 

``select * ``from 表 ``order by 列 ``asc              - 根据 “列” 从小到大排列

``select * ``from 表 ``order by 列 ``desc             - 根据 “列” 从大到小排列

``select * ``from 表 ``order by 列1 ``desc``,列2 ``asc    - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

 

e、分组**group  by /having**

 

使用having,必须保证分组条件为聚合函数或者这个字段必须出现在当前select语句中

 

聚合函数:max,min,average,sum,count等永远只有一个返回结果的函数

 

``select num ``from 表 ``group by num

``select num,nid ``from 表 ``group by num,nid

``select num,nid ``from 表  ``where nid > 10 ``group by num,nid ``order nid ``desc

``select num,nid,``count``(*),``sum``(score),``max``(score),``min``(score) ``from 表 ``group by澳门新萄京官方网站:操作表数据,mysq数据库常用。 num,nid

 

``select num ``from 表 ``group by num ``having max``(id) > 10

 

``特别的:``group by 必须在``where``之后,``order by``之前

 

f、连表

澳门新萄京官方网站 55

 

 

澳门新萄京官方网站 56

澳门新萄京官方网站 57

 

 

内连接:

 

澳门新萄京官方网站 58

 

澳门新萄京官方网站 59

 

 

左外连接:

 

澳门新萄京官方网站 60

 

澳门新萄京官方网站 61

 

右外连接:

 

澳门新萄京官方网站 62

 

 

澳门新萄京官方网站 63

 

 全连接,左右连接合集:

澳门新萄京官方网站 64

 

 外连接:

 

澳门新萄京官方网站 65

 

澳门新萄京官方网站 66

 

 

自连接:同一个数据表对自身连接,但必须有一个别名区分

澳门新萄京官方网站 67

 

多表删除:

澳门新萄京官方网站 68

 

 

 

``无对应关系则不显示

``select A.num, A.``name``, B.``name

``from A,B

``Where A.nid = B.nid

 

``无对应关系则不显示

``select A.num, A.``name``, B.``name

``from A ``inner join B

``on A.nid = B.nid

 

``A表所有显示,如果B中无对应关系,则值为``null

``select A.num, A.``name``, B.``name

``from A ``left join B

``on A.nid = B.nid

澳门新萄京官方网站:操作表数据,mysq数据库常用。 

``B表所有显示,如果B中无对应关系,则值为``null

``select A.num, A.``name``, B.``name

``from A ``right join B

``on A.nid = B.nid

 

g、组合

``组合,自动处理重合

``select nickname

``from A

``union

``select name

``from B

 

``组合,不处理重合

``select nickname

``from A

``union all

``select name

``from B

 

6.使用any,some,all,in,not in,exists,not  exists关键词操作

澳门新萄京官方网站 69

 

 

使用any参数:

 澳门新萄京官方网站 70

 

7.mysql也支持比较运算符

 

澳门新萄京官方网站 71

 

 

 

参考自:

 

 

constraint 约束名 foreign key references 主表

    7、使用唯一性约束

);

    使用唯一性约束 unique constraint要求该列唯一。允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

注意:

(1)       在定义完列之后直接指定唯一约束。

列级约束: 除了外键其他类型都支持,不可以起约束名;

     字段名 数据类型 unique

表级约束:除了非空和默认其他类型都支持,可以起约束名,但对主键无效。

    (2)在定义完所有列之后指定唯一约束。

列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求

     Constraint <约束名>unique <字段名>

添加非空

    Unique和primary key 的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key 声明;声明为primary key 的列不允许有空值。但是声明为unique的字段允许空值Null的存在。

alter table 表名 modify column 字段名 字段类型 not null;

    8、使用默认约束

删除非空

     默认约束(default constraint)指定某列的默认值。如男性同学较多,性别就可以默认为男。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为男。

alter table 表名 modify column 字段名 字段类型 ;

    字段名  数据类型 default 默认值

添加默认

    9、设置表的属性值自动增加

alter table 表名 modify column 字段名 字段类型 default 值;

       在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加auto_increment关键字来实现。默认的,在Mysql中auto_incrtement约束。且该字段必须为主键的一部分。Auto_increment.约束的字段可以是任何整数类型(tinyint,smallint,int,bigint)。

删除默认

    语法规则:

alter table 表名 modify column 字段名 字段类型 ;

      字段名 数据类型 auto_increment

添加主键

    4.2 查看数据表结构

alter table 表名 add【 constraint 约束名】 primary key;

    1.查看表基本结构语句describe  table_name 或者desc 表名;

删除主键

    2.查看表详细结构语句 show create table

alter table 表名 drop primary key;

     Show create table <表名>G;

添加唯一

   4.3修改数据表

alter table 表名 add【 constraint 约束名】 unique;

     1、alter table <旧表名> rename to <新表名>;

删除唯一

   4.4修改字段的数据类型

alter table 表名 drop index 索引名;

       Alter table <表名> modify <字段名><数据类型>

添加外键

   4.5 修改字段名

alter table 表名 add【 constraint 约束名】 foreign key references 主表;

        Alter table 表名 change 旧字段名 新字段名 新数据类型;

删除外键

    4.6添加字段

alter table 表名 drop foreign key 约束名;

     Alter table 表名 add 新字段名 数据类型 约束条件 first after 已存在字段名

特点:

     4.7删除字段

澳门新萄京官方网站 72

      删除字段是将数据表中的某个字段从表中移除

1、不用手动插入值,可以自动提供序列值,默认从1开始,步长为1

      Alter table 表名 drop 字段名;

auto_increment_increment

    4.8修心字段的排列位置

如果要更改起始值:手动插入值

       Alter table 表名 modify 字段1 数据类型 first|after字段2

如果要更改步长:更改系统变量

    4.9更改表的存储引擎

set auto_increment_increment=值;

      Alter table 表名 engine=更改后的存储引擎名;

2、一个表至多有一个自增长列

    4.10 删除表的外键约束

3、自增长列只能支持数值型

    Alter table 表名 drop foreign key 外键约束名。

4、自增长列必须为一个key

    4.11删除数据表

create table 表(

    Drop table if exist 表1,表2,表3……表n;

字段名 字段类型 约束 auto_increment

    4.12删除被其它表关联的主表

)

      数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样同时删除了两个表中的数据。但有的情况下可能要保留子表,这时如要单独删除父表,只需将关联的表的外键约束条件取消,然后就可以删除父表。

alter table 表 modify column 字段名 字段类型 约束 auto_increment

alter table 表 modify column 字段名 字段类型 约束

创建数据库

CREATE DATABASE students;

USE students;

创建科目表,添加主键约束

CREATE TABLE major(id INT PRIMARY KEY,majorName VARCHAR;

创建学生信息表,添加列级约束

CREATE TABLE stuinfo(

id INT PRIMARY KEY,#主键

stuName VARCHAR NOT NULL UNIQUE,#非空

seat INT UNIQUE,#唯一

age INT DEFAULT 18,#默认约束

majorId INT REFERENCES major#外键

);

查看stuinfo中的所有索引,包括主键、外键、唯一

SHOW INDEX FROM stuinfo;

添加表级约束

澳门新萄京官方网站 73

通用的写法

澳门新萄京官方网站 74

修改表时添加约束,先重新创建一个表

澳门新萄京官方网站 75

添加非空约束

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR NOT NULL;

添加默认约束

ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;

添加主键

①列级约束

ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;

②表级约束

ALTER TABLE stuinfo ADD PRIMARY KEY;

添加唯一

①列级约束

ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;

②表级约束

ALTER TABLE stuinfo ADD UNIQUE;

添加外键

ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY REFERENCES major;

删除非空约束

ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR NULL;

删除默认约束

ALTER TABLE stuinfo MODIFY COLUMN age INT ;

删除主键

ALTER TABLE stuinfo DROP PRIMARY KEY;

删除唯一

ALTER TABLE stuinfo DROP INDEX seat;

删除外键

ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:澳门新萄京官方网站:操作表数据,mysq数据库常

关键词: