MySQL常用语句及事务

2018-11-01  本文已影响0人  Iris_Yzy

初学MySQL整理的一些语句

一、创建

1.创建数据库

create database mydatabase;

2.创建表

create table db1(
  id INT not null auto_increment,
  grade INT not null ,
  date DATE,
  primary key (id)            #主键设置
)ENGINE = InnoDB DEFAULT charset = utf8;

二、插入/修改

  1. 插入数据
INSERT into db2 values (3,'阿朱',11000);
  1. 插入字段
alter table db2 add age int not null ;
  1. 修改数据
    指定字段插入数据用update
    主键不可修改!
UPDATE db2 SET age =19 WHERE id=3;
UPDATE db1 SET class ='数学' WHERE id=6;
UPDATE db1 
SET salary = salary - 100 
WHERE id=6;

4 修改字段名称

alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空

alter table db1 change name id_name varchar(9) not null ;

三、查询

1 查看表

select * from db1;

2 查看表结构

DESC db2;

3 查询 asc升序 desc降序

select * from db1 order by id desc;

4 集合内的查询

select * from db1 where id in (1,3,5);

5 日期范围查询(and/or--->不包含)

select * from db1 where date>'2018-10-01' and date<'2018-10-15';

6 日期范围查询(between--->包含)

select * from db1 where date between '2018-10-01' and date<'2018-10-15';

7 显示3-5条数

select * from db1 limit 2,5;

8 分组查询 聚合函数

select max(grade),id,sex,id_name,class from db1 group by id;
select min(date) from db1;
select avg(grade) as '求平均' from db1;
select count(id) from db1 where db1.class='语文';   #统计表中总数

9
(9-1)Union 选取同一数据库中不同表中的同字段数据(不重复)

select id_name from db1 union select id_name from db2 order by id_name;

(9-2)Union ALL(重复)

select id_name from db1 union all select id_name from db2 order by id_name;

10
(10-1) WITH ROLLUP 分组统计(可用SUM/AVG/COUNT...)

select id_name,SUM(grade) as grade_count FROM db1 GROUP BY id_name WITH ROLLUP ;

(10-2) coalesce来设置一个可以取代null的名称

select coalesce(class,'总数'),SUM(grade) as '狗子的总成绩' From db1 where id_name = '狗子' GROUP BY class with rollup ;

11 INNER JOIN连接两张表的数据

SELECT a.id,a.id_name,b.age FROM db1 a INNER JOIN db2 b ON a.id_name = b.id_name;

12 LEFT JOIN 读取左边(a)全部数据,右边可为NULL
RIGHT JOIN 同上(右边全读取)

SELECT a.id,a.id_name,b.age FROM db1 a LEFT JOIN db2 b ON a.id_name = b.id_name;

13 LIKE
可以在 WHERE 子句中使用LIKE,通常与%同用,可代替 = ,

SELECT * FROM db1 WHERE grade LIKE 80 OR id_name LIKE 'Iris';

14 NULL (= NULL 和 !=NULL不起作用,正确语句为IS NULL 和 IS NOT NULL)

select * from db2 where salary is null ;
select * from db2 where salary is not null ;

15 正则
^ 匹配字符串的开始位置

SELECT  id_name FROM db1 WHERE id_name REGEXP '^I';

$ 匹配字符串的结束位置

SELECT id_name FROM db1 WHERE id_name REGEXP 's$';
SELECT id_name FROM db1 WHERE id_name REGEXP '.in';

[...] 字符集合。可以匹配所包含的任意一个字符。

SELECT id_name FROM db1 WHERE id_name REGEXP '[i然]';

16 多表查询

SELECT date,salary from db1,db2 WHERE db1.id_name = db2.id_name;

MySQL事务

一、事务的四个条件
  一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

二、事务的控制语句
MySQL中,事务操作包括4个:

参考链接:https://www.cnblogs.com/huanongying/p/7021555.html

上一篇 下一篇

猜你喜欢

热点阅读