从零开始的Java再学习-DAY13

MYSQL

1.概述

1.数据库是所有软件体系中最核心的存在;

2.数据库分为关系型和非关系型;

3.关系型数据库有MySql,Oracle,Sql Server,DB2,SQLlite。通过表和表之间,行和列之间的关系进行数据的存储;

4.非关系型数据库有Redis,MongDB。通过对象自身属性来决定存储;

5.DBMS:数据库管理系统,用于科学有效的管理数据;

2.MYSQL命令行

1.所有cmd命令操作数据库都必须以分号结尾

2.链接数据库:mysql -uroot -p密码;

3.刷新权限:flush privileges;

4.关闭开启数据库:net stop/start mysql;

5.查看所有数据库/表:show databases/tables;

6.切换数据库:use 数据库名;

7.查看表信息:desc 表名;

8.创建数据表:create database 数据库名;

3.数据库语言

1.分为DDL(定义语言),DML(操作语言),DQL(查询语言),DCL(控制语言);

2.SQL语句不区分大小写;

4.数据库列类型

1.数值:tinyint(1B),smallint(2B),mediumint(3B),int(4B),bigint(8B),float(4B),double(8B),decimal(字符串浮点数,多用于金融,防止精度丢失);

2.字符串:char(字符串固定0-255),varchar(可变字符串0-65535),tinytext(28-1),text(216-1);

3.时间日期:data(YYYY-MM-DD),time(HH:mm:ss),datetime(YYYY-MM-DD HH:mm:ss),timestamp(时间戳,1970.1.1到现在的毫秒数);

4.空值:null,尽量少用null运算;

5.数字:number(总位数,小数位数);

5.数据库字段属性

1.Unsigned:声明该列不能为负数,都为无符号的整数;

2.zerofill:不足的位数用0填充(例如003);

3.AUTO_INCREMENT:自动增长,加1操作;

4.NULL/not null:允许为空和不能为空;

5.default:设置默认值;

6.comment’ ':着重号内写注释;

7.primary key:主键,唯一值;

6.数据表类型

1.数据引擎:InnoDB,MYISAM。InnoDB支持事务,数据行锁定,外键约束,不支持全文索引,MYISAM和InnoDB反之。InnoDB是现在的流行引擎,因为它比MYISAM更安全,而MYISAM的表占空间更少;

2.charset=utf8:支持中文格式;

7.DDL

1.create table 名(字段):创建表;

2.desc 表名:查看表信息;

3.rename 旧名 to 新名:修改表名;

4.alter table 名 add(字段):添加新字段到现有表中;

5.alter table 名 modify(字段):修改现有表的现有字段,注意类型修改应该小改大,避免大改小;

6.alter table 名 change(字段):修改现有表中的现有字段名;

7.alter table 名 drop(字段):删除现有表的现有字段;

8.drop table 表名:删除表;

8.DML*

1.insert into 表名(字段)values(值):插入字段和对应的值,多个插入用逗号隔开;

INSERT INTO text_1
VALUES (3,'week');

2.update 表名 set 字段=新值 where 筛选条件,多个修改用逗号隔开,条件用到不等于是用<>表示,闭合区间用between,多个条件用and或or连接,非为not;

UPDATE `employee`
SET employeename='超人'
WHERE employeeid=17

3.delete from 表名 where 筛选条件:删除符合条件的字段,若无条件则删除整个表;

DELETE FROM text_1
WHERE NAME='week';

4.truncate:完全清空数据库表,表结构和索引约束不变,与delete不同的是会重置自增列归零,且不影响事务;

9.DQL*

1.数据库最频繁的操作就是查找操作,因此DQL是最重要的操作;

2.select 查询字段 from 表名 where 筛选条件:查询多个字段用逗号隔开,字段在不同的表命名一致时可通过表.字段区分,若查询的值大部分重复可通过在select后面添加distinct来去重(即重复数据只显示一个);

SELECT id FROM text_1
WHERE NAME='dhdh';

3.select 100-1 as 结果:该操作可用来计算,100也可换作字段,而as该关键字也可用作字段别名,即select id as ‘ 别名’ from a;

4.select VERSION():查询系统版本;

5.select @@auto_increment_increment:查询自增步长;

6.DQL的扩展:select 字段 from 表名
where 条件,
group by 结果按哪几个字段分组,
having 过滤分组的记录必须满足的次要条件,
order by 指定查询记录按一个或多个条件排序,
limit 指定查询记录从哪条到哪条;(第二段开始皆为可选,且顺序不能改变)

10.where条件子句

1.作用为检索数据中符合条件的值,条件有一个或多个表达式组成,结果为布尔值;

2.a like b:a相同与b(类似正则表达)则为真,刘%为刘开头(多个字段),刘_为刘开头(一个字段)的两个字;

3.a in(b,…,z):a在b…z中的某个值中为真;

11.联表查询

1.联表关键字:join;

2.简单联表例子:select a.name,b,a字段,a字段 from a inner(right/left) join b on a.name=b.name:通过两表相同的字段进行连接。inner表示如果表中至少有一个匹配就返回值,right表示即使左表没有匹配也返回右边所有值,left反之。;

3.区分表是左还是右看先后顺序,先为左,因为a join b中从物理观感上来说a就是在左边,b在右边;

4.自连接:一张表拆为两张一样的表来连接;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值