mysql一些基本命令和解释

 mysql创建数据库

drop database if exists myexp;-- 删除数据库 如果 发现
create database myexp;-- 创建数据库
use myexp;-- 使用数据库
create table students(
stuid int primary key,  -- 约束输入不可以重复
stuname varchar(20),
stusex int not null,   -- 约束不可以为空
birthday date
);

使用数据库(一些方法)

drop database if exists myexp;-- 删除数据库 如果 发现
create database myexp;-- 创建数据库
use myexp;-- 使用数据库
create table students(
stuid int,
stuname varchar(20),
birthday date
);
alter table students add genderint;-- 添加一列到表上
alter table students change gender sex char(2);-- 修改某列
alter table students drop sex;-- 删除列
drop table students;-- 删除表
insert into students(stuid,stuname,birthday) values(1,'zhangshan','2000-1-6')
-- 当确定好组后,直接插
insert into students values(4,'jdjf','2002-2-8');
insert into students values(5,'jdf','2021-4-6'),(6,'djflkd','2032-1-2')
-- 修改数据
undate students set stuname='zhangshanhjhfg' where stuid=1;
undate students set stuname='zs',birthday='1999-9-9' where stuid=1;
-- 删除
delete from students where stuid=1;
delete from students;
truncate students;-- 强制删除,永久
-- 查寻数据
select * from students;
select stuid,stuname, birthday from students;

主外键上约束

alter table 外键名 add constraint Fk_主键名_副键名
foregin key (外键列名) references 主表名(主键列名)
 -- 约束用处:1. 限制插入或更新操作:如果在添加或更新学生表时,指定的课程ID在课程表中不存在,那么就会出现外键约束错误。-
    2. 级联操作:如果在删除课程表中的一条记录时,与之关联的学生记录也会被删除,而且要先删外表。
   注意:在同一MySQL虚拟机中只可以有一个外键约束

添加,修改某列

alter table students add genderint;-- 添加一列到表上
alter table students change gender sex char(2);-- 修改某列
alter table students drop sex;-- 删除列
drop table students;-- 删除表
insert into students(stuid,stuname,birthday) values(1,'zhangshan','2000-1-6')
-- 当确定好组后,直接插
undate students set stuname='zhangshanhjhfg' where stuid=1;               -- 修改数据
undate students set stuname='zs',birthday='1999-9-9' where stuid=1;

删除

delete from students where stuid=1;
delete from students;
truncate students;-- 强制删除,永久

查寻数据

select * from students;
select stuid,stuname, birthday from students;
%作用:
    我们将查找包含以test为开头的字符串的所有行。
    SELECT * FROM table_name WHERE column_name LIKE 'test%';
    如果要查找包含以特定字符结尾的字符串的行,则将%放在开头。
    SELECT * FROM table_name WHERE column_name LIKE '%test';

给列起别名(也可以做引用)

select st.studentName,st.address,rt.examDate,rt.studentResult from student st cross join result re;

where查找数据

select studentResult studentName from result
(1)where studentResult>=80 and studentResult<90
(2)where studentResult between 80 and 90
(3)where studentReault=7(!=7)
(4)where studentName (not) link '李'
(5)where studentNo=1000 or studentNo=1009
(6)where studentNo (not) in (1000,1009,2000)

左右表提取数据

使用形式(及选择左右表格相同部分)
select from 顾客表 right join 订单表 on 顾客表.customid=订单表.customid
inner join on     -- 提取左右表格指定相同的所有部分
left join on      -- 提取左所有部分,和右表格指定相同的部分
right join on     -- 提取右所有部分,和左表格指定相同的部分
cross join on     -- 左边每一个和右边每一个相结合
full join on      -- 左右一起提取出来,无的填null
-- 要应用两个表格必须两个表格有相同的数据,用on相连

排序

order by bornDate asc,loginPWd desc limit 0,3 -- 表示取前三

查找方法,如何使用

select st.studentNo ,st.studentName,subjectNo,r.studentResult
from student st inner join result r on st.studentNo = r.studentNo
where subjectNo=(select subjectNo from subject where subject.subjectName='C语言-1')
order by studentResult desc limit 5;

select a.studentNo,studentName,studentResult from
(select st.studentNo ,st.studentName,r.subjectNo,r.studentResult
from student st inner join result r on st.studentNo = r.studentNo ) a
where a.subjectNo=5 order by a.studentResult desc limit 5;

方法


ifnull(score,0)               -- 判断是否有空,有的话填0
if(score is null ,0,score)
                 --判断条件并打印表格
case when score >=60 then '合格'
when score is null then '缺考'
else '不合格' 
end score3  -- 输入表格名字
from abc

group by -- 分组
having count(条件)>=3  --  去组(留下满足条件的)

where和having注意事项

                where和having区别
唯一区别是为了区别where:其实是where只能跟着from后,having只能跟着group by后。
即:
having是对一个表的数据进行了分组之后,对“组信息”进行相应 条件筛选;
可见:
having筛选时,只能根据select子句中可出现的字段(数据)来进行条件设定。
having子句与where子句一样,都是用于条件判断的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值