数据库入门

2阶段-------------------------------------------------------------------------------------数据库

什么是数据库?

简而言之,就是存储数据,管理数据的仓库。

常见的数据库分为:

关系型数据库, Oracle、MySQL、SQLServer、Access 非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、HBase

Mysql数据库

1.mysql服务端,它来处理具体数据维护,保存磁盘

2.mysql客户端,CRUD新增,修改,删除,查询

注意:SQL不区分大小写

default character set utf8;---------------设置成utf8格式

增删改查

建库

创建数据库,数据库名称:cgb2108

create database cgb2108 default character set utf8;

删库

删除名称是cgb2108的数据库

drop database cgb2108;

查库

查看所有数据库

show databases;

表的常用操作

:使用库

use cgb2108;

创建表

创建student表,有id,name,tel字段

create table student(
id int primary key auto_increment,
name varchar(100),
tel varchar(50)
);

修改表 ⭕

#添加列 学生表里添加age列
alter table student add column age varchar(10); 

删除表

#删除名称是student的表
drop table student;

查看所有表

show tables;

查看表结构/表设计

#查看student表结构
 desc student;

表记录的常用操作

插入记录

#向student表中插入2条记录
insert into student values(1,'阿名');
insert into student values(2,'阿明');

查看记录

#查询student表中的所有记录
select * from student;

修改记录

#修改student表中id为1的记录(age修改成2)
update student set age=2 where id=1

删除记录

#删除student中id为2的数据
delete from student where id=2

排序

#将student表记录按照tel排序
select * from student order by tel #正序
select * from student order by tel desc;#排倒序

记录总数

#查询student表中的总记录数
select count(1) from student;
select count(*) from student;

数据类型

命名规则

  1. 字段名必须以字母开头,尽量不要使用拼音

  2. 长度不能超过30个字符(不同数据库,不同版本会有不同)

  3. 不能使用SQL的保留字,如where,order,group

  4. 只能使用如下字符az、AZ、0~9、$ 等

  5. Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name

  6. 多个单词用下划线隔开,而非java语言的驼峰规则

    字符

    • char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间

    • varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2

    • 大文本: 大量文字(不推荐使用,尽量使用varchar替代)

    • utf8编码计算的话,一个汉字在u8下占3个字节

    • 注:不同数据库版本长度限制可能会有不同

数字:

1.tinyint,int整数类型

2.float,double小数类型

3.numeric(5,2) decimal(5,2)----也可以表示小数,表示总共5位,其中可以有两位小数

4.decimalnumeric表示精确的整数数字

日期

  • date包含年月日

  • time时分秒

  • datetime包含年月日和时分秒

  • timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数

图片

blob 二进制数据,可以存放图片、声音,容量4g.早期有这样的设计但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。

添加数据

部门表dept

字段名称 数据类型 是否为空 备注
deptno int 编号,主键
dname varcahr(20) yes 部门名
loc varchar(10) yes 部门地点
create table dept(
deptno int primary key auto_increment,
dname varchar(20),
loc varchar(10)
);
insert into dept values(null,'cgb','一班');
insert into dept values(null,'jsd','二班');
insert into dept values(null,'ccb','三班');

员工表emp

字段名称 数据类型 是否为空 备注
empno int 员工编号,PK主键
ename varchar(10) Y 员工名称
job varchar(10) Y 职位
mgr int Y 上级编号
hiredate datetime Y 入职时间
sal double 月工资
comm NUMERIC(8,2) Y 奖金
deptno int Y 所属部门 FK外键

create table emp(
empno int primary key auto_increment,
ename varchar(10),
job varchar(10) unique,
mgr int,
hiredate datetime,
sal double not null,
comm NUMERIC(8,2),
deptno int
);
insert into emp values(null,'jack','经理','null','2002-05-01',99888,null,1);
insert into emp values(null,'tony','总监',100,'2011-01-01',10000,2000,2);
insert into emp values(null,'haha','经理',200,'2012-02-02',8000,1000,2);
insert into emp values(null,'lao','员工',300,'2013-03-03',3000,200.12,2);
insert into emp values(null,'liu','员工',300,'2014-04-04',3500,200.58,2);

字段约束

主键约束

#主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。
#主键自增 当主键为数值类型时,为了方便维护,可以设置主键自增
create table abc(
id int primary key auto_increment
);
insert into abc values(null);
insert into abc values(null);
insert into abc values(null);
select * from abc;

非空约束

#非空约束:如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复
create table user(
id int primary key auto_increment,
password varchar(50) not null
);
show tables;
insert into user values(null,null);#不符合非空约束
insert into user values(null,123;);#OK

唯一约束

#唯一约束:如果为一
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值