mysql 语句

本文详细介绍了MySQL数据库的操作,包括创建、使用数据库,定义数据类型,设置约束类型,以及数据的插入、查询、更新和删除等基本操作。此外,还讲解了WHERE表达式、分组排序、聚合函数和嵌套查询等高级查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 . mysql 语句
1,数据库的创建使用
1,进入mysql数据库

mysql -uroot -p;

2,新建库

create(创建)database(数据库) 库名;

3,查找库

show databases;

4,使用库

use 库名;

5,建表

create table 表名(字段名 字段类型 [约束类型],字段名 字段类型 [约束类型]。。。。);

charset(字符集) utf8;

2,数据类型

1⃣️整数型

​​

2⃣️浮点型

数据类型字节数备注float4单精度浮点型double8双精度浮点型

double 和 float 的区别:double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,
double的运算速度比float慢得多。

float(浮动)(M,D):float(5, 2)
D表示浮点型数据小数点之后的精度,假如超过D位则四舍五入,即1.233四舍五入为1.23,1.237四舍五入为 1.24

double(双)(M、D):double(5, 2)
M表示浮点型数据总共的位数,D=2则表示总共支持五位,即小数点前只支持三位数,所以我们并没有看到1000.23、10000.233、100000.233这三条数据的插入,因为插入都报错了

3⃣️字符型

  1. char是固定长度字符串,其长度范围为0~255且与编码方式无关,无论字符实际长度是多少,都会按照指定长度存储,不够的用空格补足。
  2. varchar为可变长度字符串,在utf8编码的数据库中其长度范围为0~21844。
  3. char实际占用的字节数即存储的字符所占用的字节数,varchar实际占用的字节数为存储的字符+1或+2或+3
  4. MySQL处理char类型数据时会将结尾的所有空格处理掉而varchar类型数据则不会
    

4⃣️日期类型
数据类型字节数格式备注date3yyyy-MM-dd存储日期值time3HH:mm:ss存储时分秒year1yyyy存储年datetime8yyyy-MM-dd HH:mm:ss存储日期+时间timestamp4yyyy-MM-dd HH:mm:ss存储日期+时间,可作时间戳

3,约束类型
主键外键唯一非空自增默认值primary keyforeign keyuniquenot nullauto_incrementdefault
1,主键约束[primary key]:相当于唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。
2,外键约束[foreign key (副表字段) references 主表名(字段)]:是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。
– 基本模式
– 主表create table temp(
id int primary key,
name varchar(20)
);
– 副表create table temp2(
id int,
name varchar(20),
classes_id int,
foreign key(id) references temp(id)
);
3,唯一约束[unique]:是指定table的列或列组合不能重复,保证数据的唯一性。
4,非空约束[not null]:用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。
5, 自增约束[auto_increment]是用于主键自动增长的,从1开始增长,当你把第一条记录删除时,再插入第
二 跳数据时,主键值是2,不是1。
,默认约束[default]:DEFAULT 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添. 加到所有的新记录。
create table test
(id int(10) not null auto_increment, – 表示自增列
name varchar(20) not null,
primary key(id)
)
auto_increment = 1; – 表示自增起始大小-- 这样就可以创建一个表test,id为自增列
– 执行语句 insert into test (name) values (‘名字’);
– 就可以插入一行数据为: 1 ‘名字’
6,默认约束[default]:默认值,一般配合 not null 使用。 插入值时,如果不给这个字段分配值,将使用默认值。 尽量指定默认值

4,插入数据
1,插入单行数据
insert(插入) into 表名()values(值)(字段值列表);
字段值列表必须跟表中的字段顺序保持一致;
2,插入多行数据
insert into 表名() values
(字段1值,字段2值…字段n值),
(字段1值,字段2值…字段n值),
。。。。。。。。。
(字段1值,字段2值…字段n值);
3,查询表中所有数据
select * from 表名;
4,更新/改变 表中所有数据
update(更新) 表名 set 旧数据=新数据;
5,给表重命名
rename table 旧表名 to 新表名;
alter(改变) table 旧表名 rename 新表名;
6,查看表结构
desc 表名;
7,删除表中所有数据
delete from 表名;
8,删除表
drop table 表名;
9,给表中新增一列字段
alter(改变)table 表名 add 字段名 字段类型[约束];
alter table 表名 add 字段名 字段类型[约束] after 字段名;
alter table 表名 add 字段名 字段类型[约束] first;
10,删除一列字段
alter table 表名 drop 列名;
11,修改字段类型
alter table 表名 modify (修改)字段名 字段类型[约束];
12,修改字段名称
alter table 表名 change 旧字段名 新字段名 字段类型[约束];

5,where表达式
1⃣️where 表达式

1,精确查询
<,>,<=,>=,!=,
2,模糊查询
like/not like
3,逻辑运算
and/or
4,区间运算
between … and…/not between … and…
5,集合运算
in/not in
6,非空运算
null/is not null

2⃣️ 分组/排序
分组:group by 字段名1[,字段名2。。。]

排序:order by 字段名1[,字段名2。。。] [desc/asc]
默认升序排列⬆️
desc 降序
asc 升序
⚠️:先分组后排序。
3⃣️常见聚合函数如下:
1、求平均值:AVG
2、求总数:COUNT
3、求最大/求最小: MAX/MIN
4 求和:SUM
4⃣️having条件表达式可以跟聚合函数。
select xsb.bj,avg(cjb.cj) from xsb,cjb
where xsb.xh=cjb.xh
group by bj
order by xsb.xh
having avgg(cj)>70;
5⃣️嵌套查询1,先整理逻辑,根据已知条件,去查要求的信息,逻辑复杂,记录永不增长。
select xsb.* from xsb where xh in (select xh from cjb where cj>60);
等值查询:
select xsb.* from xsb,cjb
where xsb.xh=cjb.xh
and cj>60;
内链接:
select xsb.* from
xsb inner join cjb
on xsb.xh=cjb.xh
where cj>60;
左链接[左表是主表]:
select xsb.* from.
xsb lift join cjb
on xsb.xh=cjb.xh
where cj>60;
右链接[右表是主表]:
select xsb.* from
cjb right join xsb
on xsb.xh=cjb.xh
where cj>60;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值