MySQL数据库——表


创建表的语句
create table name (
name type default 约束 comment ,
name type default 约束 comment ,



)

name:字段名

  • 一般情况下,如果有多个单词构成,用下划线间隔

type:类型

  • int :整数类型
  • double(5,2) :长度为5位保留2位小数
  • char :长度不变 UUID 手机号 身份证号
  • varchar :长度不确定 姓名
  • blob :电影,图片
  • clob :小说

default:默认值

  • 添加数据的时候如果不指定值,则使用默认值

comment :设置注释

  • 为字段设置相关的注释,用于解释说明字段作用

约束:

  • 主键:不重复且不为null
  • unique:不重复,但可以多个null
  • not null
  • 外键:foreign key(name) references table_name(name)——保证数据完整性,不会产生无用的垃圾数据
  • check:MySQL数据不支持

主键约束(不重复且不为null):primary key

1.创建一个表

创建一个test表表中字段id,设置为主键约束

#创建一个test表
create table test(
# 字段id设置为主键约束
id int(11) primary key,
user_name varchar(12) unique,
password varchar(15) not null
)

创建的表

2.插入数据

向test表中的插入三条数据,id不为null且不重复

#向test表中插入三条数据
insert into test (id,user_name,password) values (1,'admin','123')
insert into test (id,user_name,password) values (2,'zhangsan','abc')
insert into test (id,user_name,password) values (3,'lisi','123456')

插入成功
插入数据后的表

3.主键约束字段插入重复数据

向表中插入重复的id

#表中已经存在一个id=2的数据
insert into test (id,user_name,password) values (2,'wangwu','111')

报错

insert into test (id,user_name,password) values (2,'wangwu','111')
> 1062 - Duplicate entry '2' for key 'PRIMARY'
> 时间: 0.001s

数据库中并没有成功插入数据
插入数据失败

4.主键约束字段插入null
# 向表中插入id=null的数据
insert into test (id,user_name,password) values (null,'zhaoliu','2222')

报错

insert into test (id,user_name,password) values (null,'zhaoliu','2222')
> 1048 - Column 'id' cannot be null
> 时间: 0.001s

数据库中没有成功插入数据
插入id=null时无法插入成功

外键约束

  • foreign key(name) references table_name(name)——保证数据完整性,不会产生无用的垃圾数据

unique

不重复,但可以多个null
使用前面创建的test表

  • 由于user_name的约束位unique,所以如果这里如果插入的数据的user_name相同,则只能插入第一条数据。
insert into test (id,user_name,password) values (4444,'admin','admin')

报错

insert into test (id,user_name,password) values (4444,'admin','admin')
> 1062 - Duplicate entry 'admin' for key 'user_name'
> 时间: 0.022s
  • 这里可以插入多个user_name为null的数据
insert into test (id,user_name,password) values (555,null,'123456')
insert into test (id,user_name,password) values (666,null,'123456')
insert into test (id,user_name,password) values (777,null,'123456')

结果
插入成功

not null

数据不能为null
使用前面创建的test表

  • 插入数据
insert into test (id,user_name,password) values (999,'Jim',null)

报错

insert into test (id,user_name,password) values (999,'Jim',null)
> 1048 - Column 'password' cannot be null
> 时间: 0.001s

check

  • MySQL数据不支持

注意

这里需要注意 关键字:null , 字符串:‘null’, 空字符串:’’, 空格字符串:’ '他们之间的区别

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽量回答你的问题。关于Java连接MySQL数据库实现登录注册功能,以下是一个简单的实现步骤: 1.下载并安装MySQL数据库,安装完成后,创建一个名为“test”的数据库。 2.下载并安装JDBC驱动程序,将下载的JDBC驱动程序的jar包添到项目的classpath中。 3.编写Java代码,实例化JDBC驱动程序,连接MySQL数据库,创建用户,实现用户的注册和登录功能。 以下是一个简单的Java代码示例: ``` import java.sql.*; public class JdbcTest { public static void main(String[] args) { // 数据库连接信息 String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"; String username = "root"; String password = "123456"; // 注册JDBC驱动程序 try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("找不到JDBC驱动程序!"); e.printStackTrace(); return; } // 连接MySQL数据库 Connection conn = null; try { conn = DriverManager.getConnection(url, username, password); } catch (SQLException e) { System.out.println("连接MySQL数据库失败!"); e.printStackTrace(); return; } // 创建用户 Statement stmt = null; try { stmt = conn.createStatement(); String sql = "create table if not exists user(id int primary key auto_increment, username varchar(50) not null, password varchar(50) not null)"; stmt.executeUpdate(sql); } catch (SQLException e) { System.out.println("创建用户失败!"); e.printStackTrace(); return; } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 用户注册 PreparedStatement pstmt = null; try { String sql = "insert into user(username, password) values (?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); pstmt.setString(2, "123456"); pstmt.executeUpdate(); } catch (SQLException e) { System.out.println("用户注册失败!"); e.printStackTrace(); return; } finally { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 用户登录 ResultSet rs = null; try { String sql = "select * from user where username=? and password=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); pstmt.setString(2, "123456"); rs = pstmt.executeQuery(); if (rs.next()) { System.out.println("用户登录成功!"); } else { System.out.println("用户名或密码错误!"); } } catch (SQLException e) { System.out.println("用户登录失败!"); e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 关闭数据库连接 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们先注册了JDBC驱动程序,然后连接了MySQL数据库,接着创建了一个名为“user”的用户,实现了用户的注册和登录功能。你可以根据自己的需求修改代码中的数据库连接信息和SQL语句

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值