1.为什么要学习数据库?
实现数据持久性
有专门的系统管理它
1.1数据库一些基本知识
DB 数据库,保存一组有组织数据的容器
DBMS 数据库管理系统(增删检查)
SQL结构化查询语言(几乎所有DBMS都支持SQL)
1.2数据库的特点
1.将数据放到表中,表在放在库中
2.一个数据库有多个表,每个表都有一个名字。表名具有唯一性。
3.表相当于与类
4表由列组成,也就是字段。相当于属性。
5表中的数据是按行存储的,每一行类似于“对象”。
1.3常见的数据库
关系型数据库:MySQL SQLserver Oracle
非关系型数据库:Redis,mogodb
-- 大小写不敏感
2.数据库操作语言
2.1数据类型: 参照Java的数据类型
整数:int bigint
字符串 char varchar
char:定长字符串,如char(20)表示该字段的固定长度为20,如果字符串的长度不够20.会用空字符填充最大长度2000
varchar:表长字符串如varchar(20)表示该字符串的最大长度为20,最大长度4000
小数:double浮点型,例如double(5,2)表示最多5位,其中必须有2位小数
泛型型:decimal,表示金钱方面使用该类型,不会出现精度缺失
日期:date:日期类型,格式:yyy—MM—dd
time:日期类型,格式:hh:mm:ss
timestamp:日期戳类型,yyy—MM—dd hh :mm:ss
2.2数据库的语言
DDL(数据库定义语言):表的创建,修改,查看,删除。表结构的添加,修改,删除,查看
1.创建表格式:
create table 表名(
字段名1 数据类型1,
字段名2 数据类型2
);
create table students(
id int,
name varchar(20),
score double );
-- 主键和外键
-- 主键具有唯一性
-- 主键:auto _increment表示自动增长,插入数据无须插入主键值,主键值自动生成,必须是整数类型
-- 创建stu表,字段为主键自增
create table stu(
id int primary key auto_increment,
name varchar(20),
score double );
--2.1 修改表名:alter table 原表 rename to 新表;
-- 修改 stu表为emp表
alter table stu rename to emp;
show tables;
-- 2.2修改表名2:rename table 原表 to 新表
-- 修改 stu表为emp表
alter table stu rename to emp;
show tables;
-- 3.查看当前数据库的表
show tables;
-- 4.删除表
drop table 表名;
--1 查看表结构,有多少个字段
desc students;
-- 2在表中添加列:alter table 表名 add(字段 字段数据类型);
-- 给stu表添加gender(性别)字段
alter table stu add(gender char(1));
-- 给stu表添加tel(电话)字段
alter table stu add(tel char(11));
-- 3删除stu表中的列 :alter table 表名 drop 字段;
alter table stu drop gender;
-- 4修改表中的字段名称:alter table 表名 change 原列名称 新列名称 数据类型
-- 4修改表中的字段数据类型
-- alter table 表名 modify 字段 字段数据类型
DML(数据库操作的语言):表数据的增加,删除,和修改,查询.
-- 1查询表数据:select * from 表名;
-- *:表示所有字段
-- 查看student表中的所有数据
select * from student;
-- 2插入表数据:
此语句的作用是当我们在插入一条数据时,如果此条已经存在,那么先删除原来存在的数据再添加插入的数据,如果不存在那么直接插入新的数据。注意:却分是否存在是通过主键来确定的
-- insert into 表名(字段名1,字段名2...) values(字段1值,字段2值);
-- 向student表插入一条数据
insert into student(id,name,score) value(1,'甜甜',98);
-- 一次插入多条数据
insert into student(id,name,score) values(1,'甜甜',98),(2,"诚诚",6);
-- 如果前面括号中的字段顺序调换,只要后面的值对应起来即可
insert into student(name,score,id) values('灼灼',100,3);
-- 如果表中所有的字段都需要插入数据,此时values前面的括号内容可以省略,但是value(values)后面的括号中的值一定要按照数据库中的顺序填写
insert into student value(4,'湛湛',59);
-- insert into student value('湛湛',4,59);-- 报错
-- 插入部分字段的数据
insert into student(name,score) value('攀哥',0);
-- 3删除表中的数据:delete from 表名;
delete from student;
-- 4修改表中的数据:update 表名 set 字段1名=值,字段2名=值
update student set name='蜡笔小新';
-- 指定修改某一个数据:where
-- 修改name='蜡笔小新'的分数为99分
update student set score=99 where name ='蜡笔小新';
-- 修改id为2的学生分数为199分
update student set score=199 where id=2;