黑马程序员技术交流社区

标题: [石家庄校区] MYSQL和JDBC知识点 [打印本页]

作者: ayangjianling    时间: 2018-5-9 15:47
标题: [石家庄校区] MYSQL和JDBC知识点
本帖最后由 小石姐姐 于 2018-5-11 09:46 编辑

MYSQL

常见的关系型数据库
MySQL
Oracle
SQLServer
DB2
SyBase
连接数据库
MySQL -u  root -p   默认连接本地服务器  省略了俩个参数
-h:hostname
-p:port                           

sql的分类(面试)
DDL   数据定义语言:create,alter,drop,truncate
DML  数据操纵语言:insert ,update,delete
DCL  数据控制语言: if
DQL  数据查询语言:select
sql对表的cru1.创建表:
create table 表名(
    字段名  字段类型(长度)约束,
    字段名  字段类型(长度)约束,
    字段名  字段类型(长度)约束

};
字段类型:        char/String       char/varchar      
date               date/time/datetime/timestamp约束:        主键约束   primary key        
唯一约束   unique        
非空约束   not null
2.修改表结构
##添加字段alter table 表名  add 字段名  字段类型(长度)约束;##修改现有字段的类型或者长度alter table 表名  modify  字段名 字段的类型(长度) 约束
sql对表记录的crud
1.插入数据


insert into 表名 (字段1,字段2 ,。。。。。) values (值1,值2,。。。。。);


insert into 表名 values(。。。)  值的顺序要跟表的字段顺序要一致,不能少
2.修改数据
带条件的修改
update 表名 set 字段名=旧的值,字段名=新的值 where 条件  如果要修改多个字段,最后一个字段跟where之间是没有逗号的
3.删除数据
带条件的删除

delete from 表名 wherer 条件
4.查询
整体的规则:

select 字段 from 表名  where 条件  group by 字段 having  order by
字段模糊查询:like两个占位符:_,% 谭%:以谭开头 %谭;以谭结尾 %谭%:只要包含谭就可以了
范围:in 条件的并列:and or not  
聚合函数:
sum:求和 count:统计个数
多表

多表的设计原则
一对多:多的一方设置一个关联字段,跟一这一方的主键相对应,是否设置成真正的外键看业务需求
多对多:建立中间表,中间表中有两个关联字段分别关联两个表的主键字段,是否设置成真正的外键看业务需求
多表查询内连接:
隐式的内连接
select * from tab1,tab2 where 关联条件
左外连接

select * from tab1 left join tab2 on 关联条件
右外连接
select * from tab1 right join tab2 on 关联条件



JDBC

step1   :注册驱动:Class.forName()
step2   :获得连接:Connection conn = DriverManger.getConnection(url,username,password)// Connection java.sql包下的
step3  :编写SQL语句,String sql ="",以前的值的地方用占位符代替  ?就是占位符
step4  :预编译sql并且获得可执行sql语句的对象PreparedStatement ps = conn.prepareStatemet(String sql)
step5  : 为sql语句设置值,用值代替sql语句中的?   ps.setXXX(int n,值) n:代表第几个问号的意思,n从1开始
step6     :执行sql语句      
如果是查询:ResutSet rs = ps.executeQuery();
遍历结果集:        while(rs.next()){              

              rs.getXXX(String columnName)/rs.getObject(String columnName) //columnName默认是表地段名,如果取了别名,用别名      
                      }
如果是增删改:int num = ps.executeUpdate() ;// num 代表影响的行数
step7:释放资源
工具类的抽取:Properties对象的使用

Properties prop = new Properties();//创建对象
prop.load(new FileInputStream(String path));//加载赋值
prop.getProperty(String key)

属性文件:.properties
key=value
aaa=adfadf
bbb=dafda




















欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2