创建数据库语法
CREATE DATABASE 数据库名称;
当项目规模较大时,应该根据数据之间的关系,尽可能的拆分多个数据库,放在不同的服务器上,分担访问的压力。(医院,淘宝)
(集群(多服务器相同事)和分布式(多服务器做不同事))
使用数据库
ues 数据库名称
创建数据表
CREATE TABLE 数据表名称(字段) Charset 字符编码;
主流设计将数据库表的编码设计为 ——utf8mb4 :mb4 most bytes 4 能表示得到字符更多(不常用字符和表情)。 ——utf8默认是utf8mb3涉及字段时
字段名 字段类型 字段约束 comment 注释
CREATE TABLE user ( id bigint auto——increment comment '数据id', username varchar(10) unique not null comment '用户名', primary key(id))CHARSET utf8mb4 comment '用户', day_of_birth生日 gender 性别
- bigint 更大的取值范围 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807)
- varchar 65532个 表现一定语义。一般比实际规定运行输入的大一点。
- unique 唯一 不建议在数据库做约束 多在java中加约束。 一开始扼杀在要摇篮里。
- default null 默认为空。。。 一般都得为空。(区别 not null)
- primary key(id) 可写在前后
- 一行数据不允许超过65532个,
- unsigned无符号位。
- char定长 varchar不定长
关于以上设计: 自动编号的id应该是bigint unsigned类型的,以确保id够用 MySQL中的整形类型:tinyint、smallint、int、bigint 关于varchar的使用,必须设置长度,建议设置为比合理的最大值更大一些的值, 例如规则为“用户名最多16字符”,则varchar中设置的字符长度最少20 永远不要使用not null约束,任何你认为必须的字段,以后都可能不是必须的 相对固定长度的字符串类型应该使用char,而不是使用varchar 并不要求每个数据的长度完全一致 char的读取效率略高于varchar,占用的空间可能比varchar少1~2个字节 varchar 会开辟1到2两个字节空间去记录存的字符数。读取的时候会先去了解这个空间记录的数字。再根据数字去读取内容。
附:关于密码加密
在基于Maven的项目中添加以下依赖:
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency>测试
public class DigestTests { @Test public void digest() { String rawPassword = "123456" + "fdh98geljgdfskj"; String encodedPassword = DigestUtils.md5Hex(rawPassword); System.out.println("原密码:" + rawPassword); System.out.println("加密后的密码:" + encodedPassword); } }
加密工具类
DigestUtils
消息摘要
md2 md5 sha sha1 sha256 sha384 sha512