Mysql基础进阶速成版

一:sql语句:

1.创建一张表:写成公式:创建函数(create table)+表名+(配置字段)。配置字段公式:字段名称+字段类型,常用的类型有:整数类型int(8),int(16),int(32).....,小数类型float(8),float(16)......,字符串类型varchar(8),varchar(16).....时间类型data,datetime,二进制文件blob,文本类型text....等等这些

每条sql语句后面都要加英文分号;

13.	create table table_name(
14.	        int_name int(6), -- 6显示长度 
15.	        varvhar_name varchar(5), -- 5个字符
16.	        sex char(1),
17.	        age int(3),
21.	);

查看表结构公式:desc + 表名字

desc table_name;

查询表中的数据:select * from +表名(后面会详细讲查询语句)

show * from table_name;

 在表中插入数据:insert into +表名 + values +数据,除了整数和浮点类型,其他都要有引号单引双引都可以,如果输入类容有引号,要遵守引号使用规则

insert into table_name values (1,'字符串','男','20');

 修改表中的数据:update + 表名 + set + 要修改的字段名。

updata table_name set int_name=2;
updata table_name set varchar_name = '很长的字符串';

增加一列数据,也就是增加一个字段:alter table+ 表名 + add +字段名 + 字段类型

alter table table_name add wight float(16);

 删除字段:alter + table + 表名 + drop +字段名

alter table table_name drop wight;

修改字段 :alter + table + 表名 + modify + 字段名字 + 字段类型(不能修改字段名字)

alter table table_name modify wight int(6);

 修改字段:alter table +表名 + change + 原字段名+新字段名+新字段类型

alter table table_name change wight new_wight float(32);

删除表:drop table + 表名

drop table table_name;

 非外键约束:也就是给字段添加一些禁制,在创建字段的时候在字段后面添加:

primary key 主键约束,这个字段的数据不能为空且不能重复

not null:保存数据的时候这个字段的值不能为空

defalt  不填写时候的默认值,check后面跟的是填写的选项

auto increment:在加入数据的时候该字段的值会自动向上增加

unique:唯一约束,

以上这些约束,在保存数据的时候如果违背了这些约束那么程序会报错

# 一个个人信息表:
create table table_name(proson int(8) primary key auto increment,name varchar(5) not null,sex char(1) default '男' check (sex='男' || sex='女'),age int(3)
);

如果表已经创建好了怎么添加约束呢:

alter table +表格名称 add constraint +约束名称 +增加的约束类型 +(列名)

还可以使用修改表中字段的方式添加约束:alter table+表名+modify +字段名字+字段类型+约束

alter table table_name add constraint primary key (proson);
alter table table_name modify proson int(8) auto increment;

 外键约束:

这个是用来作两张表之间的约束的,外键是指表中某个字段(A)的值依赖于另一张表中某个字段(B)的值,而被依赖的字段(B)必须具有主键约束或者唯一约束,被依赖的表(B表)我们通常称之为父表或者主表,设置外键约束的表(A表)称之为子表或者从表。

举个栗子:有两张表,你们班级的表()里面有每个学生的信息,辅导员的表里面有辅导员的信息(),你们班级的表中有一个字段teacher表示每个学生的辅导员是谁,辅导员表中有一个字段students表示有哪些班的学生,那么学生表中的teachar字段的取值范围(辅导员人数)取决于辅导员表中的students的取值来决定。这样就把两张表联系起来了。还是有点抽象?

创建辅导员表:

create table teacher(id int(4) primary key auto increment,name varchar(10) not null,class char(4)
);

 向里面添加数据

insert into teacher values (null,'土木一班','a104');
insert into teacher values (null,'土木二班','a105');
insert into teacher values (null,'土木三班','a106');# 或者一次全部插入用逗号隔开insert into teacher values (null,'土木三班','a106'),(null,'土木二班','a105'),(null,'土木一班','a104');

创建学生表:

create table student(id int(6) primary key auto increment,name varchar(5) not null,on_class int(4)
);

 插入学生数据

insert into student values (null,'张三',1),(null,'李四',1),(null,'王五',2);

 添加外键约束

alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称 (列名)

这里会报错,那是因为还没加约束之前就有数据了,先将数据清空在添加约束 

foreign key : 外键约束

fk_class:这两个表之间的约束名称

alter table student add constrain fk_class foreign key (on_class) references teacher (class);

 两个表有外键约束,删除的时候报错?那是因为删除主表的时候有外键约束着,是不能删除的,所以要先删除从表在删除主表。

