文章目录
1.DDL(Data Definition Language 数据定义语言)
1.1 Alter
1.1.1索引相关语句
1.1.1.1创建索引
-- 建表之后创建主键
---- alter table 【表名】 add constraint 【主键名】 primary key (【字段】);
alter table t_test add constraint t_test_ID_PK primary key (ID);
---- 创建完主键后给主键增加自增
alter table table_name modify id int auto_increment primary key
-- 创建普通索引
---- create index 【索引名】 on 【表名】(【字段】,[【字段】]);
create index t_test_ID_NAME_index on new_t_ykt_transactions(`ID`, `NAME`);
-- UNIQUE(唯一索引)
ALTER TABLE `table_name` ADD UNIQUE unique_name (`column`)
-- 联合唯一索引
alter table table_name add unique index index_name (aa,bb);
-- 插入索引时以前的数据有重复,使用ignore关键字,会删除重复的数据
alter ignore table table_name add unique index(aa,bb);
-- INDEX(普通联合索引)
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
1.1.1.2删除索引
-- 删除主键
ALTER TABLE TABLE_NAME DROP PRIMARY KEY;
-- 删除索引
DROP INDEX index_name ON tbl_name;
索引参考地址
1.MySQL之添加联合唯一索引
1.2表修改相关
1.2.1字段添加修改删除
-- 在某个字段的前面添加字段
alter table table_name ADD column_name varchar(255) comment '测试' AFTER column_name
-- 修改某个字段的属性注释等
ALTER TABLE table_name MODIFY COLUMN column_name varchar(32) DEFAULT '0' COMMENT '添加注释的内容';
-- 修改字段明湖曾
alter table table_name rename column old_columnname to new_name;
1.2.2表修改
-- 修改表的注释
alter table table_name comment '表的注释';
2.DML(Data Manipulation Language 数据操控语言)
2.1insert相关语句
-- 插入所有的值
INSERT INTO 表名称 VALUES (值1, 值2,....)
-- 插入指定列的值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
-- 查询数据并插入表——如果接受数据导入的表已经存在
insert into target_table_name select * from source_table_name
-- 查询数据并插入表——如果接受数据导入的表已经存在
select * into target_table_name from source_table_name
-- mysql特有语法,添加或更新
Insert into…ON DUPLICATE KEY UPDATE…
2.2update相关语句
-- 通用模板
UPDATE 表名称 SET 列名称 = 新值[,列名称 = 新值] WHERE 列名称 = 某值
-- 将一张表的数据更新至另外一张表中
UPDATE table_nameA a INNER JOIN table_nameB b SET a.列名称 = b.列名称[,a.列名称 = b.列名称] WHERE a.列名称=b.列名称;
2.3删除相关语句
- 1.删除数据而不删除表结构
-- 使用truncate快速删除,这个表和索引所占用的空间会恢复到初始大小
truncate table table_name;
-- delete:操作不会减少表或索引所占用的空间。与事务有关,且可以带where语句
delete table table_name where 列名称 = 某值;
- 2.删除表
-- 使用效率与速度drop>truncate>delete
DROP TABLE IF EXISTS table_name;
- 3.参考地址
2.4 select相关语句
2.4.1获得用户排名
SELECT * FROM (SELECT uid,(@rowNum:=@rowNum+1) AS rowNo
FROM table_name,(SELECT(@rowNum:=0)) b ORDERBY score DESC) c
WHERE uid=1;