美文网首页
Java学习-Day07-MySQL与JDBC编程(1)

Java学习-Day07-MySQL与JDBC编程(1)

作者: Indomi | 来源:发表于2018-03-29 21:20 被阅读0次

1.JDBC基础

JDBC:Java DataBase Connectivity即Java数据库连接,一种可以执行SQL语句的Java API

可以完成
1.建立与数据库连接
2.执行SQL语句
3.获得SQL语句的执行结果

2.MySQL

  • show databases;查看包含的数据库
  • create database 数据库名;创建
  • drop database 数据库名;删除
  • use 数据库名;进入数据库
  • show tables;查看数据库下的表
  • desc 表名;查看指定数据表结构
2.1存储机制
  • MyISAM:早期默认的存储机制,对事物支持不够好
  • InnoDB:提供事务安全的存储机制,建立行级锁来保证事务完整性
  • 事务支持是Java EE最重要的特性,因此推荐使用InnoDB存储机制,MySQL默认使用

3.SQL语句

结构化查询语言,用于操作任何关系数据库,不区分大小写

标准SQL语句分为:

  • 查询语句:主要由select关键字完成
  • DML语句:主要由insert,update,delete三个关键字完成
  • DDL语句:主要由create,alter,drop,truncate四个关键字完成
  • DCL语句:主要由grant和revoke完成
  • 事务控制语句:主要由commit,rollback,savepoint完成
3.1 DDL语句
常见数据库对象
  • 最基本的数据库对象是数据表,数据表示存储数据的逻辑单元
3.1.1 创建表
create table [模式名.]表名(
  #可以有多个列定义
  test_id int,
  test_price decimal,
  #给默认值
  test_name varchar(255) default 'xxx',
  #大文本类型
  test_desc text,
  #图片
  test_img blob,
  test_date datetime
)
MySQL支持的列类型
  • 也可以使用子查询语句来建立数据表
create table hehe
as
select * user_inf;
#建立一个表hehe和user_inf表完全相同,数据也相同
3.1.2 修改表结构
#增加一个字段
alter table hehe
add hehe_id int;
#增加两个字段
alterr table hehe
add(
  aaa varchar(255) default 'xxx',
  bbb varchar(255)
);
#修改字段类型 每次只能修改一个列定义
alter table hehe
modify hehe_id varchar(255);
#删除字段
alter table hehe
drop aaa;
  • 除此之外,MySQL还提供了两种特殊的语法,重命名数据表和完全改变列定义
#重命名数据表
alter table 表名
rename to 新表名;
#重命名字段名.bbb改为aaa,数据类型为int
alter table hehe 
change bbb aaa int;
3.1.3 删除表
#删除
drop table hehe;
3.1.4 truncate表
  • truncate被称为截断某个表,作用是删除表里的全部数据,但是保留表的结构
    truncate 表名
3.2 数据库约束
  • 约束是在表上强制执行的数据校验规则,约束主要用于保证数据库里数据的完整性,除此之外,当表中数据存在相互依赖性时,可以保护相关的数据不被删除
  • 大部分数据库支持下面5种完整性约束
    • NOT NULL:非空约束,指定下面某列不能为空
    • UNIQUE:唯一约束,指定某列或者几列组合不能重复
    • PRIMARY KEY:主键,指定该列的值可以唯一地表示该条记录
    • FOREIGN KEY:外键,指定该行记录从属于主表中的一条记录,主要用于保证参照完整性
    • CHECK:检查,指定一个布尔表达式,用于指定对应列的值必须满足该表达式
  • MySQL不支持CHECK约束
3.2.1 NOT NULL约束
  • 在定义列时后面加上not null
3.2.2 UNIQUE约束
  • 用于保证指定列或者指定列组合不允许出现重复值,但是可以出现多个null(数据库中null != null)
  • 列级唯一约束在定义列后面加上unique即可
  • 表级唯一约束用法如下
create tabnle unique_test(
  test_name varchar(255),
  test_pass varchar(255),
  #使用表级约束语法建立唯一约束,指定两列组合不允许重复
  #test2_uk要求两个字段都不能出现重复值
  unique (test_name),
 constraint test2_uk unique(test_pass),
  #test3_uk要求两列值得组合不能重复
  constraint test3_uk unique(test_name,test_pass)
);

也可以在修改表结构时使用add关键字

alter table unique_test
add unique(test_name,test_pass);
3.2.3 PRIMARY KEY约束
  • 主键约束相当于非空约束和唯一约束
  • 在定义字段时后面加上primary key
3.2.4FOREIGN KEY约束
  • 用于保证一个或两个数据表之间的参照完整性,例如每天的记录是一个主表,每一天下的各种记录是子表,子表对于主表就需要外键约束
create table teacher_table(
  # auto_increment 代表数据库的自动编号策略,通常用作数据表的逻辑主键
  teacher_id int auto_increment,
  teacher_name varchar(255),
  primary key(teacher_id)
);
create table student_table(
  student_id int auto_increment primary key,
  student_name varchar(255),
  #指定java_teacher参照到teacher_table的teacher_id列
  java_teacher int references teacher_table(teacher_id)
);

相关文章

网友评论

      本文标题:Java学习-Day07-MySQL与JDBC编程(1)

      本文链接:https://www.haomeiwen.com/subject/zvmmcftx.html