新建表两个表的数据和结构要一致:create table + 新建表表名+as select * from+已有表名

新建表两个表的结构要一致,新表没有数:

create table + 新建表表名+as select * from+已有表名+where 1=2;

其实就是后面的where条件判断,你判断什么样它就新建成什么样

create table student2 as select * from student1;
create table student3 as select * from student1 where 1=2;

删除数据,保留字段:delete from+表名  或者 truncate table +表名

两者的区别在于delete是将表中的数据一条条的删除(可以回滚),truncate是创建一个结构和原表一样的表,然后将原表删除(注意:数据不能回滚!!)

delete from student;
truncate table student;

 表中的数据查找;

select + 需要查询的字段名称+from+表名     ,*代表所有的数据

需要查找的字段名之间使用逗号隔开,如果是用空格隔开代表对中国字段取一个别名,在显示中显示的是这个别名,如果是对字段使用运算符,那个查询出来的值就是这个字段的每个数据使用这个运算后的数据。

select * from student; 
select age,weight,name from student;
select age '年龄',weight '体重',name '姓名' from student;
# 将查询出来的年龄加二十岁
select age+20,weight,name from student;

排序查询查找: select + 需要查询的字段名称+from+表名 +order by +对字段排序的字段名+升降。asc表示升序(默认),desc降序

select * from student order by age asc;

条件查询: select + 需要查询的字段名称+from+表名+where +条件

如果是多个条件,使用and并或者&&,or或者||来连接

select * from student where age>20;
select * from student where name='张三';
select * from student where age>20 and name='张三';
select * from student where age>20 && name='张三';

 

内容太多了,后面的章节放到下一个文章里了。 都看到这里了记得点个赞呗!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程(7):地址空间

大家好,我是苏貝,本篇博客带大家了解Linux进程(7):地址空间,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 (A) 直接看代码&…

go语言接口之sort.Interface接口

排序操作和字符串格式化一样是很多程序经常使用的操作。尽管一个最短的快排程序只要15 行就可以搞定,但是一个健壮的实现需要更多的代码,并且我们不希望每次我们需要的时候 都重写或者拷贝这些代码。 幸运的是,sort包内置的提供了根据一些排序…

PostgreSQL和MySQL架构模型的区别

PostgreSQL - 多进程架构 PostgreSQL采用了一种多进程架构。在这种模型下,每个数据库连接被分配给一个新的服务器进程(或者说是数据库进程)。这种方式为每个连接提供了独立的内存空间和执行环境。这样做的优点是提高了系统的稳定性和隔离性&…

法国人工智能初创公司 Mistral 正在推出新的人工智能模型定制选项服务和 SDK

Mistral AI是一家成立于2023年的法国人工智能初创公司,由Artur Mensch、Timothe Lacroix和Guillaume Lample三位前Meta和Google DeepMind的研究人员创立。该公司专注于生成式AI技术,特别是用于构建在线聊天机器人、搜索引擎等应用。 Mistral AI在成立之…

python之List记录

1. 列表(List)基础 Python中的列表是一种可变、有序的元素集合,元素之间通过逗号分隔并包含在一对方括号内。列表的元素可以是不同类型的数据。 创建列表 # 创建一个包含不同类型元素的列表 my_list [1, 2.5, hello, True, [1, 2, 3]]访问…

