• MySQL语法笔记(自用)


    数据库操作

    create database 数据库名;
    drop database 数据库名;
    
    • 1
    • 2

    表操作

    -- 建表
    create table userinfo(
    id int(10) primary key  auto_increment, -- primary key关键字   auto_increment自增 
    username varchar(20) unique,  --unique唯一
    status varchar(20)
    );
    
    
    -- 删除主键(primary key)
    alter table userinfo drop primary key;
    
    -- 删除唯一(unique)
    alter table userinfo drop key username;
    
    -- 删除自增
    alter table userinfo modify id int;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    -- 删表
    drop table userinfo;
    
    -- 备份表
    create table 表名 as (select * from 表名);
    
    -- 改表名
    rename 表名 to 表名;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    表中字段进行添加 add、删除 drop、修改change/modify的操作
    语法:alter table 表名 add | change/modify | drop 字段名 类型 约束;

    alter table userinfo add status int;
    
    alter table userinfo drop email;
    
    alter table userinfo change username login_name varchar(20);
    alter table userinfo modify username varchar(16); #modify不可以用来修改字段名
    alter table userinfo change username username int;
    alter table userinfo change username my_username  varchar(16); #同时修改字段名和数据类型
    alter table userinfo modify `status` int first;
    alter table userinfo modify `status` int after login_name;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    操作表

    查询的完整语法:
    select 字段|表达式 from 表名|视图|结果集
    [where 条件]
    [group by 分组]
    [having 分组之后进行检索]
    [order by 排序]
    [limit 限制结果]

    -- 最低工资大于等于100,用户ID在75,702,5606,804,818中,管理员姓名第二个字母是z,工资倒序排列
    select 
    	distinct a.name 名字去重,
    	o.order_id,
    	a.user_id,
    	o.price 价格,
    	if(o.price = 1999,'工资高','工资低'), -- ifnull(price ,0) 判断price 列是否是null,如果是null,则赋值为0
    	avg(o.price ) + 0.5 AS 平均数 
    from
    	sxo_answer a
    	inner join 
    	sxo_order_detail o 
    	on 
    	a.user_id = o.user_id 
    where -- where后面不可以接聚合函数,where单独使用使用
    	o.user_id in ( 75, 702, 5606, 804, 818 ) 
    	and 
    	a.name like '_z%' 
    group by
    	o.price 
    having -- having 后面可以接聚合函数,having搭配group by使用
    	min(o.price )>= 100 
    order by
    	o.order_id desc 
    	limit 
    	2, 3;-- limit是从第3行开始,往后取3行(取3到6行)
    -- limit m,n m:开始的位置,索引值从0开始 n:取值的长度(个数)
    
    -- 插入
    insert into sxo_answer(id,user_id,name) values(1,1,'abc'),(2,2,'edf');
    
    -- 修改
    update sxo_answer set name='abc' where id=1;
    
    -- 删除
    delete from sxo_answer where id=1;
    
    -- 清空
    truncate table sxo_answer;
    
    -- 删表
    drop table sxo_answer;
    
    min() -- 最小值
    max() -- 最大值
    avg() -- 平均值
    sum() -- 总计
    count() -- 统计行数
    round() -- 四舍五入
    
    表名 left join 表名 on 条件
    表名 right join 表名 on 条件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    注意:delete与truncate的区别是什么
    1:delete是逐行删除,truncate是文件级别的清空
    2.delete删除后,自增性会继续执行,不会重置
    3.truncate删除后,自增性重置

  • 相关阅读:
    先进制造aps专题十 aps项目成功指南
    Dreamweaver 2021 for Mac 激活版:网页设计工具
    3D,那些你需要知道的硬件知识(2)
    MySQL索引
    商业合作保密协议
    OFDM 十六讲 3- OFDM Waveforms
    【一起学Java-第七篇】Java中类与对象核心详解
    AUTOSAR汽车电子嵌入式编程精讲300篇-基于CAN总线的温度场测量装置的研究与设计
    NEON优化:性能优化经验总结
    dedecms织梦快照被挟持和篡改入侵漏洞修复
  • 原文地址:https://blog.csdn.net/qq_36562656/article/details/127671752