简单明了的sql基础语句

简单明了的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='北京')

你可能感兴趣的:(sql,数据库)