明确方向+不断努力
注释:在SQL中可以使用“- -空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
MySQL中的增删查改操作是比较重要的,尤其是【查】操作比较复杂,但是也比较重要!
【补】:
public String toUpperCase()
//该方法将字符串中的字母全部转化为大写状态,需要使用字符串类型接收,原来的字符串是不变的!
也就是说:String类型调用toUpperCase方法时,是要将该字符串的所有字母全部转化为大写,但是要有String类型进行接收,原来的String字符串是不变的。
喜欢就去争取!
insert into 表名 values (值,值…);
into可以省略,但是不建议省略,因为加上into可以更加清晰
value (值,值…):插入的值的类型和个数要和表的列的类型和个数匹配
注:【字符串可以使用单引号 or双引号(因为MySQL中没有字符类型,所以使用单引号or双引号都是ok的)】
如果输入的字符串是中文时出现错误,那就说明:对于当前数据库来说,内部存储中文是需要指定对应的编码方式的(数据库默认的字符集是“拉丁文”,不能存储中文!)
查看数据库编码方式:
use 数据库名;
show variables like ‘%char%’;
Ps.
“配置文件”:很多程序内部支持多种“模式”,可以调整当前程序,让它应用某种模式,可以通过类似“开关”来切换模式;而软件的开关通常是使用图形化界面来表示,但对于mysql等程序员专用软件则一般没有图形化界面来表示开关,而是通过一个专门的文件(配置文件)来保存这些开关;故如果程序员要修改某种模式,就需要修改该文件。
(Ps.隐藏文件:系统运行的必要文件,为了防止文件被不恰当操作导致系统无法正常工作)----找到方式(顶部 查看–勾选 隐藏的项目)
–> 找到.ini的文件并使用记事本打开编辑
【注意:在进行编辑之前一定要先进行备份!!(因为配置文件及其关键,一旦改错,mysql就启动不了;备份之后还有还原回去的余地)】–>
(so:在进行重大修改之前都要先进行备份!!-复制粘贴)
–>
(补:my.ini中#开头的都是注释; [内容]成为一个section/块; port=3306(=两侧无空格)
类似的是配置的实际内容,一般是以键值对的方式来体现的)
–> 在[mysql] no-beep 后面加上语句【default-character-set=utf】,如果直接有,就去掉前面的#即可;没有就加上(注意:一定要保证正确性,否则mysql运行不了) --> 在[mysqld]一直往后找,在【created…后面】 去掉【character-set-server=utf8】前面的# --> 改完后 ctrl+s保存文件 --> 重启mysql服务器(不是客户端)–> 在服务下,右键mysql选择 重新启动
(注意:修改完后的配置只针对在这儿之后建的库,不针对之前的库,则后续需要重新建库)
insert into 表名 (列名,列名, ...) values(值,值,...);
【多个列间使用,分割】
insert into 表名values(值,值,...),(值,值,...),(值,值,...),...;
【一个括号中代表一组值(也就是一行),这样效率更高:因为每次往数据库插入记录时并不是单纯就插入到硬盘中,还有一些额外的工作】
SQL中使用select关键字
查找语句其实是SQL中最复杂的语句
select * from 表名;
select * 操作会让服务器大规模读取存储于磁盘上的数据,服务器再把数据通过网卡写回到客户端;而如果当前存储的数据量很大,就可能会导致读磁盘和写网卡的时间过长,甚至把磁盘带宽和网卡带宽都吃满,严重时甚至会导致服务器被卡死而无法正常相应其他客户端的请求。
–> 为了反制该问题,公司里生产环境的机器,通常都是很多网卡的,一个网卡专门用来作为线上业务,一个网卡专门用于内部使用来传递大量数据。
select 列名 from 表名;
【注:查询过程中显示的内容只是一个 临时表!! 所有的查询操作对于数据库服务器磁盘上的原始数据表并不会有任何的影响】
eg. select name(列名), english+10(给该列每个字段+10)
from exam(表名);
——同样:计算只影响该临时表!
Eg. select name(列名),chinese+math+english(原来表的每条记录的对应字段之和,变成了新的表的列名以及字段) from exam(表名);
show warnings;
去查看警告信息select 表达式 [as] 别名 from 表名;】
// (as可以省略,但是不建议)
select distinct 列名 from 表名; // 对该列字段去重
eg. Select 列名1,列名2 from 表名;
selsect 列名 from 表名 order by 列名1;
//(根据列名1进行排序,输出的是列名对应的字段)
selsect 列名 from 表名 order by 列名1 desc;
selsect 列名 from 表名 order by 列名1,列名2;
(按列名1和列名2来排序,但是如果在原始数据表中列名2在前就说明其优先级更高:先按照列名2来进行排序,如果列名2相同再按照列名1排序)
7. 【注意一个关键点】:就是对于按照多个列排序的多个列要分别指定排序方法:
eg. selsect 列名 from 表名 order by 列名1 desc,列名2 desc/asc; // 不写就是默认升序
select 列名 from 表名 where 条件;
yyyy-MM-dd HH:mm:ss
一定要加引号!!limit关键字
select 列名 from 表名 limit N; // 查询前N条记录
select 列名 from 表名 limit N offset M;
// 从第M条记录开始,查询N条记录(M从0开始算)
【建议使用这种写法:
select 列名 from 表名 limit m,n;
// 从第m条记录开始,查询n条记录 】
使用 update
update 表名 set 列名=值,列名=值,... [where 条件];
(但凡是进行生产环境的操作,一定要心怀敬畏!)
【delete也是危险操作!】
delete from 表名 where 条件;
(注:代码风格要尽量统一!)