数据库设计的一般范式

1、数据库表设计的几种情况

/*
数据库设计:
    1、一对一
        添加唯一外键指向另一张表的主键
    2、一对多
        多的一方设置外键指向一的一方主键
    3、多对多
        借助第三张表来实现关联,第三张表分别设置2个字段设置外键分别指向两张表的主键,并且设置为联合主键
*/
/*
    旅游分类:categary
    旅游线路:line
    用户:user
    旅游分类(一) --- 旅游线路(多)
    用户(多) --- 旅游线路(多)
*/

-- 用户表:id, username, gender, age,主键id,自[......]

继续阅读

MySQ中事务的基本概念

/*** 事务 ***/
# 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。
# 默认情况下单条sql语句都是自动提交事务
# 操作:
#      1、开启事务:start transaction
#      2、回滚:rollback
#      3、提交:commit
# MySQL事务默认的提交方式是自动提交,即每条SQL语句都是一个事务
# 查看提交方式 select @@autocommit
SELECT @@autocommit; 

# 事务四大特征
#      1、原子性:不可分割的最小单元,要么同时成功,要么同时失败
#[......]

继续阅读

常用的SQL语句汇总

1、DDL: 数据定义语句,操作库或表

## 库操作
SHOW DATABASES;-- 查看数据库

CREATE DATABASE db;-- 创建数据库

USE db;-- 使用/切换数据库

SELECT DATABASE ();-- 查看当前数据库

DROP DATABASE db;-- 删除数据库

## 表操作
USE db1;-- 切换数据库

SHOW TABLES;-- 查看所有表

CREATE TABLE t_demo (-- 创建数据库
    id INT PRIMARY KEY auto_increment,-- 指定该字段为主键,自增长
    username VARCHAR (32),-- 字符长度为32个字节
    update_time TIMESTAMP-- 时间戳类型,为空则自动填充为当前时间
) CHARACTER SET utf8mb4;-- 指定字符集的utf8mb4

CREATE TABLE t_demo_copy LIKE t_demo;-- 复制表

SHOW CREATE TABLE t_demo;-- 查看字符集或创建表语句

DESC t_demo;-- 查看表字段信息

ALTER TABLE t_demo ADD sex VARCHAR (3) AFTER username;-- 新增字段,after用于指定新字段位置

ALTER TABLE t_demo CHANGE sex gender VARCHAR (3);-- 修改某个字段的属性(名称、数据类型、字符集等)

ALTER TABLE t_demo MODIFY gender VARCHAR (3) DEFAULT '男';-- modify也可以用来修改字段属性

ALTER TABLE t_demo DROP gender;-- 删除某个字段

TRUNCATE TABLE t_demo;-- 清空整个表的数据

DROP TABLE t_demo_copy;-- 删除表

[……]

继续阅读

注解、反射、文件IO流的综合应用

  • 准备一个简单的注解
    package com.yusian.annotation;
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    /**
    * 创建一个简单的注解SACheck
    * 该注解只能应用在方法上
    * 注解保留到运行时
    * 没有属性,只做标记用
    */
    @Target(ElementType.METHOD)
    @R[......]

    继续阅读