MySQL和JDBC

重要概念

https://blog.csdn.net/jmx_bigdata/article/details/88873268

索引

索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。

MYSQL的索引主要分为主键索引(PRIMARY KEY),唯一索引(UNIQUE) ,普通索引(INDEX)和全文索引(FULLTEXT) 。

主键索引:
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候指定了主键,就会创建主键索引, CREATE INDEX不能用来创建主键索引,使用 ALTER TABLE来代替。

唯一索引:
与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须一。

普通索引:
这是最基本的索引,它没有任何限制。

全文索引:
FULLTEXT索引用于全文搜索。只有InnoDB和 MyISAM存储引擎支持 FULLTEXT索引和仅适用于 CHAR, VARCHAR和 TEXT列。

常用SQL语句:此处表名为yichuang

//查找所有:
select * from  yichuang

//条件查询:
select * from yichuang where userID=“xxx”

//模糊查询:

select * from yichuang where userID like '%123456%'

//分页查询(查0-3条记录)
SELECT * FROM product LIMIT 0,3;


//插入数据1insert into yichuang (userID,userName,VIP,registTime)  values(?,?,?,?)

//插入数据2:(必须和表一一对应)
insert into yichuang  values(?,?,?,?)


//删除语句
DELETE FROM runoob_tbl WHERE runoob_id=3;


//更新数据

UPDATE "+ TABLE_NAME+" set dev_enable=?  where dev_id=?";

//查询总和
https://blog.csdn.net/haibo0668/article/details/79133858


//时间大小比较:
select * from xy_user where DATE_FORMAT(vip_end_time,'%Y-%m-%d %H:%i:%s') > '2021-10-10 13:00:00'

两种

第一种:INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);
第二种:INSERT INTO table_name
VALUES (value1, value2, value3, …);

完整教程:

https://www.runoob.com/mysql/mysql-install.html

下载和安装MySQL

https://www.runoob.com/w3cnote/windows10-mysql-installer.html

安装可视化数据库软件:SQLyog

https://www.cnblogs.com/xiaoran991/p/12375562.html
出现2058错误时,
解决方法:windows 下cmd 登录 mysql -u root -p 登录你的 mysql 数据库,然后执行这条SQL:

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;(注意分号)

password 是你自己设置的root密码;

然后在重新配置SQLyog的连接,则可连接成功了,就OK了。

打开SQLyog连接数据库,新建表,新建字段

JDBC封装

https://blog.csdn.net/qq_40833790/article/details/92164828

插入语句:


        String sql="insert into yichuang (userID,userName,VIP,registTime)  values(?,?,?,?)";
        int executeUpdate = CRUDTemplate.executeUpdate(sql, "新用户", "新名称", true, "新时间");
        System.out.println("插入结果11:"+executeUpdate);
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        out.println("插入结果11:"+executeUpdate);

查询语句


        String sql="select * from yichuang";

        List<UserBean> userBeanList = CRUDTemplate.executeQuery(sql, new BeanListHandler<>(UserBean.class));

        String toJson = new Gson().toJson(userBeanList);

        System.out.println("查询结果11:"+toJson);
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");

        PrintWriter out = response.getWriter();
        out.println("查询结果11 serch result:"+toJson);

Mac 安装MySQL

https://www.jianshu.com/p/199492627ccc

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘alijiahua168*’);

Mac版可视化工具:Navicat_Premium