sql笔记


sql笔记

MYSQL

8月9号

表结构

image-20210810084309972
insert into `user`(name,age,sex)
values('suny',20,1),('hauhua',19,1),('meimei',33,0);

-- 当表中主键存在数据就执行更新操作
insert into `user`(id,name,age,sex)
values(1,'suny',22,1),(2,'huahua2',20,0)
on duplicate key UPDATE
name=values(name),
age=values(age),
sex=values(sex);

-- case when else语句
select id,name,age,
case when sex=1 then '男'
when sex=0 then '女'
else '未知'
end sex
from user;

11月4号

1.查看数据库数据、索引占用存储量

SELECT table_schema as '数据库',
table_name AS '表',
round(((data_length) / 1024 / 1024), 2) '数据量大小(MB)',
round(((index_length) / 1024 / 1024), 2) '索引量(MB)'
FROM information_schema.TABLES
where table_schema = '数据库实例名称'
ORDER BY (data_length)
DESC;

2.查看表的字段、索引

-- 查看表的所有字段
show full columns from '表名称'-- 查看表的所有索引属性
show index from '表名称';

-- 查看进程、杀死进程
show processlist;
kill 'id';

3.创建表结构(带分区)模版

-- 按区县代码分区的话,区县代码必须是主键,不
DROP TABLE IF EXISTS `zd_tdjyq_bhgx`;
CREATE TABLE `zd_tdjyq_bhgx`(
`BSM` varchar(255) NOT NULL COMMENT '标识码',
`YWH` varchar(50) DEFAULT NULL COMMENT '业务号',
`BZ` text COMMENT '备注',
`GXSJ` datetime NULL DEFAULT NULL COMMENT '更新时间',
`QXDM` varchar(6) NOT NULL COMMENT '区县代码',
PRIMARY KEY (`BSM`,`QXDM`) USING BTREE
)ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8
/*!50500 PARTITION BY LIST COLUMNS(QXDM)
(PARTITION `ZD_TDJYQ_BHGX_33` VALUES IN ('33') ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `ZD_TDJYQ_BHGX_3301` VALUES IN ('3301') ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `ZD_TDJYQ_BHGX_330100` VALUES IN ('330100') ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 ,
PARTITION `ZD_TDJYQ_BHGX_330102` VALUES IN ('330102') ENGINE = InnoDB MAX_ROWS = 0 MIN_ROWS = 0 
)*/
;

3.1建表

create table if not exists 表名;
create 目标表 like 来源表 (复制操作);
create table 表名 {};

4.datetime 和 date的区别

1、显示格式的区别
Date显示格式:YYYY-MM-DD;DateTime显示格式:YYYY-MM-DD HH:mm:ss。
2、显示范围的区别
Date显示范围是1601-01-01 到 9999-01-01;DateTime显示范围是1601-01-01 00:00:00 到 9999-12-31 23:59:59。

5、增加删除修改字段,索引等操作

-- 加字段
alter table '表名' add column 列名 类型 not null default '' after 列名;
-- 删字段

-- 加索引
alter table 表名 add (unique) index 索引名(列名,...);
create (unique) index 索引名 on 表名(列名,....);
-- 1.ALTER 创建索引
-- table_name表名,column_list列名,index_name索引名

-- 创建index索引
ALTER TABLE table_name ADD INDEX index_name (column_list)
-- 创建唯一索引
ALTER TABLE table_name ADD UNIQUE (column_list)
-- 创建主键索引
ALTER TABLE table_name ADD PRIMARY KEY (column_list)

-- 2.CREATE 创建索引(不能创建主键索引)
-- table_name表名,column_list列名,index_name索引名

-- 创建index索引
CREATE INDEX index_name ON table_name (column_list)
-- 创建唯一索引
CREATE UNIQUE INDEX index_name ON table_name (column_list)

-- 3.删除索引
-- table_name表名,column_list列名,index_name索引名

-- 删除index索引
ALTER TABLE table_name DROP INDEX index_name
DROP INDEX index_name ON talbe_name
-- 删除主键索引
ALTER TABLE table_name DROP PRIMARY KEY
-- 删除唯一索引
ALTER TABLE table_name DROP INDEX column_list;
ALTER TABLE table_name DROP INDEX index_name
DROP INDEX index_name ON talbe_name

-- 4.查看索引
SHOW INDEX FROM table_name
SHOW KEYS FROM table_name

6.插入insert语句

insert into (会检查主键)
replace into (有主键或者unique索引)
insert ignore into 
-- 把一个表的数据复制到另一个表,字段要一一对应
insert into 目标表(字段,...) select 字段,... from 源表

ORACLE


文章作者: fejxc
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fejxc !
评论
  目录