-- 创建数据库
create database name;
-- 创建数据表
create table name(
id int not null primary key auto_increment,
name varchar(20)
);
-- 查询所有
select * from tablename;
-- 不重复查询某一列 distinct
select DISTINCT name from student;
-- 插入用户
insert into student values(DEFAULT,'甄姬','女','1995-7-9');
-- 查询范围最简单的
select `name`,`score` from course where score > 4 and score < 6;
-- 查询范围用between ... and ...
select `name`, `score` from course where score between 4 and 6;
-- 表示或者的关系 in
select * from course where score in (3,4);
-- 表示或者的关系用or
select * from student where sex = '男' or name = '甄姬';
-- 升序排列 asc(默认就是升序)
select * from course order by score asc;
-- 降序排列 desc
select * from course order by score desc;
-- 以某一个字段升序,某一个字段降序
select * from course order by score asc, degree desc;
-- 查询某个列总人数count(字段)
select count(*) from student where sex = '女' ;
-- 查询某个字段的最大的数字max(字段)
select * from course where score=(select max(score) from course);
-- 查询某个字段最大数还可以先降序排列,然后limit 0,1 ,就把第一个值取出来了
-- limit 第一个数是起始位置,第二个数字是差几条,分页就是这样实现的
select * from course order by score desc limit 0,1;
-- 计算平均成绩avg(字段)
select avg(score) from course ;
-- 模糊匹配:x%,以x开头,%是通配符,匹配任意字符
-- 过滤分组后的数据having, 配合 group by使用
-- 例:查询score表中至少两名学生选修并且以3开头的课程
select cno, avg(degree),count(*) from score group by cno
having count(cno)>=2 and cno like '3%';
-- 多表查询
select sname, cno, degree from student,score where student.sno = score.sno;
-- 如果有date类型的字段,你想从1998-06-10中找到年份怎么办?year(date类型的字段)
select YEAR(born) from student where sex = '女';
-- 联合查询 union
select * from teacher where depart = '计算机系'
union
select * from teacher where depart = '软件工程系';
-- 任意一个 any
select * from course where score > any(select score from course2);
-- 同上,所有是 all
select * from course where score > all(select score from course2);
-- as 取别名
select score as grade from course;
-- not like 模糊查询取反
select * from course where name not like '英%';
-- 求年龄使用now()算今年是几几年-year(字段)
select name,year(now())-year(born) as age from student;
-- 内联查询,其实就是两张表的数据,通过某个字段相等,查出相关记录数据
select * from person inner join card on person.cardId = card.id;
-- inner join = join
-- 左外连接会把左边表的所有数据取出来,如果右边的表中有相同数据则显示,没有则显示NULL
select * from person left join card on person.cardId = card.id;
-- left join = left outer join
-- 右外连接跟左外连接相反
-- start transaction 或者 begin;开启事务
-- 事务四大特征:
-- A:原子性 事务是最小单位,不可再分
-- C:一致性 事务要求同一SQL语句要么同时成功要么同时失败
-- I:隔离性 事务与事务之间是隔离的
-- D:持久性 事务一旦(commit),则不可返回
-- 事务开启的三种方式:
-- 1、set autocommit = 0(默认是1)
-- 2、begin;
-- 3、start transaction;
-- 事务提交
-- 1、commit;
-- 事务回滚
-- 1、rollback;
-- 查询事务隔离级别 8.0以上
-- 系统级别
select @@global.transaction_isolation;
-- 会话级别
select @@transaction_isolation;
-- mysql 5.X
select @@global.tx_isolation;
select @@tx_isolation;
-- 修改事务级别
set global transaction isolation level read uncommitted;
-- 脏读
-- 如果一个事务没提交,但是被另一个事务读到了,就叫脏读,在实际开发中是不允许的
-- 不可重复读
-- 虽然读到了另一个事务提交的数据,但是读到同一个表的数据,发现前后不一致,就是不可重复读,read committed
-- 幻读
-- 事务a和事务b操作同一张表,事务a提交了但是
-- 事务b没更新,就可能出现幻读
-- 串行化
-- 当一个表被一个事务操作的时候,另外那个事务不可执行操作,这就叫串行化,除非前者提交了,后者才能执行操作,否则一直等待
MySQL指令大全
原创
©著作权归作者所有:来自51CTO博客作者Bean冷的心的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Excel常用知识大全
当谈到Excel的常用知识时,以下是一个清晰且分点表示的大全:
数据 显示方式 数据验证 -
Vue指令指令大全
1. v-textv-text主要用来更新textContent,可以等同于JS的text属性。<
vue html 修饰符 数据 -
ChatGPT 指令大全
你是一位导游,我会把我旅游的位置让我的同事。
chatgpt 人工智能 产品经理 SEO 正则表达式 -
ETERM指令大全it