SQL学习10

使用mySql的时候 javabean使用String类型 不能使用char类型

javabean使用Date类型 

如果是在mySql中的int double等为null 我们可以在java中使用Integer 或是 Double等 引用数据类型

 

使用PreparedStatement的优点 不使用Statement

①避免拼接

②避免sql注入

③处理blob类型的数据

 

查询结果元数据 java.sql.ResultSetMetaData 

① 获取

ResultSet resultSet = prepareStatement.executeQuery();

ResultSetMetaData rsmd = resultSet.getMetaData();

②获取结果的列数  getColumnCount

ResultSetMetaData rsmd = resultSet.getMetaData();

   HashMap<String, Object> map = new HashMap();

     while (resultSet.next()) {

   // 把列名的别名和列值分别取出来放到map中作为键值出现(resultSet和rsmd结合得到的就是一个表,和数据库表一样),

 // 由ResultSetMetaData得到每一列的别名,

      for (int i = 0; i < rsmd.getColumnCount(); i++) {

         String columnLabel = rsmd.getColumnLabel(i + 1);

         Object columnValue = resultSet.getObject(columnLabel);

         System.out.println("columnLabel---" + columnLabel + "   columnValue---" + columnValue);

         map.put(columnLabel, columnValue);

      }

//或者直接使用

 System.out.println(resultSet.getObject(1));

 System.out.println(resultSet.getObject(2));

}

③ 获取列的名称  getColumnLabel

删除表的某个字段

alter table table1 drop test

直接修改某个字段为外键

首先保证这个字段存在 然后再增加外键约束

ALTER TABLE orderDetailTable ADD oid integer //保证这个字段存在

ALTER TABLE orderDetailTable ADD FOREIGN KEY (oid) REFERENCES orderTable(oid)//增加外键约束

进行外键的约束 主要是为了保证数据的完整性 

修改多张表

update 表名称1,表名称2  set  表名1.字段1=新值, 表名称1.字段2 = 新值,表名称2.字段3=新值   【where 条件】;

进行增加约束 和取消约束

增加 not null 约束:

ALTER TABLE emp MODIFY sex VARCHAR(30) NOT NULL;

取消 not null 约束:

ALTER TABLE emp MODIFY sex VARCHAR(30) NULL;

添加唯一约束  不允许相同 但是允许为null

ALTER TABLE USER ADD UNIQUE(NAME,PASSWORD);

或者

ALTER TABLE USER ADD CONSTRAINT uk_name_pwd UNIQUE(NAME,PASSWORD);

删除约束

ALTER TABLE USER DROP INDEX uk_name_pwd;

主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值

添加主键约束

ALTER TABLE emp5 ADD PRIMARY KEY(NAME,pwd);

删除主键约束

ALTER TABLE emp5 DROP PRIMARY KEY;

修改主键约束

ALTER TABLE emp5 MODIFY id INT PRIMARY KEY;

FOREIGN KEY 约束

从表的外键值必须在主表中能找到或者为空。当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。还有一种就是级联删除子表数据。同一个表可以有多个外键约束

从表

CREATE TABLE emp(emp_id INT AUTO_INCREMENT PRIMARY KEY, last_name VARCHAR(15), dept_id INT, CONSTRAINT emp_dept_id_fk FOREIGN KEY(dept_id) REFERENCES dept(dept_id) );

或者多列外键组合

CREATE TABLE student(id INT AUTO_INCREMENT PRIMARY KEY, classes_name VARCHAR(20), classes_number INT, FOREIGN KEY(classes_name,classes_number) REFERENCES classes(NAME,number) );

删除外键约束

ALTER TABLE emp DROP FOREIGN KEY emp_dept_id_fk; 

增加外键约束:

ALTER TABLE emp ADD [CONSTRAINT emp_dept_id_fk] FOREIGN KEY(dept_id) REFERENCES dept(dept_id);

ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除

ON DELETE SET NULL(级联置空): 子表中相应的列置空

CREATE TABLE student(

     id INT AUTO_INCREMENT PRIMARY KEY, 

     NAME VARCHAR(20), 

     classes_name VARCHAR(20),

     classes_number INT,  

    /*表级别联合外键*/ 

     FOREIGN KEY(classes_name, classes_number)  REFERENCES classes(NAME, number) ON DELETE CASCADE);

CHECK 约束  貌似没有什么作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值