Mysql语句包含DDL+DQL+DML

3 篇文章 0 订阅
本文详细介绍了MySQL中的数据库操作,包括DDL(数据定义语言)如创建、删除数据库和表,修改表结构等;DQL(数据查询语言)如SELECT查询,使用各种条件和函数进行数据检索;以及DML(数据操纵语言)如INSERT、UPDATE和DELETE操作。此外,还涵盖了查询顺序、子查询、连接查询和数据操作技巧。对于数据库管理员和开发者来说,是全面理解MySQL语法的重要参考资料。
摘要由CSDN通过智能技术生成

Mysql语句包含DDL+DQL+DML

综合使用查询:

#----综合使用
书写顺序
select distinct * from '表名' where '限制条件'  group by '分组依据' having '过滤条件' order by  limit '展示条数'
执行顺序
from      -- 查询
where      -- 限制条件
group by   -- 分组
having     -- 过滤条件
order by   -- 排序
limit      -- 展示条数
distinct   -- 去重
select     -- 查询的结果
正则:select * from emp where name regexp '^j.*(n|y)$';
集合查询:max 、min 、avg 、sum 、count 、group_concat 。
内连接:inner join
左连接:left join
右连接:right join
全连接: 左连接 union 右连接
replace 替换

拼接:concat、concat_ws、group_concat

注:MySQL不区分大小写,所有符号必须使用英文格式下的

一、DDL(对数据库和表的操作)

1、创建数据库
create database dbname
2、删除数据库
drop database dbname
3、选择数据库
user dbname
4、创建新表
create table tablename(
字段名1 类型,
字段名2 类型,
字段名3 类型,…);
例:CREATE TABLE user(
id INT,
name VARCHAR(10),
sex VARCHAR(1),
stu_age INT;
5、根据已有的表创建新表
A: create table 新表名 like 旧表名(使用旧表创建新表)
B: create table 新表名 as select 列名1,列名2… from 旧表名 definition only
6、删除表
6.1 drop
drop是直接删除信息表,速度快,但是无法找回数据
drop table tablename
6.2 truncate
truncate 是删除表数据,不删除表的结构,速度拍第二,但不能与where一起用
truncate table tablename
6.3 delete
delete是删除表中的数据,不删除表结构,速度最慢,但是可以与where使用,
delete from 表名 where id = 1;
7、显示表的属性信息
desc 表名
8、增加一个列名
alter table 表名  add 列名 类型 ;
指定列名后面添加列名
alter table 表名 add 已有列名 after 列名 类型;
first:第一个; before:在之前; end:最后
9、删除一个列名
alter table 表名 drop 列名
10、修改一个列名
alter table 表名 change 旧列名 新列名 类型
11、修改类型
alter table 表名 modify 旧列名(已有的列名)   新类型 
12、添加主键
alter table 表名 add primary key (列名) references 表名 (主键)
13、添加外键
alter table 表名 add foreign key (列名) references 表名 (主键)
14、约束类型
①  not null:非空约束
②  unique:唯一约束
③  primary key:主键
④  foreign key:外键
⑤  auto_increment:自增长
⑥  default:设置默认值 例:default ‘值’

二、DQL(查询语句)

关键字:
1、or:或
2、and:和
3、having:分组后的附加条件
4、group by:分组
5、order by:排序 :asc :升序,desc:降序
6、in:存在于某个值中
7、not in:不存在与某个值中
8、inner join ……on 内连接多表
9、left join …… on 左连接多表(以左表为基础,匹配右表数据)
10、right join ……on 右连接多表(以右表为基础,匹配左表数据)
11、left (right,inner) out join …… on :去重
12、count:计数
13、AVG:平均值
14、sum:求和
15、max:最大值
16、min:最小值
17、like ‘关键字%’:取含有关键字的值(name like concat('%',#{name},'%')18、distinct:去重
19、round:四舍五入
20、where 1=1:条件成功,全匹配
21、where 1=2:条件失败,都不匹配
22、limit 1,5:从第二行,开始显示前5条数据
23、top 10select top 10 * from 表名:显示前十条数据
24、newid(): 随机
查询语句示例:
1、选择查询
select * from 表名 where 条件

2、模糊查询
select * from 表名 where 列名 like ‘%value%’(查询包含value的值)

3、order by 排序查询(倒叙,默认为正序查询)
select * from  表名  order by  列名  desc

4、count  计数查询
select count(*)  as 别名 from  表名

5、 sum 求和查询
select sum(求和字段)  as  别名 from  表名

6、avg 平均值查询
select avg(平均值字段)  as  别名 from 表名

7、max  min 最大最小值查询
select max(字段)  as  别名   from 表名

8、round 四舍五入查询
select round(min (字段) , 要保留的小数位数)  as  别名  from  表名

9、distinct  去重查询
select distinct  列名 from 表名

10、分组查询:
select * from  表名  group by 列名

11、多条件查询
select *  from 表名  where 列名=‘数值’  and  列名2 = ‘数值2’  or  列名3 = ‘数值312、多条件分组求职查询
select 列名, min(filed)  from  表名 where  列名=‘范围’  group by 列名  having  sum(列名)

13、子查询 (子查询的结果作为主查询的条件)
select * from 表名 where  id =  (select  id  from 表名 where 列名 = '数值')

14、连表查询(内连接):
select * from  表名1  inner join  表名2   on   表名1.主键 =表名2.外键 (必须有主外键)

15、连表查询(内连接 + 去重 )
select * from  表名1  inner  out  join  表名2  on  表名1.主键 = 表名2.主键

16、连表查询(左外连接)显示左表的全部信息和右表相关联的信息)
select *  from 表名1  left join  表名2  on  表名1.主键 = 表名2.主键

17、删除字段
alter table 表名 drop 字段名

三、DML(数据操作语句:插入、修改、删除)

1、数据插入
完全插入:insert  into  表名 values(1,值2,值3……)
选择插入:insert  into 表名  (列名1,列名3,列名9……) values(值1,值3,值9……)
批量插入:insert into 表名 values(值1,值2,值3,值4……),(值1,值2,值3,值4……),(值1,值2,值3,值4……)
2、修改语句
update 表名 set  列名 = '值'  where 条件

UPDATE 表名 SET  列1 =1,2 =2, ...  WHERE [条件]
3、删除语句
delete  from 表名 where 条件

四、其他语句

1、查询某个数据库所有的表名、字段、注释等内容
SELECT
TABLE_NAME 表名,
COLUMN_KEY 主键,
COLUMN_NAME 字段名称,
DATA_TYPE 字段类型,
CHARACTER_MAXIMUM_LENGTH 长度,
IS_NULLABLE 可否为空,
COLUMN_COMMENT 注释
FROM
INFORMATION_SCHEMA.COLUMNS
where
-- Database为数据库名称
table_schema ='your数据库名'
ORDER BY TABLE_NAME, COLUMN_KEY DESC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值