1、对表的增删改
DROP DATABASE hoscen; -- 删除数据库
DROP TABLE t_usr; -- 删除表
ALTER TABLE t_usr RENAME t_usr2; -- 修改表名
CREATE TABLE t_usr( -- 创建表
id INT,
NAME VARCHAR(20) NOT NULL COMMENT '用户名'
);
2、对表的记录进行增删改查
INSERT INTO t_usr(id,NAME) VALUES(1,'jkay'); -- 增
DELETE FROM t_usr WHERE id>1; -- 删
UPDATE t_usr SET id=2,NAME='Jack2' WHERE id=1; -- 改
SELECT * FROM t_usr WHERE id>1; -- 查
3、对表的字段进行增删改查
ALTER TABLE t_usr ADD COLUMN age INT; -- 增加字段
ALTER TABLE t_usr DROP COLUMN age; -- 删除字段
ALTER TABLE t_usr CHANGE old_name new_name VARCHAR(20); -- 修改字段
DESC t_usr; -- 查询表结构
ALTER TABLE t_usr MODIFY `id` DATETIME DEFAULT NULL COMMENT '用户id' -- 给字段添加注释
ALTER TABLE t_usr MODIFY COLUMN NAME VARCHAR(20) COMMENT '用户名'; -- 修改字段的注释
4、查询表的主键以及主键所在列位置
SELECT DISTINCT tmp.* FROM (
SELECT t.TABLE_NAME,
t.CONSTRAINT_TYPE,
c.COLUMN_NAME,
c.ORDINAL_POSITION
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c,
information_schema.TABLES AS ts
WHERE
t.TABLE_NAME = c.TABLE_NAME
AND t.TABLE_SCHEMA = 'hoscen' -- 指定数据库
AND T.`TABLE_NAME` = 't_usr' -- 指定表
AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'
) tmp;
5、删除表中重复数据
CREATE TABLE mytemp AS (SELECT DISTINCT * FROM t_usr); -- 创建临时表,并把DISTINCT 去重后的数据插入到临时表中
DELETE FROM t_usr;-- 清空原表数据
INSERT INTO t_usr (SELECT * FROM mytemp);-- 将临时表数据插入到原表中
DROP TABLE mytemp;-- 删除临时表
COMMIT;
6、where 1=1 的应用
不是什么高级的应用,也不是所谓的智能化的构造,仅仅只是为了满足多条件查询页面中不确定的各种因素而采用的一种构造一条正确能运行的动态SQL语句的一种方法
-- where 1=0 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表
CREATE TABLE t_usr_new AS (SELECT * FROM t_usr WHERE 1=0);