发表于: 2019-10-24 23:39:45

1 921


编辑日报内容...

MySQL索引学习

索引分单列索引和组合索引。单列索引,即一个索引值包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

创建索引时,需要确保该索引是应用在SQL查询语句的条件(一般作为WHERE子句的条件)。

个人理解:一些常用的需要查询的条件应该添加索引。

以任务数据库来说:经常可能会查询的条件有姓名,线上学号,日报链接等,反之ID就不需要加索引。

 

普通索引

创建索引

这是最基本的索引,它没有任何限制。有以下几种创建方式:

Create index indexName on mytableusernamelength))

住:indexName是索引名称,username是字段名

 

如果是CHARVARCHAR类型,length可以小于字段实际长度;如果是BLOBTEXT类型,必须指定 length

 

举例:

1

2

3

4

5

6

7

8

9

10

CREATE TABLE employee(

    id INT,

    sname VARCHAR(50),

    age INT ,

    PASSWORD VARCHAR(50)

);

#创建索引

CREATE INDEX index_sname ON employee(sname(20)); #注意添加索引的长度必须小于建表时给字段定义的长度,也可以不给长度,如:CREATE INDEX index_sname ON employee(sname);<br>

#删除索引

DROP INDEX index_sname ON employee;

修改表结构(添加索引)

ALTER table tableName ADD INDEX indexName(columnName)
举例:

1

ALTER TABLE employee ADD INDEX  index_sname(sname);#这里可以不指定索引的长度

 

创建表的时候直接指定

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);

举例:

1

2

3

4

5

6

7

8

9

10

11

CREATE TABLE teacher( 

    id INT NOT NULL,  

    teachername VARCHAR(16) NOT NULL, 

    INDEX index_teachername(teachername(5)) 

);

 

CREATE TABLE tea( 

    id INT NOT NULL,  

    teaname VARCHAR(16) NOT NULL, 

    INDEX (teaname) 

);

删除索引的语法

DROP INDEX [indexName] ON mytable;

举例:

1

DROP INDEX index_sname ON employee;

 

实际操作:

给姓名建索引,思考一下还应该给哪些数据建索引

 

ALTER TABLE students add index index_name(name);#这里可以不指定索引的长度  

 

插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率

insert into students (name,QQ,admissionTime,University,onlineId,DailyLink,declaration,create_at)VALUES ('柴生瑞','582721701','2019年4月17日','信阳师范学院',1707,'https://www.jnshu.com/school/35937/daily','励志成为行业精英','2019-10-24')  

SELECT * from students WHERE name ='柴生瑞'  

结果:

 

因为此时的数据并不算很多,因此并没有直接的感觉到效率高低,但是理论上查询效率是更高的。

 

JDKJRE

JDKJAVA开发工具包,主要面向开发人员

JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsolejvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。

JDK是整个Java开发的核心,包括了Java运行环境,Java工具和Java基础类库。

————————————————

版权声明:本文为CSDN博主「Chen_006」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/chen_006/article/details/88656268

 

JREJava程序的运行环境,面向Java程序的使用者,而不是开发者,JRE是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)–编译器、调试器和其它工具。

 

如果电脑安装了JDK,那么不仅可以开发Java程序,也同时拥有了运行Java程序的平台

如果只安装了JRE,那么电脑只能运行Java程序,而不能从事Java开发

 

 

 

创建Maven项目

 

引入mysql-connector-java

 

 

写了JDBC连接数据库以及增删改查的代码,但是不知道正不正确,学了Junit以后测试一下。。。。。

 

User

1.   package model;  

2.     

3.   import java.util.Date;  

4.     

