MySQL基本使用

-- 创建一个用户表
create table tb_user(
 id  bigint(20) not null auto_increment comment '主键',
 name varchar(50) comment '用户名',
 phone varchar(11) comment '手机号码',
 address  varchar(255) comment '地址',
 hobby varchar(200) comment '兴趣爱号',
 version int(1) comment '版本号',
 create_time datetime null default current_timestamp comment '添加时间',
   modify_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',

 primary key (id) using btree
)engine=innodb default charset=utf8mb4  comment='用户表';

-- 插入一条数据
   insert into tb_user(name,phone,address,hobby) values('sugar','13745678911','上海','01,02,03');

-- 修改一个字段属性大小
  alter table tb_user modify hobby varchar(150);

-- 修改一个字段属性名称
   alter table tb_user modify hobby  favorite_item varchar(150);

-- 给一个字段赋值
   update  tb_user set phone=13888888888,address ='西安' where name = 'sugar'

-- 删除一个数据(慎用,数据是资源,可以备份一下,备份表)
   create table tb_user_copy select * from  tb_user;
   delete from  tb_user_copy where id = 1
-- 给表添加多个字段
alter table tb_user add (field_id bigint(20) default null comment '注释',field_name varchar(100) default null comment '注释');
-- Boolean 值
alter table tb_user add sex bit(1)  default b'0' comment '0 男 ,1 女';
alter table tb_user add sex  boolean  default '0' comment '0 男 ,1 女';

添加索引:
聚合索引
alter table tableName add index `index_name` (`column1`,`column2`(15),`column3`,...);
 聚合索引 `index_name` ====> `index_cloumn1_cloumn2_...` (15)===>限制该字段的匹配长度
主键索引
alter table tableName add primary key (`column`);
唯一索引
alter table tableName add unique (`column`);

语法:
alter table 表名 add  索引别名 (索引字段[单个或者多个,逗号隔开])
alter  table   table_name  add  index `index_name`(`index_column`);
alter  table   table_name  add  unique `unique_name`(`unique_column`);

---慢sql 捕捉
select * from information_schema.processlist where info is not null;

--分库分环境好多表加新字段,验证是否脚本加成功
select a.TABLE_SCHEMA, a.table_name,a.column_name,b.column_name from 
 (select * from information_schema.columns where table_name like 'tb_user%' and column_name = '主键'  group by TABLE_SCHEMA, TABLE_NAME )a left join
 (select * from information_schema.columns where table_name like 'tb_user%' and column_name = 'add field'  group by TABLE_SCHEMA, TABLE_NAME)b 
 on b.table_name =  a.table_name;

-- 进公司不知道表在那个库,只有一个数据库服务
select  * 
from information_schema.tables
where table_name like 'table_%'
# 查询表数据 
show table status like 'table_name';

# 某个库所有表
select  table_name  from information_schema.tables  where table_schema ='table_name'

-- 修改默认值
update table_name set column ='A' where column='B';
alter table table_name alter column column set default 'A';

-- excel 函数
$ 最后一行
=CHAR(39)&A2&CHAR(39)&","    例 A ==> 'A', 

--- pgSql  分组后获取 最大最小值
	
	//获取分组后的最大值
	first_value(field_f) over (partition by filed_a, field_b, field_c order by field_d desc, id desc)
	
	//获取分组后的最小值
	first_value(field_f) over (partition by filed_a, field_b, field_c order by field_d asc, id asc )

建议

遵循3大 范式

  1. 确保每列保持原子性
  2. 确保表中的每列都和主键相关
  3. 确保每列都和主键列直接相关,而不是间接相关
    备注:具体还是要根据实际业务出发,才可以设计出适合业务的表结构,3大范式只是参考

创建一个表至少要有几个必须字段
1.主键
2.创建时间
3.更新时间
4.版本号
5.业务字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值