数据库表结构设计,常见的数据库管理系统( 三 )
- 外键关联
添加外键
ALTER TABLE ms_user_wallet ADD CONSTRAINT user_id_out_key FOREIGN KEY(user_id) REFERENCES ms_user_center(id) ;
删除外键
ALTER TABLE ms_user_wallet DROP FOREIGN KEY user_id_out_key ;
四、表结构管理1、查看结构DESC ms_user_status ;SHOW CREATE TABLE ms_user_status ;
2、字段结构- 添加字段
ALTER TABLE ms_user_status ADD `delete_time` datetime DEFAULT NULL COMMENT '删除时间' ;
- 删除字段
ALTER TABLE ms_user_status DROP COLUMN delete_time ;
3、修改表名ALTER TABLE ms_user_center RENAME ms_user_info ;
4、存储引擎- 存储引擎
SELECT VERSION() ; SHOW ENGINES ;
MySQL 5.6 支持的存储引擎有InnoDB、MyISAM、Memory、Archive、CSV、BLACKHOLE等 。一般默认使用InnoDB,支持事务管理 。该模块MySQL核心,后续详解 。- 修改引擎
ALTER TABLE ms_user_sso ENGINE = MyISAM ;
5、修改编码表字符集默认使用utf8,通用,无乱码风险,汉字3字节,英文1字节,utf8mb4是utf8的超集,有存储4字节例如表情符号时使用 。- 查看编码
SHOW VARIABLES LIKE 'character%';
- 修改编码
ALTER TABLE ms_user_sso DEFAULT CHARACTER SET utf8mb4;
五、数据管理1、增删改查添加数据
INSERT INTO ms_user_sso ( user_id,sso_id,sso_code,create_time,update_time,login_ip,state)VALUES ('1','SSO7637267','SSO78631273612','2019-12-24 11:56:57','2019-12-24 11:57:01','127.0.0.1','1' );
更新数据
UPDATE ms_user_sso SETuser_id = '1',sso_id = 'SSO20191224',sso_code = 'SSO20191224', create_time = '2019-11-24 11:56:57',update_time = '2019-11-24 11:57:01', login_ip = '127.0.0.1',state = '1'WHERE user_id = '1';
查询数据一般情况下都是禁止使用 select* 操作 。
SELECT user_id,sso_id,sso_code,create_time,update_time,login_ip,state FROM ms_user_sso WHERE user_id = '1';
删除数据
DELETE FROM ms_user_sso WHERE user_id = '2' ;
不带where条件,就是删除全部数据 。原则上不允许该操作,优化篇会详解 。TRUNCATE TABLE也是清空表数据,但是占用的资源相对较少 。2、数据安全
- 不可逆加密
SELECT MD5('cicada')='94454b1241ad2cfbd0c44efda1b6b6ba' ;SELECT SHA('cicada')='0501746a2e4fd34e1d14015fc4d58309585edc7d';SELECT PASSWORD('smile')='*B4FB95D86DCFC3F33A3852714DC742C77504479D' ;
- 可逆加密
SELECT DECODE(ENCODE('123456','key_salt'),'key_salt') ;SELECT AES_DECRYPT(AES_ENCRYPT('cicada','salt123'),'salt123');
上述数据安全的管理,也可以基于应用系统的服务(代码)层进行处理,相对专业的流程是从数据生成源头处理,规避数据传递过程泄露,造成不必要的风险 。