5.   public class User {  

6.       private int id;  

7.     

8.       private String name;  

9.     

10.     private String QQ;  

11.   

12.     private String addmissionTime;  

13.   

14.     private String University;  

15.   

16.     private int onlineId;  

17.   

18.     private String DailyLink;  

19.   

20.     private String declaration;  

21.   

22.     private Date create_at;  

23.   

24.     private Date update_at;  

UserDao接口:

1.   package dao;  

2.     

3.   import model.User;  

4.     

5.   import java.util.List;  

6.     

7.   public interface UserDao {  

8.       //添加  

9.       public void addUser(User user);  

10.   

11.     //删除  

12.     public void delUser(int id) ;  

13.   

14.     //修改  

15.     public void updateUser(User user);  

16.   

17.     //查询  

18.     public User query();  

19. }  

UserDaoImpl数据库访问的JDBC实现:

1.   package dao;  

2.     

3.   import com.sun.xml.internal.bind.v2.model.core.ID;  

4.   import model.User;  

5.     

6.   import javax.naming.Name;  

7.   import java.sql.*;  

8.   import java.util.List;  

9.     

10. public class UserDaoImpl implements UserDao {  

11.     private static final String url = "jdbc:mysql://localhost:3306/task1";  

12.   

13.     private static final String user = "root";  

14.     private static final String password = "root";  

15.   

16.     private  static Connection conn = null;  

17.     private PreparedStatement ps=null;  

18.     private ResultSet rs = null;  

19.     static {  

20.         //静态块,保证驱动只注册一次  

21.         try {  

22.             Class.forName("com.mysql.jdbc.Driver");  

23.             conn = DriverManager.getConnection(url,user,password);  

24.         } catch (Exception e) {  

25.             e.printStackTrace();  

26.         }  

27.   

28.   

29.     }  

30.   

31.     public void addUser(User user) {  

32.         String sql = "insert into students(id,name,QQ,addmissionTime,University,onlineId,DailyLink,declaration,create_at,update_at)"+  

33.         "values("+"?,?,?,?,?,?,?,?,?,CURRENT_DATE())";  

34.         try {  

35.             ps = conn.prepareStatement(sql);  

36.             ps.setInt(1,user.getId());  

37.             ps.setString(2,user.getName());  

38.             ps.setString(3,user.getAddmissionTime());  

39.             ps.setString(4,user.getDeclaration());  

40.             ps.setString(5,user.getUniversity());  

41.             ps.setInt(6,user.getOnlineId());  

42.             ps.setString(7, String.valueOf(user.getCreate_at()));  

43.             ps.setString(8, String.valueOf(user.getUpdate_at()));  

44.             ps.execute();  

45.         } catch (Exception e) {  

46.             e.printStackTrace();  

47.         }  

48.   

49.     }  

50.   

51.     public void delUser(int id) {  

52.         String sql="delete from students where id=?";  

53.         try {  

54.             ps = conn.prepareStatement(sql);  

55.             ps.setInt(1,id);  

56.             ps.execute();  

57.         } catch (SQLException e) {  

58.             e.printStackTrace();  

59.         }  

60.   

61.     }  

62.   

63.     public void updateUser(User user) {  

64.         String sql = "update students set name=?,QQ=? where id=? ";  

65.   

66.         try {  

67.             ps = conn.prepareStatement(sql);  

68.             ps.setString(1,user.getName());  

69.             ps.setString(2,user.getQQ());  

70.             ps.execute();  

71.         } catch (Exception e) {  

72.             e.printStackTrace();  

73.         }  

74.   

75.     }  

76.   

77.     public User query() {  

78.         String sql = "select * from students where id=?";  

79.         User user = new User();  

80.         try {  

81.             ps = conn.prepareStatement(sql);  

82.             ps.setInt(1, user.getId());  

83.             rs = ps.executeQuery();  

84.             while (rs.next()){  

85.                 user.setId(rs.getInt("id"));  

86.                 user.setName(rs.getString("name"));  

87.                 user.setAddmissionTime(rs.getString("addmissionTime"));  

88.                 user.setUniversity(rs.getString("University"));  

89.                 user.setOnlineId(rs.getInt("onlineId"));  

90.                 user.setDailyLink(rs.getString("DailyLink"));  

91.                 user.setDailyLink(rs.getString("declaration"));  

92.                 user.setCreate_at(rs.getDate("create_at"));  

93.                 user.setUpdate_at(rs.getDate("update_at"));  

94.             }  

95.         } catch (SQLException e) {  

96.             e.printStackTrace();  

97.         }  

98.   

99.   

100.          return user;  

101.      }  

102.  }  

 

 

今天的任务就完成了这么多

明天学Junit测试,看能不能成功。。。。

 



返回列表 返回列表
评论

    分享到