您的位置:首页 > 职场人生

数据库面试常见一些概念(2)

2018-04-07 18:55 369 查看

1:复习大纲



2:遗留概念相关解释

2.1:常用的sql语句

创建一个user表DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`account` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.2:视图的概念

 数据库通过select查询语句从多个表中提取多个表字段组成的虚表

2.3:怎么去创建一个视图

Create view <视图名>[(<列名>)]
AS<子查询>
[WITH CHECK  OPTION]
例子:Create view F_Student(F_sno,name,sex,age,dept
)
AS
Select * From Student
Where Ssex='女'2.4:JDBC数据库链接(mysql) //1:加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2:获取连接
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8", "用户名", "密码");
//3:创建statement对象
Statement st=connection.createStatement();
//4:执行SQL语句
String sql="selete * from user";
ResultSet resultSet=st.executeQuery(sql);
//5:遍历查询
while (resultSet.next()) {
String id=resultSet.getString("id");
String name=resultSet.getString("name");
}
//关闭
resultSet.close();
connection.close();

2.5:JDBC连接Oracle

public static Connection getConnection(){
Connection conn=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");//找到oracle驱动器所在的类
String url="jdbc:oracle:thin:@localhost:1521:wangzai"; //URL地址
String username="drp";
String password="drp";
conn=DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
2.6:数据库引擎MylSam和InnoDB的区别  1:mylSam不支持事务,InnoDB支持,但mySam支持全局索引,而InnoDB不支持  2:查询和添加的时候mylSam不用考虑同步锁,效率更快.
  3:Mysam不支持外键,InnoDB支持外键,但Mysam支持表锁,INnoDB支持事务(行锁)
2.7:数据库优化,分表
   1:为什么分表
      当数据达到百万级别的时候,mysql数据查询效率会变的非常底,分表能够很大程度减少这些压力
   2:水平分表
     2.1:按时间分表
       这个有较强的时效性,比如微博发送信息,这种数据用户很少去查询几个月前的数据,我们就可以按照月来进行分表
    2.2:区间范围分表
     有严格的自增ID需求上,如按照user_id水平分表:
      table_1  user_id从1~100w
     table_2  user_id从101~200w 
2.3:Hash分表

   通过一个原始目标的ID或者名称通过一定的hash算法计算出数据存储表的表名,然后访问相应的表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: