数据库
首页 > 数据库> > MySQL入门基础(3)

MySQL入门基础(3)

作者:互联网

DML和DDL补充

insert插入多条语句

insert into 表名(字段1,字段2) values(值1,值2),
(值3,值4),...,()

快速创建表

将查询的结果当作成新的表

create table xx as select * from emp;

把查询结果插入到

insert into xx select * from xxx

快速删除表中的数据,不可恢复!

truncate table xxx # DDL

删除表

drop table xxx

DDL 不讲,因为不常用,create,drop,alter

约束

create table t_vip(
	id int unique,
    name varchar(255) not null
)

null不算unique

两个字段联系起来具有唯一性

create table t_vip(
	id int,
    name varchar(255),
    email varchar(255),
    unique(name, email)	# 表集约束
)

not null只有列级约束,没有表级约束

如果一个字段被unique和not null 同时修饰,那么就自动成为主键(Oracle不是)

主键约束

任何一张表都应该有主键。

主键特征:不能空,不能重复

drop table if exists t_vip;
create table t_vip(
	id int primary key,
    name varchar(255)
)

单一主键和复合之间,建议不使用复合主键

一张表主键约束只能添加一个

主键值建议使用 int,bigint,char,一般都是定长的。

自然主键和业务主键。自然主键是一个int值,与业务没关系。业务主键是业务中的一个字段。建议使用自然主键,不要和业务挂钩。

自增

create table xxx (
	int id primary key auto_increment,
    name varchar(255)
)

外键约束

foreign key

create table t_class(
	classno int primary key,
    classname varchar(255)
)

create table t_student(
	no int primary key,
    name varchar(255),
    cno int,
    foreign key(cno) references t_class(classno)
)

外键值可以为null。外键不一定是父表的主键,但是一定要有unique约定

存储引擎

添加了unique或者主键的字段,会自动创建索引

事务

事务是一个完整的业务逻辑。

和事务有关的是DML语句,update delete insert

提交事务:commit

回滚事务:callback

mysql默认自动提交,每次执行一个DML语句就提交一次!

事务特性

隔离级别

两个事务A和B

索引

可以在单个字段,也可以在多个字段上添加。为了缩小扫描范围。

什么情况加索引

  1. 数据量大
  2. 某个字段经常出现在where后面(经常被扫描
  3. 该字段很少进行DML操作
create index emp_ename_index on emp(ename);
drop index emp_ename_index on emp(ename);

索引失效的情况

索引分类

视图

create view dept2_view as select * from dept;
drop view dept2_view;

对视图对象的增删改查会导致原表被修改

标签:入门,int,create,基础,索引,key,MySQL,table,主键
来源: https://www.cnblogs.com/destinyzk/p/16659456.html