本帖最后由 小石姐姐 于 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
|