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

MySQL入门基础(3)

时间:2022-09-05 20:34:18浏览次数:75  
标签:入门 int create 基础 索引 key MySQL table 主键

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

约束

  • 非空约束 not null
  • 唯一性约束 unique
  • 主键约束 primary key
  • 外键约束 foreign key
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约定

存储引擎

  • MyISAM

    格式文件

    数据文件

    索引文件

  • InnoDB

  • Memory

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

事务

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

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

提交事务:commit

回滚事务:callback

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

事务特性

  • A 原子性
  • C 同时成功或者同时失败
  • I A和B之间互不影响
  • D 事务结束后,保证数据已经保存了

隔离级别

两个事务A和B

  • 读未提交:A能读到B还没有提交的数据(脏读)
  • 读已提交:A只能读到B已经提交的数据(不可重复读)
  • 可重复读:A只能读到A开始时候的数据(幻读)
  • 串行化

索引

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

什么情况加索引

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

索引失效的情况

  • 模糊匹配的时候%开头
  • or两端有一个没有索引
  • 左匹配法
  • where中使用了函数
  • 发生了类型转换

索引分类

  • 单一索引
  • 复合索引
  • 主键索引
  • 唯一性索引
  • 聚簇索引
  • 非聚簇索引

视图

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

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

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

相关文章

  • 字符串入门学习笔记
    字符串哈希idea将字符串映射成一个数值(称为哈希值),因此可以在O(1)时间内做到例如判断两个串是否相等这样的事情,优化了时间复杂度注意,哈希值不同时字符串一定不同;哈希值相......
  • Golang基础-4
    日期和时间函数获取当前日期和时间time.Now()返回值是一个结构体类型是time.Time(结构体)返回值的类型也有对应的方法获得具体的年,月,日,时,分,秒比如:直接通过.xxx()的方式......
  • 【图像处理笔记】图像分割基础知识
    形态学处理相同,图像分割操作的输入是图像,输出是从图像中提取出来的属性。本章的大多数分割算法都基于图像灰度值的两个基本性质之一:不连续性和相似性。第一类方法根据灰度......
  • 52 | JAVA_网络编程基础
    网络编程基础ip地址在互联网中,一个IP地址用于唯一标识一个网络接口(NetworkInterface)。一台联入互联网的计算机肯定有一个IP地址,但也可能有多个IP地址。IP地址又......
  • Linux 入门就电脑蓝屏,终止代码 PAGE_FAULT_IN_NONPAGED AREA Linux 命令
    Linux入门就电脑蓝屏,终止代码PAGE_FAULT_IN_NONPAGEDAREALinux命令LinuxLinux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第......
  • Python入门系列(十)一篇学会python文件处理
    文件处理在Python中处理文件的关键函数是open()函数。有四种不同的方法(模式)来打开一个文件"r"-读取-默认值。打开一个文件进行读取,如果文件不存在则出错。"a"-Ap......
  • Matlab GUI_guide模式编程快速入门教程
    摘要:GUI设计是交互设计,关联界面和软件本体之间的联系,然后一般设计包括实现计算和绘图等等,在软件著作中需要要求是计算严谨,绘图吸引,功能丰富以及具体的实际用途目录1.界......
  • 【Java基础】package、import关键字和JDK中主要包
    1.package声明在源文件首行,每一个.表示一层文件夹,指明该类所在包,包名通常都小写。根据项目需要将代码放在不同包中2.import(1)导入指定包下所需要的类、接口,xxx.*表示......
  • 【Java基础】关键字this
    1.this是什么this是一个对象,表示当前对象或当前正在创建的对象2.使用在类的方法中,使用this.属性或this.方法调用当前对象属性或方法,但一般都省略。方法的形式参数和类......
  • windows安装MySQL卡在--connect to server的界面上输入密码显示connection failed
    问题安装MySQL是,在‘ConnectToSever’界面,输入密码,点击‘check’,总是失败。接上篇:windows安装mysql时一直卡在startingtheserver这一位置,解决办法-天军-博客园(cn......