目录

关键字insert

常见错误类型

指定一列插入数据

多列同时插入

插入效率问题

全列查询select *

 查看数据库字符集类型:

更改数据库字符集



  • C:create 新增
  • D:update 修改
  • R:retrieve 查询
  • D:delete 删除

进行增删查改,必须先选中数据库 

关键字insert

SQL 使用 insert 关键字来表示新增数据

每次新增都是直接新增一行(一条记录)

insert into 表名 value(列,列.....);

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗

         注意:value后面的()中的内容个数、类型必须和表的结构匹配

‘’(单引号)和“”(双引号)都可以表示字符串,因为SQL没有字符类型,只有字符串类型,这种编程语言对单双引号要求不高

常见错误类型

1、列数不匹配

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗_02

 2、列的类型不匹配

Java 数据库特殊字符需要转义吗 数据库中文字符类型_配置文件_03

 可以存中文字符的数据吗?

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗_04

指定一列插入数据

 insert除了可以插入完整的一行数据之外。还可以指定哪列插入

此时,未被指定的列,则是默认值来进行填充

 

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗_05

 指定一个列:(列名)

Java 数据库特殊字符需要转义吗 数据库中文字符类型_mysql_06

,分隔)

Java 数据库特殊字符需要转义吗 数据库中文字符类型_数据库_07

多列同时插入

 一次性插入多个行——一个sql插入多条数据

实现方法:insert 语句values后面跟多个()

每一组括号对应一行(一条记录)

Java 数据库特殊字符需要转义吗 数据库中文字符类型_数据库_08

插入效率问题

一次插入1条数据,插10次比一次性插入10条效率低

  1.  因为insert是通过网络访问的,发送请求返回网络响应都是要时间的
  2. 数据库服务器是把数据保存在硬盘上的(硬盘读取要时间)
  3. mysql关系型数据库每次进行sql操作,内部都会开启一个事务(开启事务也是要时间开销的)

全列查询select *

select是sql中最复杂的操作(变化多)

1、全列查询——查询表里的所有列

select * from 表名;

*是通配符,代表所有列

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗_09

 工作中select操作非常危险,select *数据量非常大

  • 数据从硬盘出来,通过网卡发送,数据量一大就会把硬盘IO吃满,网络带宽吃满,(工作无法正常进行)

服务器的硬件资源是有限的,把某个资源吃满,容易导致程序出现严重问题

 查看数据库字符集类型

show variables like '%character%';

Java 数据库特殊字符需要转义吗 数据库中文字符类型_数据库_10

mysql的配置文件my.ini里的默认字符集。默认字符集是拉丁文,不支持中文。

更改数据库字符集

1、删除之前的库,重新建一个指定utf-8字符集的数据库。(一定要删除数据库,妄想中途改变字符集,继续使用)

2、找到自己文件目录下mysql中的my.ini

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗_11

3、打开my.ini记事本,找到[mysql]节点,

找到default-character-set,改成default-character-set=utf8

如果是#default-character-set=utf8,把#删除(前面有#号表示注释,需要删除#)

最后保证下面的样子:

Java 数据库特殊字符需要转义吗 数据库中文字符类型_配置文件_12

 

Java 数据库特殊字符需要转义吗 数据库中文字符类型_配置文件_13

4、ctrl+s保存

5、重启mysql(让服务器重新加载配置文件)

 

Java 数据库特殊字符需要转义吗 数据库中文字符类型_配置文件_14

 

Java 数据库特殊字符需要转义吗 数据库中文字符类型_数据库_15

 6、查看

Java 数据库特殊字符需要转义吗 数据库中文字符类型_Java 数据库特殊字符需要转义吗_16

 7、使用

Java 数据库特殊字符需要转义吗 数据库中文字符类型_配置文件_17