简单明了的sql基础语句
一,数据库及表的增删改查
查看所有数据库:show databases;
切换到xxx库:use xxx;
查看库中所有的表:show tables;
查看表结构:desc 表名;
数据库创建:create datebase 数据库名 default character set = 'utf8'
数据库删除 drop database 数据库名
创建表
CREATE TABLE `表名` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`type` int(11) DEFAULT NULL,
`create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
删除表
drop table 表名
二 ,数据库内容的增删改查
查询:select 列名 from 表名
select name from students; 查询 students 中 name 列的内容
修改:update 表名 set 修改的字段 = 修改的内容 where 修改的位置
update user set name='张三' where id = '2020';
修改 user 表中 id =‘2020’ 的这条数据中的name 字段 改为“张三”
删除:delete 列名 from 表名
delete from user where id ='2020'; 删除user 表中id=‘2020’的行
插入:insert into 表名 (字段1,字段2,...,字段n) values(值1,值2,...,值n)
insert into user (id,name,pwd) values (22,张三,"李四"); 单条插入
insert into user(user_name,age) values ('test’,100), ('test’,200), ('test’,300), …; 多条插入
三,条件查询
模糊查询
select * from user where phone_num like '888%’
select * from user where phone_num like '%888’
select * from user where phone_num like '%888%'
范围查询
select * from user where id between 10 and 12 ; 查询id 在10-12 之间的 user 表中的数据
select * from user where id in (10,20) 查询 id 是10,12 user 表中的数据
select * from user where id not in (10.20) 查询id 不是10,12 user表中的数据
聚合函数
聚合函数 max(最大)、min(最小)、avg(平均)、sum(求和)、count(总数)
示例 (user,morder 分别为表名)
select max(age) from user;
select min(age) from user;
select avg(age) from user;
select sum(total_price) from morder; s
elect count(*) from morder
排序查询
倒叙 desc;正序 asc
select * from user order by age desc
select * from user order by age asc
去重
select distinct(age) from user; 查询user表格中年龄不相同的数据
限制
select * from user limit 10;
分组
group by 按照表中某一个或多个字段,将数据进行分组,一般用于将数据进行分类汇总
select id,sum(price) from orders group by customer
分组过滤
having对分组之后的数据进行过滤
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
四,多表连接查询
内连接
以某字段为条件,取左表和右表中同时存在相同数据的行,相当于两个表的交集
select * from user u inner join morder m on u.id=m.id 内连接,相当于交集
左连接
SELECT * from user u LEFT JOIN morder m ON U.ID = m.user_id
以某字段为连接条件,取左表中的全部数据+右表与该字段对应的数据,可能会有某些数据 在左表存在但是右表不存在的情
右连接
右连接right join 以某字段为连接条件,取右表中的全部数据+左表与该字段对应的数据,可能会有某些数据 在右表存在但是左表不存在的情况
SELECT * from user u RIGHT JOIN morder m ON U.ID = m.user_id
嵌套连接
多个select语句进行嵌套,嵌套的位置可以在select后、from后、where后
select username,userid from user
where id
in
(select user_id from morder where name='北京')