找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
本帖最后由 南京1期-孙兆圣 于 2021-11-30 21:22 编辑

MySQL 数据库
数据库:存放数据的电子仓库。
关系型数据库:表和表存在某些关系。
如:
Oracle:收费软件,一般大型公司会用到,是“甲骨文”公司旗下的一款软件;
Mysql:属于开源的,免费,属于oracle旗下产品;
Sql server:微软公司开发的软件
非关系型数据库:通常数据以对象的形式存储
如:
hbase:大数据
Redis:key,values,键值对形式,缓存型数据库
Mangodb:一个键、一个值
安装数据库:
yum install:在线下载并安装
yum install mysql:下载客户端
yum install mysql -server:下载服务器
rpm -qa|grep -i mysql:查看是否安装了数据库(结果显示4行)
service mysqld start:启动数据库(每次进入数据库都要启动)
service mysqld stop:关闭数据库
service mysqld status:查询数据库状态
service mysqld restart:重启数据库
备注:mysql 后面加的“d”,代表的是一个守护进程daemon
netstat -nltp:查看所有进程
mysql -uroot -p:进入mysql数据库
-u 代表用户user的意识,root是用户
-p 代表密码password的意识
Show databases;==》查看数据库中的所有库(3个系统库不能删除)需要加“S”
mysql命令行后需要加“;”
exit ==》退出mysql数据库或者ctrl + C
mysqladmin -uroot password”123456” ==》设置数据库密码(不在数据库内输入)
mysql -uroot -p123456 ==》修改完密码后登录mysql数据库
create database dcs1; ==》创建一个新的数据库名称叫“dcs1”
drop database dcs1; ==》删除dcs1数据库
数据库密码重置:
跳过权限不输入密码进入mysql
编辑vim /etc/my.cnf,在socket=/var 下面输入 skip-grant-tables
重启数据库:service mysql restart
use dcs1; ==》进入到dcs1数据库中(database changed表示进入成功)
select database(); ==》查询当前已经进入到哪个数据库
创建一个表格:
create table test(id int(20)primary key auto_incrment,score float(20,2)not null,name varchar(20),phone bigint(20) default 18101111111,time date);
desc test; ==》查看表结构
type ==》数据类型
null ==》是否可以为空
key ==》primary key 主键
default ==》额外的备注,auto_incrment自增长约束
数据库中常见的数据类型:
数值型:
Int ==》最大的存储值2147483647(最大存储为10位)
bigint ==》手机号码都只能用来bigint来存储
float ==》score|float (20,2),2是精度,代表的是几位小数
文本型:【存储数据时需要加单引号或双引号】
Varchar ==》存放字符串,字符位数多一些
char ==》存放单字符
日期型:【存储数据时需要加单引号或双引号】
date ==》如’2021-11-30’
数据库中的常见约束:
not null ==》非空约束
primary key ==》主键约束,里面值必须是唯一的
default ==》默认值约束,若不输入值,字段永远保持默认值
auto_incement ==》自增长约束
foreign key ==》外键约束
【对于表结构的操作】
show tables; ==》查看当前库中有多少个表
alter table test rename test1; ==》把test修改名称为test1
alter table test change id sid int(20); ==》把id字段改为sid,并且去掉了自增长
alter table test change sid id int(20) auto_incrment; ==》把sid字段改为id,并且增加了自增长约束
alter table test add class int(20) first; ==》添加字段到最前面
alter table test add sex int(20) after id; ==》添加sex字段到id后面
alter table test add(age1 int(20),age2 int(20)); ==》添加两个字段,只能添加到最后面,不能添加到最前面
alter table test modify class int(20) after id; ==》把class字段调整到id字段后面
alter table test drop sex; ==》删除sex字段
alter table test drop age1,age2; ==》同时删除2个字段(age1,age2)
alter table test change id id int(20); ==》删除自增长约束,且不改变字段名称
alter table test change id id int(20)auto_increment; ==》增加自增长约束,且不改变字段名称
alter table test drop primary key; ==》删除主键约束
【对于表中数据的操作】
insert into test(id,score,name,phone,time)values(1,89.99,'xiaoliu',18611223311,'2021-11-30'); ==》单个数据插入,5个字段对应5个值

insert into test values(2,78.66,'xiaoliu1',18622332244,'2021-11-20'); ==》不指定字段,插入5个数据
select * from test; ==》查询表格内数据
insert into test(id,score,name,phone,time)values(3,66.666,'xiaoliu2',18101111111,'2021-11-29'),(4,78.89,'xiaoliu3',18101118888,'2021-11-30');==》同时插入两条数据

insert into test values(5,100,'xiaoli',default,'2021-11-30'),(6,99.99,'xiaoxue',18101111234,'2021-11-30'),(7,79.90,'xiaoyang',18101117898,'2021-11-30');==》同时插入三条数据(第二种方法插入多条数据)

备注:0不等于null,null指的是一个空的属性,0代表的是一个值
指定字段插入数据:
insert into test(id)values(8);==》单个字段插入值(id)
insert into test(score)values(11.11); ==》帮score字段插入值,因为设置了自增长约束,所以id对应字段自动加1
alter table test change phone phone int(20) not null; ==》把phone的数据类型改为int并且加上not null约束
所有手机号都改为:2147483647(为int最大值)

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册