关系型数据库:
Oracle--收费,大型公司,全称是‘甲骨文’公司,oracle 是他的一个产品
mysql --开源,免费,也是oracle公司的
sql server --微软
*(存储的格式跟我们excel表格很像,存储数据非常友好)
非关系型数据库:
hbase--大数据
Redis--key,values , 键对值,缓存型数据库
mangodb--一个键,一个值
Linux系统中安装mysql数据库:
yum install mysql--客户端
yum install mysql-server--服务端
*(入职后在公司一般只用安装服务端的)
service mysqld start--启动数据库
*(每次使用数据库前都要先启动)
mysql后面的d代表的是一个守护进程,daemon
service mysqld stop--关闭数据库
service mysqld restart--重启数据库
rpm -qa|grep -i mysql--查询是否安装了mysql数据库
service mysqld status--查询数据库的状态
mysqld (pid 5761) is running... --数据库的进程号
netstat -ntlp--查看所有进程
登录mysql数据库:
mysql -uroot -p--进入数据库的第一种方法
Enter password: 第一次装数据库,进入不需要密码
-u 代表用户user的意思,root是用户
-p 代表是密码, password的意思
*(默认 mysql 有个用户是root)
show databases; 查询mysql数据中的所有库
mysql> exit 退出数据库 (等于Ctrl + c )
mysqladmin -uroot password "123456" 设置修改数据库密码
mysql -uroot -p123456 进入mysql数据库的第二种方法
create database dcs65; 创建dcs65库
create database if not exists dcs65; 创建数据库全语法,不管数据库是否存在都不会报错
drop database dcs65; 删除dcs65库
drop database if exists dcs65; 删除dcs65,不管是否存在都不会报错
use dcs65; 切换或进入dcs65库里面
select database(); 查看当前当前已经进入到哪个数据库里面了
create table test(id int(20) primary key auto_increment,score float(20,2)not null,name varchar(20),phone bigint(20) default 15377778888,time date); 创建表格语句
desc test; 查看表结构
表结构:
Field 字段
Type 数据类型
Null 是否可以为空
key primary key 主键
Default 默认值约束
Extra 额外的备注,auto_increment 自增长约束
数据库中常用的数据类型:
int 最大的存储值为 2147483647 (最大的存储是10位)
bigint 长整型,手机号码只能用bigint 来存储
float 浮点型,score(20,2)
*(2代表是精度,保留小数点后两位)
文本型:varchar 和char存的数据需要加单引号或者双引号
varchar 字符串
char 字符,单个的字符
日期型:data存的数据需要加单引号或者双引号
data ‘2021-08-07’
数据库中常见的约束:
not null 非空约束
primary key 主键约束,里面的值是唯一的,不能重复
default 默认值约束,若不输入值,字段永远都是 15377778888
auto_increment 自增长约束,在当前的基础上+1
*(自增长约束都是配合主键约束一起使用的)
foreign key 外键约束
修改表结构:
alter table 表名 用来修改表结构
alter table test rename test1; 把test表的名字改为test1
alter table test1 change id sid int(20); 把id字段改为sid且去掉自增长
alter table test1 change sid id int(20)auto_increment; 把sid字段名改为id且增加自增长
alter table test1 add class int(20) first; 添加一个class字段放在最前面
show tables; 查询当前库中所有表格
alter table test1 add sex int(20) after id; 添加sex字段在id字段的后面
alter table test1 add(age1 int(20),age2 int(20)); 添加age1,age2到test1表格中,一次性添加两个字段
alter table test1 modify class int(20) after id; 把class字段放到id 字段的后面
alter table test1 drop sex; 删除sex字段
alter table test1 drop age1,drop age2; 删除age1,age2字段
alter table test1 change id id int(20); 不改变id字段名,去除自增长约束
alter table test1 drop primary key; 删除主键约束
(先删除自增长约束,然后再删除主键约束;如若先删除主键约束,则会报错)
alter table test1 change id id int(20) primary key auto_increment; 不改变字段名的情况下,添加主键约束和自增长约束
drop table test1; 删除表格
*面试中如若问到删除,则回答会,但是工作中一般很少用,查询用的多些
create table test(id int(20)primary key auto_increment,score float(20,2),name varchar(20),phone bigint(20) default 15377778888,time date); 创表语句
对于表中数据的操作:
* 此系列操作都是以 insert into +表名 开头
插入单个数据的第一种方法:
insert into test(id,score,name,phone,time)values(1,99,'xiaoliu',13566668888,'2021-08-07'); 有5个字段,有5个值
insert into test values(2,88,'xiaoxiao',13788889999,'2021-08-08'); 插入单个数据的第二种方法
select * from test; 查询表中所有内容
insert into test(id,score,name,phone,time)values(3,78.123,'xiaoxiao',13677770000,'2021-08-08'),(4,66,'xiao1',13578988879,'2021-08-09'); 往test表格中插入两条数据(插入多个数据的第一种方法)
insert into test values(5,67,'xiao2',13899990000,'2021-03-09'),(6,68,'xiao5',15688880000,'2021-09-09'),(7,88,'xiao6',13788999999,'2021-09-08'); 往test表格中插入3条数据(插入多个数据的第二种方法)
|
|