本帖最后由 南京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最大值)
|