2019-11-22 mysql数据库

# *****70_主键约束(冲突)*****

"""

-- 向pri1、2表中插入数据

insert into my_pri1

values('古天乐','bc20190001'),

('蔡康永','bc20190002');

insert into my_pri2

values('bc20190001','bc25890001',90),

('bc20190001','bc25890002',85),

('bc20190002','bc25890001',92);

-- 主键冲突(重复)

insert into my_pri1

values('刘涛','bc20190002');

-- 错误: 主键冲突

insert into my_pri2

values('bc20190001','bc25890001',100);

"""

# *****71_自增长*****

"""

-- 删除主键

alter table my_pri3 drop primary

key;

-- 自增长

create table my_auto(

id int primary key auto_increment

comment '自动增长',

name varchar(10) not null

);

-- 触发自增长

insert into my_auto(name)

values('邓丽君');

insert into my_auto

values(null, '成龙');

insert into my_auto values

(default, '吴绮莉');

-- 指定数据

insert into my_auto values

(6, '黄晓明');

insert into my_auto values

(null, '杨颖');

"""

# *****72_自增长的修改和删除*****

"""

-- 修改表选项的值

alter table  my_auto

auto_increment=4;

-- 向下修改(改小) 不生效

alter table  my_auto

auto_increment=10;

-- 向上修改(改小)

-- 查看自增长变量

show variables like

'auto_increment%';

-- 修改自增长步长

set auto_increment_increment=5;

-- 一次自增5

-- 插入记录

insert into my_auto values(null,

'杨紫');

insert into my_auto values(null,

'张一山');

-- 删除自增长

alter table my_auto modify id int

primary key;

-- 错误: 主键理论上是单独

存在的(系统会认为我们要再加一个主键)

alter table my_auto modify id int;

有主键的时候,千万不要再加主键

"""

# *****73_添加唯一键*****

"""

-- 创建唯一键

create table my_unique1(

number char(10) unique comment

'学号: 唯一, 允许为空',

name varchar(20) not null

)charset utf8;

create table my_unique2(

number char(10) not null comment

'学号',

name varchar(20) not null,

-- 增加唯一键

unique key(number)

);

create table my_unique3(

id int primary key auto_increment,

number char(10) not null,

name varchar(20) not null

);

-- 追加唯一键

alter table my_unique3 add unique

key(number);

"""

# *****74_唯一键约束与删除*****

"""

-- 插入数据

insert into my_unique1

values(null, '大雄'),

('bc20190001', '胖虎'),

(null,'静香');

insert into my_unique1

values('bc20190001','哆啦A梦');

-- 删除唯一键

alter table my_unique3 drop index number;

"""

# *****75_索引*****

"""

索引:系统根据某种算法,将已有的数据,或未来可能新增的数据,

单独建立一个文件,文件能够实现快速的匹配数据,

并且能够快速地找到对应表中的记录

索引的意义:

提升查询数据的效率

约束数据的有效性、唯一性等

MySQL中提供了多种索引

主键索引:primary key

唯一索引:unique key

全文索引:fulltext index

普通索引:index

"""

# *****76_表关系*****

"""

一对一:一张表的一条记录一定只能与另外一张

表的一条记录进行对应,反之亦然

一对多:一张表中有一条记录可以对应另外一张表中的多条记录,

但是反过来,另外一张表的一条记录只能对应第一张表的一条记录

多对多:一张A表中的一条记录,能够对应B表中的多条记录,

同时B表中的一条记录也能对应A表中的多条记录

"""

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容