本帖最后由 南京16刘伟 于 2023-3-21 19:51 编辑
什么是数据库?
是存放数据的电子仓库。以某种方式存储百万条,上亿条数据,供多个用户访问共享。
数据库分关系型数据库和非关系型数据库
什么是关系型数据库?
依据关系模型创建的数据库,把数据保存在不同的表中,表与表存在着某些关系
什么是非关系型数据库?
非关系型数据库也叫nosql 数据库 ,全称 not only sql 。通常数据以对象的形式存储在数据库,不固定结构,例如列模型 ,键值对模型。
关系型数据库特点
1 、安全
2、保持数据的一致性
3、实现对表与表进行复杂的数据查询
非关系型数据库特点
1、效率高
2、容易扩展
3、使用更加灵活
关系型数据库有哪些
1、db2
2、oracle
3、mysql
4、sq| server
非关系型数据库有哪些
1、hbase(列模型)
2、redis(键值对模型)
3、mongodb(文档类模型)
6、数据库的安装
(1) yum install mysql → 安装数据库的客户端 (按y)
(2)yum install mysql - server → 安装数据库的服务端 (按y)
(3) rpm -qa |grep -i mysql → 查看数据库是否已安装
(4)[root@192 dcs16]# service mysqld status 查看mysql数据库状态 /ˈsɜːvɪs/
(5)[root@192 dcs16]# service mysqld start 启动数据库
(6)[root@192 dcs16]# service mysqld stop 关闭mysql 数据库
(7)[root@192 dcs16]# service mysqld restart 重启mysql数据库
(8)[root@192 dcs16]# mysql -uroot -p 登陆mysql数据库(初始登陆数据库不需要密码)
Enter password :
——u 表示用户user 的意思 root 用户
—— p 表示 password 密码的意思
mysql> exit; 退出数据库 ctrl+c 退出
(9)[root@localhost /]# mysqladmin -uroot password "123456" 修改数据库的初始密码
(10)[root@192 /]# mysql -uroot -p123456 登录mysql数据库
[root@192 /]# mysql -uroot -p
Enter password: 123456 登录数据库
(11) show databases; → 查看mysql 数据库中有哪些库(注意sql语句后面需要接分号)
(12)create database+库名
create database dcs16; → 创建一个dcs16数据库
(13)drop database dcs16; → 删除dcs16这个库
(14)use dcs16; → 进入到dcs16这个库
(15)select database(); → 查看当前在那个库
field → 字段
type → 数据类型
null → 是否为空
key → primary key 主键 唯一的
default → 默认值约束 不给新值就是用默认值
extra → 额外的备注
数据库的数据类型
数值型
int → 整型 最大存储的是 2147483647
bigint → 存储手机号 整型
float → 浮点型 float(10,2) 正数部分和小数加起来是10位, 2 表示精确 2 位小数
文本型(varchar 和char 存储的值需要加引号)
varchar
char
区别:
char(10)和varchar(10) 分别给他们‘abc’ 对于char占用三个字节,剩余的使用空格代替
但是varchar(10)只会占用三个字节。不会多用
char用空间来体现效率
varchar节省空间,效率没char高
日期型(存储的值需要加引号)
date → ‘2023-3-21’
数据库中的约束
not null → 非空约束
primary key → 主键约束 唯一的 不能重复 一个表只有一个主键 (身份证)
default → 默认值约束
auto_increment → 自增长约束,如果id不给值 则会在上一条数据id加 一 只能和主键一起使用
foreign key → 外键约束 表与表之间的约束
(17)
drop table dcs1; → 删除dcs1这个表
【修改表结构】 → alter table +表名
1、查看表结构
decs + 表名
显示字段名称,数据类型,约束,备注
desc dcs; → 查看dcs 这个表的结构 (describe)
2、修改表名
alter table +表名 rename + 新表名
alter table dcs rename dcs16; → 把dcs这个表名改为dcs16
3、修改表字段
alter table +表名 change +原字段名 +新字段名 数据类型 ,约束
alter table dcs change id sid int(10) auto_increment → 把表中id 字段改位sid 同时加上自增长
4、添加表字段 ,并放到第一个字段前
alter table +表名 add +字段名 数据类型 约束 first
alter table dcs add class int(10) first; → 给表dcs添加一个字段class 放在最前面
5、添加表字段,并放到某个字段后
alter table +表名 add +字段名 数据类型 约束 after +字段名
alter table dcs add age int(10) after id; ==》给表dcs添加字段age放在id后面
6、同时添加两个字段,默认添加到字段最后
alter table +表名 add(字段1 数据类型,字段2 数据类型)
alter table dcs add (age1 int(10),age2 int(10)); ==》同时添加两个字段 age1 age2
7、删除表字段
alter table +表名 drop + 字段
alter table dcs drop class; → 删除字段class
8、 删除表两个字段
alter table +表名 drop 字段1,drop 字段2
alter table dcs drop age1,drop age2,drop age; → 同时删除多个字段
9、修改主键id为自增长
alter table +表名 change +字段名 数据类型 auto_increment
alter table dcs change id sid int(10) auto_increment; → 把表中id字段改为sid同时加上自增长
10、删除表
drop table +表名
drop table dcs1; → 删除dcs1这个表
【对表数据库操作】
insert into 表名 【增加】
1、表中插入数据
insert into +表名 values(字段1value,字段2value,字段3value...)
单条插入
insert into dcs (id,score,name,phone,time) values(1,88.66,'xiaoduan',13966661111,'2023-3-21');
insert into dcs values (2,66.88,'xiaoduan',13566667777,'2023-3-21');
2、一次性表中插入多条数据
insert into +表名 values(字段1value,字段2value,字段3 value...),(字段1value,字段2value,字段3 value...)
多条插入数据
insert into dcs(id,score,name,phone,time)values
(3,66,'xiaoduan',13677779999,'2023-3-21'),
(4,88,'xiaoduan',13655556666,'2023-3-21'),(5,99,'xiaoduan',13866665555,'2023-3-21');
insert into dcs values(6,78,'xiaoduan',13566667777,'2023-3-21'),(7,89,'xiaoduan',13244445555,'2023-3-21');
3、对表中指定字段插入数据
insert into +表名(字段1,字段2) values(字段1值,字段2值)
指定字段插入
insert into dcs(score,name) values(68,'xiaoduan'); → 不给id值时,id自动加一,手机号使用默认值
insert into dcs (id,name) values(9,'xiaoduan'); → 不给score 值时以0补充
注意:0 不等于null 0时一个值 null 是一个空属性
【删除】 delete from 表名 where
4、删除表中指定数据
delete from +表名 where 条件
delete from dcs where id = 9; → 删除id等于9的数据
delete from dcs where id >= 6; → 删除id 大于等于6的数据
delete from dcs; → 删除全表数据
5、删除表
truncate +表名
truncate dcs; → 快速清除表中的数据,不会删除表结构
6、删除表
drop table +表名
drop talbe dcs; → 删除表数据和表结构
注意:
truncate +表名:快速删除表数据。不会删除表结构
delete from 表名 where : 按条件删除表数据 不会删除表结构
drop table 表名:删除表结构和表数据
【修改】update 表名 set 字段
更新表中指定字段数据
update + 表名 set 字段名 = 值 where 条件
update dcs set score = 100; → 把表中的score 字段的数据都改为100
update dcs set score = 99 where id = 5; → 把 id 等于5 的score 改为99
【查】slect * from dcs where
1、查询表中所有数据
select * from + 表名
“ * “代表所有
select * from dcs; → 查询 test 表所有数据
2、查询某个字段的数据
select 字段 from +表名
select id from dcs; → 查询test 表中id 字段的值
3、查询多个字段的数据
select 字段1,字段2 from +表名
select id,name,score from dcs; → 查询test表中 id name score 字段值
4、查询满足某个条件的所有数据
select * from +表名 where 字段=值
where 后面接满足的条件
select * from dcs where id = 5; → 查询id等于5的数据
5、查询不满足某个条件的所有数据
select * from +表名 where 字段!=value“!=” 代表不等于 ,也可以用符号 ”<>“ 代表不等于
select * from student where sex <>1;(select * from student where sex != 1;) 查询sex 字段不等于1的数据
创建student
/*create table stu(id int(4) primary key,age int(8),sex int(4),name varchar(20),class int(4),math int(4));
insert into stu values(1,25,1,"zhangsan",1833,90),
(2,25,1,"lisi",1833,67),(3,28,0,"xiaowang",1835,79),(4,35,1,"xiaoliu",1835,96),(5,27,0,"xiaoli",1833,86),
(6,32,1,"xiaochen",1835,48),(7,22,1,"wangwu",1834,70),(8,31,0,"xiaoqi",1825,88),
(9,27,0,"xiaoqi",1833,74),(10,27,1,"niuqi",NULL,80);
*/
|
|