MySQL基础学习笔记
程序员文章站
2022-05-03 19:18:49
...
1、MySQL数据类型
2、datetime、timestamp什么区别
https://www.cnblogs.com/xuliuzai/p/10901425.html
3、sql类型
4、建表规范
1)案例
create table ruozedata.rz(
id int(11) not null auto_increment, 第一列必须是自增长id
name varchar(255),
age int(3),
create_user varchar(255),
create_time timestamp not null default current_timestamp,
update_user varchar(255),
update_time timestamp not null default current_timestamp on update current_timestamp,
primary key(id) 主键= 唯一约束 +not null非空约束
);
2)规范:
(1)表名称、字段名称,不要写中文,尽量不要汉语拼音
(2)统一风格;
(3)第一个字段必须是自增长字段 主键,且 无业务意义,架构设计默认规则
(4)一张表只有一个主键 id,业务字段需要唯一的话,就使用唯一约束来保证。
ALTER TABLE ruozedata.rz
ADD CONSTRAINT rz_un UNIQUE KEY (name);
(5)后面四个字段 务必加上:create_user,create_time ,update_user ,update_time
(6)业务字段 注释务必要加上:comment 'xxx'
5.增删改查(insert,update,select,delete)
insert into ruozedata.rz(name,age) values('ruoze',18);
update ruozedata.rz set age=38 where name='ruoze';
select * from ruozedata.rz;
delete from ruozedata.rz where id=1;
5.其他语法
create
drop table ruozedata.rz;
create table ruozedata.rz(
id int(11) not null auto_increment,
name varchar(255) comment '姓名',
age int(3) comment '年龄',
create_user varchar(255),
create_time timestamp not null default current_timestamp,
update_user varchar(255),
update_time timestamp not null default current_timestamp on update current_timestamp,
primary key(id)
);
–1.过滤 where
select * from ruozedata.rz where name='ruoze';
select * from ruozedata.rz where name='jepson' and age=22;
select * from ruozedata.rz where age=16 or age=12;
select * from ruozedata.rz where age in (16,12);
select * from ruozedata.rz a where exists (
select b.id from ruozedata.rz b where (age=16 or age=12 ) and .id=b.id);
select * from ruozedata.rz where age >12;
-2.排序语法 order by
select * from ruozedata.rz order by age;
select * from ruozedata.rz order by age asc;
select * from ruozedata.rz order by age desc , name desc ;
–3.模糊匹配 like
select * from ruozedata.rz where name like 'j%'; 字母j开头
select * from ruozedata.rz where name like '%n'; 字母n开头
select * from ruozedata.rz where name like '%o%'; 含有o
select * from ruozedata.rz where name like '__p%'; 第三位p_ 占位符
–4.合并表
create table t1(id int,name varchar(255));
create table t2(id int,name varchar(255));
insert into t1 values(1,'ruoze');
insert into t2 values(1,'ruoze');
insert into t2 values(2,'jepson');
–5.过滤重复
select * from t1
union
select * from t2;
–6.不过滤重复
select * from t1
union all
select * from t2;
–7.分组语法 group by …having …
分组/聚合函数
sum
avg
max
min
count
–8.不带分组字段的
select
sum(age),avg(age),max(age),min(age),count(*)
from ruozedata.rz ;
–9.分组字段的
select
name,
sum(age),count(1)
from ruozedata.rz
group by name
having sum(age)>18;
==> 等价于 子查询进行筛选
select * from
(
select
name,
sum(age) as sum_age,count(1) as c
from ruozedata.rz
group by name
) as t where t.sum_age>18;
上一篇: MySQL基础学习笔记1
下一篇: MYSQL学习笔记(基础)
推荐阅读
-
微信小程序学习笔记之获取位置信息操作图文详解
-
Java学习笔记 DbUtils数据库查询和log4j日志输出 使用
-
《从零开始学Swift》学习笔记(Day 41)——类的继承
-
《从零开始学Swift》学习笔记(Day43)——构造函数继承
-
通过实例学习MySQL分区表原理及常用操作
-
在OneProxy的基础上实行MySQL读写分离与负载均衡
-
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
-
Python3.4学习笔记之列表、数组操作示例
-
Python3.4学习笔记之 idle 清屏扩展插件用法分析
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】