[数据集][图像分类]城市异常情况路边倒树火灾水灾交通事故分类数据集15223张8类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):15223 分类类别数:8 类别名称:[“badroad”,“fallentree”,“f…

Android-Q升级-Camera记录

目录 代码环境 建立Android Q使用的camera仓 Camera底层适配 camx 原生接口变化 其他编译问题 chi-cdk 数据类型不匹配 case未加break的报错 libalRnBRT_GL_GBWRAPPER链接问题 vidhance编译错误 libarcsat链接问题 vendor/qcom/proprietary prebuilt_HY11 调试cam…

floor函数

添加链接描述\ #include<bits/stdc.h>using namespace std;const int N 10;int main() {int n;cin>>n;for(int i1;i<50000;i){if(floor(i*1.08)n){cout<<i;return 0;}}cout<<":(";return 0; }floor函数是向下取整 ceil是向上取整 round…

CarSim车辆运动轨迹绘制

CarSim车辆运动轨迹绘制 CarSim中与车辆位置有关的信息分别为Xo和Yo 输出到Simulink中 导入到工作空间中保存&#xff0c;low_carsim_path.mat &#xff0c;绘制结果曲线&#xff0c;low_carsim_path_comp.m data csvread(low_two_path.csv,1,0); low_two_path_x data(:,1)…

【CentOS】手动编译安装make、cmake、gcc、git

摘要 Centos7升级make和gcc版本到最新——CSDN make make 各个版本下载地址 http://ftp.gnu.org/pub/gnu/make 以4.4为例安装&#xff1a; # 下载 wget https://ftp.gnu.org/pub/gnu/make/make-4.4.tar.gz # 解压配置 tar zxf make-4.4.tar.gz cd make-4.4 ./configure --p…

分享我的新版FMEA培训心得

近日&#xff0c;我有幸参加了深圳天行健企业管理咨询公司举办的新版FMEA培训&#xff0c;这次学习不仅让我对FMEA有了更深入的理解&#xff0c;更使我在实际工作中找到了提升产品质量的新路径。 新版FMEA相较于传统版本&#xff0c;更加注重风险识别与预防&#xff0c;强调在…

Java 开发面试题精选:分布式锁相关一篇全搞定

面试路上&#xff0c;分布式锁始终是绕不开的坎&#xff1f;别怕&#xff0c;这篇精心准备的文章正是您的通关秘籍&#xff01;这篇文章聚焦面试官最青睐的提问点&#xff1a;从分布式锁基础概念到其实现机理&#xff0c;再到它在多场景下的应用智慧&#xff1b;深入剖析性能优…

C# FFmpeg 音视频开发总结

&#x1f3c6;作者&#xff1a;科技、互联网行业优质创作者 &#x1f3c6;专注领域&#xff1a;.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 &#x1f3c6;欢迎关注我&#xff08;Net数字智慧化基地&#xff09;&#xff0c;里面…

golang通道(chan)选择(select)与关闭(close)使用示例

1.通道选择 创建两个双向通道 c1 : make(chan string) //双向通道 c2 : make(chan string) //双向通道 向通道写入数据 //协程1向通道1写数据go func() { c1 <- "hello world from c1" }()//协程2向通道2写数据go func() { c2 <- "hello world from …

【递归、搜索与回溯】递归算法

一、经验总结 递归 VS 迭代&#xff08;循环&#xff09; 递归和迭代都解决的是重复的子问题&#xff0c;因此两者是可以相互转化的。利用栈结构可以将递归算法转化为迭代算法。 递归和迭代各有其优缺点&#xff0c;选择时需根据具体场景和需求来决定。 递归的优点包括&#…

苹果眼镜(Vision Pro)专业咨询服务模式优化方案

一、精准定位&#xff1a; 专注于为Apple Vision Pro应用开发者提供一站式、全方位的专业咨询服务&#xff0c;致力于成为开发者在空间计算时代中不可或缺的合作伙伴&#xff0c;共同打造“下一个大事件”。 二、核心业务优化&#xff1a; visionOS策略咨询&#xff1a; 深入…

【氵】Archlinux+KDE Plasma+Wayland 安装nvidia驱动 / 开启HDR

参考: NVIDIA - Arch Linux 中文维基 &#xff08;其实就是把 wiki 简化了一下 注&#xff1a;本教程适用 GeForce 930 起、10 系至 20 系、 Quadro / Tesla / Tegra K-系列以及更新的显卡&#xff08;NV110 以及更新的显卡家族&#xff09;&#xff0c;此处以 RTX3060 为例 …

LlamIndex二 RAG应用开发

在AutoGen)系列后&#xff0c;我又开始了LlamIndex 系列。欢迎查询LlamaIndex 一 简单文档查询 - 掘金 (juejin.cn)了解LlamIndex&#xff0c;今天我们来看看LlamIndex的拿手戏&#xff0c;RAG应用开发。 何为RAG&#xff1f; RAG全称"Retrieval-Augmented Generation&q…

MySQL之创建高性能的索引和查询性能优化(一)

创建高性能的索引 减少索引和数据的碎片 B-Tree索引可能会碎片化&#xff0c;这会降低查询的效率。碎片化的索引可能会以很差或者无序的方式存储在磁盘上。根据设计&#xff0c;B-Tree需要随机磁盘访问才能定位到叶子页&#xff0c;所以随机访问是不可避免地。然而&#xff0…

大田作业全覆盖算法

概述 大田作业全覆盖算法是指在农业生产中&#xff0c;通过合理的路径规划和作业安排&#xff0c;实现对田间作业的全覆盖&#xff0c;避免遗漏任何区域&#xff0c;提高作业效率和质量。该算法通常用于农业机械&#xff0c;如拖拉机、无人机、自动化农机等。以下是实现大田作…