注:本篇博客为 MySql 表操作指令1 ,若要学习 MySql 基本指令,可通过作者 博客 进行学习;若要进一步练习,可在学习完 操作2 后,根据 博客 MySql 实例 进行练习!
增删查改~简单指令
创建表
创建数据库的关键字主要为 create database
,具体如下
create database dbname; -- dbname 指的是数据库名称
create database if not exists dbname; --若不存在则创建
创建表的关键字主要为 create table
,比如创建一个带有学号、姓名、年龄、性别、身高的学生表,如下
create table if not exists student(
snum int comment '学号',
name varchar(32) comment '姓名',
age int comment '年龄',
sex varchar(1) comment '性别',
heig int comment '身高'
);
结果如下
插入数据
向表格插入数据有两种方法,即 单行插入 与 多行插入 ,其所用关键字为 insert
,具体如下
单行插入:
insert into student values(1101, '龙大大', 18, '男', 175);
insert into student(name, snum, sex)value('贝贝',1201,'女'); -- 指定插入字段
注:其中查看表格内容的语句 select * from tbname;
,在后面的内容中将进行讲解,其中 tbname
指的是表格名称!
多行插入:
insert into student values(1102, '龙2大', 28, '男', 175),
(1103, '龙3大', 38, '男', 185);
修改数据
修改表格内容的关键字为 update
,具体如下
update tbname set name=xxxxxx,sex=xxxx; -- 修改表中所有人的对应数据,其中 tbname 指的是表名称
上述语句会修改表中所有人的对应内容,故为可实现指定个人数据进行修改的目标,常配合条件指令 where
进行处理(有关 where
的操作将在后面内容中进行讲述),因此上述语句可变为
update tbname set name=xxxxxx where name2=xxx; -- 其中name为要改的数据名称,name2则为被改目标的索引
例如修改 student 表中 贝贝 的年龄何身高
update student set age = 17, heig = 169 where snum = 1201; -- where snum = 1201 的作用为找到学号为1201的学生数据
结果如下
删除数据
删除数据所用关键字为 delete
,具体如下
删除表中所有数据:
delete from tbname;
删除表中name为xxxx的数据:
delete from tbname where name=xxxx;
例如
删除名为 龙3大 的数据
delete from student where name='龙3大';
结果为
删除表中所有数据
delete from student;
结果为
查询
默认全列: select * from tbname;
指定列查询: select name1,name2... from tbname; 显示name1与name2列的内容
select name1+name2... from tbname; 将name1与name2列的内容进行相加并显示
起别名:as
select name1+name2... as xx from tbname; 将name1+name2...的和起别名为 xx 进行查看,但xx并不会存在原表里,其中as可忽略
如 select name1+name2... as xx,name3 from tbname; 既起了别名,又展示了name3
去重:distinct
select distinct name1,name2 from tbname; 如此是以多列一起进行去重
排序:order by
select * from tbname order by name desc; 按照name的降序进行排列。desc表示为降序,无desc时默认为升序(asc)
select * from tbname order by name1 desc,name2 asc; 以name1降序,name2升序排列
分页查询:limit, limit m,n:表示从第m行开始一共是n行,注意第m行是从0开始排的。
select * from tbname limit 3; 查看前3行数据,随机
select * from tbname order by name desc limit 3; 以name为降序查看前3行数据
select * from tbname order by name desc limit 3 offset 0; 以name为降序查看从0行开始的前3行数据 offset为偏移量
条件查询:where 此处有很多其他操作
select * from tbname where name1 = xxx; 查询name1为xxx的信息
关系运算符:
比较: > 、 >= 、 < 、 <= 、 = NULL不安全会报错、 <=>等于NULL安全不会报错 、!= 、 <>不等于
(注:此处可见下面的表格)
空值:is null,is not null
如 select * from tbname where name is null;
范围: between ... and ...
select * from tbname where name1 between xx and xxx;
子集匹配:in(子集)
select * from tbname where name in(x1,x2,x3);
模糊匹配:like
select * from tbname where name like '%xxx'; % 匹配多个任意字符(包括0个)
select * from tbname where name like '_xxx'; _ 匹配严格的一个任意字符
逻辑运算符:
与:双目,and 连接两个比较条件 --- 两者同为真则结果为真
select * from tbname where name1 >= x1 and name2 < x2;
或:双目,or 连接两个比较条件 --- 两者同为假则结果为假
select * from tbname where name1 >= x1 or name2 < x2;
非:单目,not 针对单个比较条件 --- 条件为假则结果为真
select * from tbname where not name1 >= x1;
比较运算符
运算符 | 说明 |
---|---|
>,>=,<,<= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,如 NULL <=> NULL 的结果是 true,即与 NULL 不会报错 |
!=,<> | 不等于 |
between a and b | 范围匹配,[a,b],若 a <= value <= b,返回true |
in(op1,op2…) | 如果是 op 中的任意一个,返回 true |
is NULL | 是 NULL |
is not NULL | 不是 NULL |
like | 模糊匹配,% 表示任意多个(包括0个)任意字符, _ 表示任意一个字符 |
逻辑运算符
运算符 | 说明 |
---|---|
and | 多个条件必须都为 true ,结果才是 true |
or | 任意一个条件为 true,结果为 true |
not | 条件为 true,结果为 false |
注:
where
条件可以使用表达式,但不能使用别名。and
的优先级高于or
,在同时使用时,需要使用小括号()
包裹优先执行的部分
以上就是本篇博客主要内容!
侵权删~