MySQL-3-创建表、删除表、增删改、约束、索引

news/2024/10/17 16:18:28/

一、创建表
语法格式:
create table <表名>(
字段名1 数据类型,
字段名2 数据类型,

);
补充:MySQL中常见的数据类型
int 整数(对应Java中的int)
bigint 长整型(对应Java中的long)
float 浮点型(对应Java中的float,double)
char 定长字符串(对应Java中的String)
varchar 可变长字符串,可以根据实际长度动态地分配存储空间(最多存255个字符,对应Java中的StringBuffer/StringBuilder)
date 日期类型(对应Java中的java.sql.Date类型)
BLOB 二进制大对象(存储图片、视频等流媒体信息)Binary Large Object(对应Java中的Object)
CLOB 字符大对象(存储较大文本,比如存储4G的字符串)Character Large Object(对应Java中的Object)
示例:
在这里插入图片描述
给表的字段添加默认值:
在这里插入图片描述
上图中sex字段的默认值为1.
二、删除表
drop table if exists <表名>;
三、往表中插入数据
在这里插入图片描述
注意:(1)insert语句可以颠倒表中字段地顺序,也可以不包含全部的字段(此时未插入的字段若有默认值则为默认值,否则为null)。
(2)也可以只写表名,省略括号与其中的字段序列,此时values后的括号的值的顺序与个数必须与表一致。
例如:
在这里插入图片描述
一次插入多个数据(values后跟多个记录):
在这里插入图片描述
四、表的复制(通过查询结果创建表)
语法:create table <表名> as <select语句>;
五、批量插入(将查询结果插入一张表中)
语法:insert into <表名> <select语句>;
六、修改表中的数据
语法:update <表名> set 字段名1=值1,字段名2=值2,… where 条件;
注意:没有条件整张表数据改。
七、删除数据
语法格式:delete from <表名> where 条件;
注意:(1)没有条件全部删除。
(2)若表的数据量特别大时,删除表时需要几十分钟甚至几个小时。delete语句执行后并没有释放表的存储空间,这有利于表的恢复(回滚)。若要释放表的存储空间(不能恢复),语句为"truncate table <表名>;"。
八、创建表时的约束(Constraint)
常见约束包括:
1.非空约束(not null)
在这里插入图片描述
2.唯一性约束(unique)
在这里插入图片描述
在这里插入图片描述
注意:上图中说明约束分为列级约束(也称属性级约束)和表级约束(也称元组级约束)。列级约束写在字段后,表级约束写在最后。上图中的例子只有两个记录的usercode和username两个字段都相同时才会报错。
3.主键约束(primary key)
在这里插入图片描述
primary key也有表级约束。
在这里插入图片描述
主键自增(auto)increment):
在这里插入图片描述
navicat实现字段主键自增:
在这里插入图片描述
4.外键约束(foreign key)
示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:外键可以为null;外键引用的字段必须是具有唯一性的字段。
5.检查约束(check)
注意:Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。
九、索引
索引相当于一本书的目录,通过目录可以快速地找到对应地资源。在数据库方面,查询一张表时有两种索引方式:
第一种:全表扫描;
第二种:根据索引扫描(效率很高);
注意:索引虽然可以提高检索效率,但是不能随意地添加索引,因为索引也是数据库中地对象,也需要数据库不断地维护。比如,表中地数据经常被修改这样就不适合添加索引,因为数据一旦修改,索引需要重新排序,进行维护。
添加索引是给某一个字段,或者说某些字段添加索引。
在这里插入图片描述
索引的适用情况:
数据量庞大,该字段很少的DML(增删改)操作,该字段经常出现在where子句中。
注意:主键和具有unique约束的字段会自动添加索引。根据主键查询效率更高,尽量根据主键检索。
语法格式:
create index <索引名> on <表名>(<字段名>);
drop index <索引名> on <表名>;
示例:
在这里插入图片描述
从上图中可以看出,未添加索引是select语句执行时扫描了14个记录,添加了索引后select语句执行时扫描了一条记录。
索引的分类:
在这里插入图片描述
注意:模糊查询时,第一个通配符为“%”时,这个时候索引是失效的。


http://www.ppmy.cn/news/104054.html

相关文章

Vue3 项目相关

vite 项目起步式 npm create vite - 1.命名项目名称- 2. 选择技术框架- 3. 进入项目文件夹 npm i 安装依赖&#xff0c;- 4. npm run dev 运行项目配置 package.json 文件 &#xff0c;使项目运行后自动再浏览器中打开。 在 dev 运行命令后添加一个 --open 即可。 "script…

第二届(2023年)中国国际培育钻石产业发展与创新大会盛大召开!

5月25-26日&#xff0c;由广东省商务厅、中国国际贸易促进委员会广东省委员会&#xff08;广东国际商会&#xff09;、广州市商务局、番禺区人民政府、广东省交易控股集团有限公司/广东省公共资源交易中心指导&#xff0c;广州钻石交易中心&#xff08;简称广钻中心&#xff09…

从汇编代码的角度去理解C++多线程编程问题

目录 1、多线程问题实例 2、理解该多线程问题的预备知识 2.1、二进制机器码和汇编代码 2.2、多线程切换与CPU时间片 2.3、多线程创建与线程函数 3、从汇编代码的角度去理解多线程问题 4、问题解决办法 5、熟悉汇编代码有哪些用处&#xff1f; 5.1、在代码中插入汇编代…

基于工业互联网的RV1126+AI安防单目/双目高清视觉分析计数仪方案

1产品简介 产品介绍 单目视觉分析计数器是信迈科技基于单目图像分析以及深度学习算法研发的一款区域统计计数器。它可以精确的识别监控区域内的物体&#xff0c;统计区域内停驻的人数/车辆等&#xff0c;也可以统计区域内进入以及离开人数。它可适用于公交车&#xff0c;大巴&…

PyCharm配置Opencv(多人亲测可用)

23/5/29更新&#xff1a; 之前由于只安装opencv-python-contrib这个包&#xff0c;导致Opencv版本过高&#xff0c;有些算法无法使用&#xff0c; 所以这里更新安装opencv-contrib-python这个包&#xff0c;具体如下配置。 ————————————————————————…

【数据结构】-数组和List数据结构

数组 定义和特点 数组是一种静态数据结构&#xff0c;由相同类型的元素按顺序排列而成。元素在内存中是连续存储的&#xff0c;可以通过索引直接访问和修改元素。 访问和修改元素 数组使用索引进行元素访问&#xff0c;索引从0开始。可以通过索引修改数组中的元素值。 数组…

第13届蓝桥杯Scratch国赛真题集锦

编程题 第 1 题 问答题 LED屏幕 题目说明 编程实现 LED屏幕 具体要求: 1).点击绿旗,在舞台中心区域出现由10 x 10方格组成的LED屏幕; 2).按下空格键,LED屏幕最外环方格全部点亮 (方格变为黄色) 3).LED屏幕每秒向内点亮一层,其它LED灯熄灭; 4).直到LED灯在最中心点亮2秒…

vulnhub靶场之RAGNAR LOTHBROK: 1

1.信息收集 探测存活主机&#xff0c;输入&#xff1a;netdiscover -r 192.168.239.0/24 &#xff0c;发现192.168.239.178存活。 对目标主机192.168.239.178进行端口扫描&#xff0c;发现存活21(ftp)、80、443、3306端口。 浏览器访问http://192.168.239.178&#xff0c;发…