MySQL增删改查(MySQL增删改查sql语句)

MySQL增删改查(MySQL增删改查sql语句)查看数据库 show databases nbsp 使用数据库 use 数据库名 创建数据库 CREATE DATABASE 数据库名 删除数据库 DROP DATABASE 数据库名 创建表 create table 表名 nbsp nbsp nbsp 列名 1 类型 长度 约束 nbsp nbsp amp

大家好,我是讯享网,很高兴认识大家。



查看数据库

create table 表名(
    列名1 类型(长度) [约束],
    列名2 类型(长度) [约束],
    ……
);
长度区别
int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度
char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,使用空格填充到设定的长度
varchar:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长

删除表

1.非空约束    NOT NULL
2.默认值约束  DEFAULT ‘男’
3.唯一约束    UNIQUE
4.主键约束    PRIMARY KEY
查看表结构

DESC 表名
修改表
修改列名

Alter table 表名  modify  列名  新类型;
数据查询-单表===

查询表中全部信息

数据去重

select concat(列1,列2) from 表名;
运算符优先级:
1.乘法和除法的优先级高于加法和减法
2.同级运算的顺序是从左到右
3.表达式中使用”括号”可强行改变优先级的运算顺序

select 列 as 别名 from 表名;   
select 列 别名 from 表名;      
 语句的执行顺序:from—>select

条件查询

where 列  比较运算符  值;
注意:字符串、日期需使用单引号括起来
语句的执行顺序:from—>where—>select

逻辑运算符( 并且:and 或 &&   或:or    非:not 或 !    )

where 条件1  逻辑运算符  条件2;  
where not 条件; 
范围查询

where 列 between 条件1  and 条件2;          //列在这个区间的值
where 列 not between 条件1 and 条件2;    //不在这个区间
where !( 列 between 条件1 and 条件2 );     //同样表示不在这个区间
集合查询( 判断列的值是否在指定的集合中 )

where 列 in(值1,值2);          //列中的数据是in后的值里面的
where 列 not in(值1,值2);   //不是in中指定值的数据
NULL值查询( 注意:列中值为null不能使用=去查询 )

where 列 is null;  //查询列中值为null的数据
模糊查询
%:表示0到多个字符,示例:

where 列 like ‘%0’;   //表示以0结尾
where 列 like  ‘0%’;   //表示以0开头
where 列 like  ’%0%‘;   //表示数据中包含0
:表示一个字符,可多次使用,示例:

where 列 like ‘%0’;   //数据结尾第二位是0
结果排序( 对查询出的结果按照一列或多列进行升序还是降序排列 升序:asc  降序:desc    注意:不能使用中文的别名排序)


讯享网

分页查询( beginIndex:表示从第多少条数据开始   pageSize:表示每页显示的数据条数 )

where [条件] limit beginIndex,pageSize;
ex:每页显示3条数据
第一页: SELECT * FROM 表名 LIMIT 0,3    –0,1,2
第二页: SELECT * FROM 表名 LIMIT 3,3    –3,4,5
第三页: SELECT * FROM 表名 LIMIT 6,3    –6,7,8
第四页: SELECT * FROM 表名 LIMIT 9,3    –9,10,11 
  ……
第七页: SELECT * FROM 表名 LIMIT 18,3   –18,19,20

beginIndex公式:(当前页数-1)*pageSize
 
聚集函数( 作用于一组数据,并对一组数据返回一个值 )

COUNT:统计结果记录数,若统计的是列,列中为Null,那么count将不会计算值
MAX:  统计计算最大值
MIN:  统计计算最小值
SUM:  统计计算求和
AVG:  统计计算平均值
分组函数( 注意:如果要对分组后的数据进行筛选,那么必须使用having关键字,条件写在having后 )

Where和having的区别:
Where: 先过滤已有的数据(数据是已经存在的),在进行分组,在聚集计算
Having:先分组,在对每组进行计算,根据得到结果在过滤(分组把数据算出之后,在过滤)
注意:使用having的时候,它是可以使用别名的

=数据查询-多表=
交叉连接:又名笛卡尔积,使用交叉连接会产生笛卡尔积
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

select * from 表1,表2  where 表1.字段=表2.字段;  //隐式内连接,使用where条件消除笛卡尔积
select * from 表1 [inner] join 表2 on 表1.字段=表2.字段;  //显式内连接,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略
外连接:左外连接、右外连接、全外连接
左外连接:以左边表为主,返回左边表中所有数据,若右表中无数据,则显示为NULL,请参考实际查询结果来理解

select * from 表1 right [outer] join 表2 on 表1.字段=表2.字段;  //表1为左表,表2为右表,outer关键字可被省略
全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定要使用别名
多用在分类数据、省市县分类数据、权限…

select 表1.字段1,表2.字段2 from 表名 as 表1,表名 as 表2 where 表1.字段1=表2.字段2

子查询:将一个查询结果作为另一个查询的对象,直白的讲就是SQL语句嵌套

select * from (select * from 表名) as 别名
select * from where 条件->条件中包含查询语句
注意:1.查询结果的虚拟表必须取别名
           2.字段与关键字一样,冲突时,需要给字段名加”,(Esc键下面、1的左边)
           3.如果给虚拟结果表中的字段取了别名,则对虚拟结果表查询时,应该用 表别名.虚拟表字段别名

=插入数据=

insert into 表名(字段1,字段2..) values(值1,值2…);    
注意: 1.如果插入的表中的主键是自增类型的,可以不用插入值
            2.如果主键是非自增 ,插入的数据则是填补主键字段值空余的值
            3.如果主键设置了自动递增,会从主键字段最大值开始插入数据

其他插入方式:

insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);     //插入多条数据【MYSQL】
insert into 表名 values(值1,值2);                    //针对全表所有字段进行插入操作
insert into 表名(字段) select 字段 from 表2;         //查询结果插入
insert into 表名 select 字段 from 表2;               //查询结果,全表插入
=修改数据=

update 表 set 字段=值 where 条件;  //带条件修改指定数据,否则修改全表
=删除数据=

delete from 表 where 条件;  //删除数据带条件指定数据,否则删除全表数据
=数据备份=

mysqldump -u账户 -p密码 数据库名称>脚本文件存储地
ex:         mysqldump -uroot -proot jdbcdemo> C:/shop_bak.sql
导入:

mysql -u账户 -p密码 数据库名称< 脚本文件存储地址
ex:         mysql -uroot -proot jdbcdemo< C:/shop_bak.sql
使用可视化导入导出:
Navicat工具的导入和导出/Navicat工具的备份和还原

=数据索引=
索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

什么列适合建索引??
1.表的主键、外键必须有索引;
2.数据量超过30000的表应该有索引;
3.经常与其他表进行连接的表,在连接字段上应该建立索引;
4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5.索引应该建在选择性高的字段上;
6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

CREATE INDEX 索引名称 ON 表名 (列名)
删除索引:
方式一:

ALTER TABLE 表名 DROP INDEX 索引名

小讯
上一篇 2025-05-23 15:30
下一篇 2025-04-16 08:50

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/197270.html