mysql基础入门(3)-DML和DQL

1.查询表的命令是什么?

select  字段名  as 别名  from  表名  
where 条件 
group by   分组条件 
having   分组后再过滤的条件 
order by  排序字段列表(默认升序(asc),降序(desc)  
limit    起始索引,查询记录数(起始索引=(页码-1)* 每页展示记录数)

2.where条件查询常用方式都有什么?

BETWEEN  A AND B        在A-B之间
IN(set)                 集合作为条件
列名 LIKE ‘张pattern’   模糊查询,%代表零个或多个任意字符,_ 代表一个字符
IS NULL                空值
IS NOT NULL;            非空
and(与) 
or(或) 
not(非)  
列名=value
> <  >=  <= = !=
&lt 大于
&gt 小于

3.where和having区别是什么?

where在分组查询之前执行
having在分组查询之后执行

4.常见的分页参数都有什么?

  a.int curPage = 2; -- 当前页数
  b.int pageSize = 5; -- 每页显示数量
  
  c.int startRow = (curPage - 1) * pageSize; -- 当前页开始的位置(行数)计算
  
  d.int totalSize = select count(*) from products; -- 记录总数量
  e.int totalPage = Math.ceil(totalSize * 1.0 / pageSize); -- 总页数
                总页数 = (总记录数/每页显示条数)向上取整


5.多表查询的两种内连接是什么样的?

内连接用于获取两张表中满足条件的交集数据,分为
 隐式内连接(select 字段列表  from 表1,表2     where  条件)
 显式内连接(select 字段列表  from 表1 inner join  表2 on  条件)

6.多表查询的两种外连接是什么样的?

保留一张表的所有数据,同时获取另一张表的匹配数据
左连接相当于左表加交集(select 字段列表  from 表1 left outer join 表2    on  条件)
右连接相当于右表加交集(select 字段列表  from 表1 right outer join 表2    on  条件)
或者
左连接相当于左表加交集(select 字段列表  from 表1 left  join 表2    on  条件)
右连接相当于右表加交集(select 字段列表  from 表1 right join 表2    on  条件)

7.多表查询的自连接是什么样的?

就是把一张表连接查询多次

select 字段列表  from 表1 别名 join 表2  别名  on  条件

8.什么是union联合查询

于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集。

SELECT  字段列表   FROM   表A  ...   UNION [ ALL ] SELECT  字段列表  FROM   表B  ....;

对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。 
union all 会将全部的数据直接合并在一起,union 会对合并之后的数据去重。

9.什么是子查询

嵌套在另一个查询语句内部的查询
子查询可以返回单个值,单个行,单个列或包含一个或多个行或一个或多个列的表。

SELECT  *  FROM   t1   WHERE  column1 =  ( SELECT  column1  FROM  t2 );#第一种嵌套查询
SELECT  *  FROM    ( SELECT  *  FROM  t2 ),t1   WHERE  column1 =  n ; #第二种作为伪表使用

子查询外部的语句可以是INSERT / UPDATE / DELETE / SELECT 的任何一个。

10.查询如何去除重复值

关键字: distinct(列名)
SELECT DISTINCT(price) FROM product;

11.为表添加数据的命令是什么?

-- 指定字段添加数据
insert into 表名(字段名1, 字段名2) values (值1, 值2); 
-- 全部字段添加数据
insert into 表名 values (值1, 值2, ...);
-- 批量添加数据(指定字段)
insert into 表名 (字段名1, 字段名2)  values (值1, 值2), (值1, 值2);
-- 批量添加数据(全部字段)
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);
INSERT INTO users VALUES (NULL, 'john_doe', 'john@example.com', '1990-05-15', TRUE);

INSERT INTO users (username, email, birthdate, is_active) 
VALUES ('alice_smith', 'alice@example.com', '1985-08-20', TRUE);

INSERT INTO users (username, email, birthdate, is_active) VALUES 
('bob_wilson', 'bob@example.com', '1992-03-10', TRUE),
('carol_jones', 'carol@example.com', '1988-11-25', FALSE),
('david_brown', 'david@example.com', '1995-07-30', TRUE);

12.为表修改数据的命令是什么?

update 表名  set 字段1=value ... where  条件
UPDATE users SET username = 'new_username' WHERE id = 1;

UPDATE users SET username = 'john_updated', email = 'john_new@example.com'
, is_active = FALSE WHERE id = 1;

13.为表删除数据的命令是什么?

delete from   表名  where  条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值