数据库基本介绍和操作

本文详细介绍了数据库的基础概念、各类数据库分类(关系型、非关系型)、SQL语言的使用、数据库连接方法,以及命令行客户端下的数据库操作、数据查询、分组和聚合功能。涵盖了MySQL、Oracle、MongoDB等常见数据库的实例和操作技巧。
摘要由CSDN通过智能技术生成

一、数据库的介绍和分类

数据库:长期存储在计算机内、有组织的数据集合

数据库的分类:

1.1 关系型数据库

以表格的形式展示

  • oracle: 大型项目使用, 比如银行、电信等
  • mysql:web项目使用最广泛
  • microsoft SQL Server:微软项目中使用
  • sqlite:轻量级数据库,主要用在移动平台

1.2 非关系型数据库

以键值对的方式展示,比如 "name":"mike","age":18

redis/ mongodb/hbase

1.3 SQL

SQL是一个结构化的查询语言,通过SQL能够对数据库进行相关操作

常见的有 select insert update delete,即增删改查

1.4 数据库的连接:

1)命令连接

前置条件:

  • 确定mysql数据库的ip地址 通过ifconfig
  • 确认mysql服务是否开启: netstat -anptu | grep 3306

命令: mysql -h数据库ip -P端口号 -u数据库登录用户名 -p数据库登录密码

-h 不加表示为 本机, -P不加表示默认3306端口

2)工具连接

通过navicat 来使用

二、命令行客户端

常见的数据库操作命令:

  • 查看所有数据库: show databases;
  • 使用数据库: use 数据库名;
  • 查看当前使用数据库: select database();
  • 创建数据库: create database 数据库名 charset =utf8;
  • 删除数据库:drop database 数据库名;

命令行操作数据库表:

前置条件: 通过use 打开对应的数据库

  • 查看当前数据库所有的表: show tables;
  • 查看表结构: desc 表名;
  • 查看表的创建语句:show create table 表名;

创建数据库语法格式:

create table 表名(

        字段名1 类型 约束,

        字段名2 类型 约束

)

create table students(

        id int unsigned primary key auto_increment, -- 无符号整型,主键,自增

        name varchar(20), -- 字段类型为字符串,长度为20

        age int unsigned, -- 无符号整型

        height decimal(5,2) -- 字段类型为小数,小数位数为2

);

删除数据库表:

  • drop table students; 删除数据库表,如果不存在会报错
  • drop table if exists students; 如果students存在删除数据库表,不存在也不报错

三、数据操作

3.1 简单查询

select * from 表名;

例子:select * from students;

3.2 添加一行数据

insert into 表名 values(...)

例子:insert into students values (0,'亚舍',22,177.56);

--主键自增长,可以用0或null代替

insert into 表名(字段1,字段2,...) values (值1,值2,...)

例子:insert into students(name) values('老夫子');

3.3 添加多行数据

方式一:写多条insert数据,多条语句之间用英文分号分隔

insert into students(id,name) values(0,'张三');

insert into students(id,name) values(0,'李四');

insert into students values(0,'李四',20,180);

方式二:通过一条 insert 语句插入所条数据,数据间用逗号分隔

-- insert into 表名 values (...),(...)...

insert into students values (0,'亚瑟',23,167.56),(0,'亚瑟3',23,158.89);

-- insert into 表名(字段名1,字段名2...) values (字段值1,字段值2,...),(字段值1,字段值2,...)...

insert into students(id,name) values (0,'小黑'),(0,'小蓝'),(null,‘小粉’);

3.4 修改数据

--update 表名 set 字段名1=值1,字段名2=值2 ... where 条件

例子: 修改id为5 的数据, 将名称设为 李想,年龄设为23

update students set name ='李想',age =23 where id = 5;

3.5 删除数据

-- delete from 表名 where 条件 (物理删除对应的数据)

delete from students where id=6;

物理删除是指在数据库中彻底删除, 逻辑删除是指通过设定一个字段来标识当前记录是否已经删除,比如 is_delete ,1 代表删除, 0代表未删除

三种删除数据的比较:

1)delete 删除所有数据时,自增长字段不会从1开始

2)truncate table students; 清除表里所有数据,但是表结构会保留, 自增长字段的值会从1开始

3)  drop table students; 删除数据表,包括数据和表结构

四、查询的基本操作

4.1 查询部分字段的值

-- select 字段名1,字段名2,... from 表名 (查询的为一部分字段的信息)

-- 查询学生表中的姓名、性别、年龄的数据

select name,sex,age from students;

4.2 取别名

1)给表取别名

-- select 别名.字段名1,别名.字段名2 ... from 表名 as 别名

select s.name,s.sex,s.age from students as s;

2)给字段取别名

-- select 字段名1 as 别名1, 字段名2 as 别名2 ... from 表名;

select name as 姓名, sex as 性别, age as 年龄 from students;

4.3 去重

--select distinct 字段名1,字段名2... from 表名;

select distinct sex from students;

五、条件查询

语法格式:

select * from students where id = 5;

5.1 比较运算符

(>) (=) (=) (或!=)

5.2 逻辑运算符

and or not

5.3 模糊查询

like 关键字

% 匹配任意个字符, _ 匹配单个字符

select * from students where name like '%小_'

5.4 范围查询

1) 查询非连续范围内的数据(in)

select * from students where hometown in ('北京','上海','广东')

2)查询连续范围内的数据(用在数值型字段中, between ... and ...)

查询年龄在18到20之间的学生

select * from students where age between 18 and 20;

5.5 条件查询:为空判断

-- 查询出学生身份证号为空的信息

select * from students where card is null;

-- 查询出学生身份证号为空的信息

select * from students where card is not null;

5.6 排序

字段的默认排序是从小到大asc

select * from 表名 order by 字段1 asc|desc,字段2 asc|des...

-- 查询所有学生信息, 按班级从小到大排序, 班级相同时,再按学号从小到大排序

select * from students order by class,studentNo;

六、分组和聚合

使用聚合函数方便统计数据

6.1 count(*) 查询总记录数

select count(*) from students

-- 统计name 下有几个记录,个数

select count(name) from students

6.2 max(字段名)

-- 查询女生的最大年龄

select max(age) from students where sex = '女';

6.3 min(字段名)

-- 查询1班的最小年龄

select min(age) from students where class = '1班';

6.4 sum(字段名) 对应字段值的总和

-- 查询北京学生的年龄总和

select sum(age) from students where hometown='北京';

6.5 avg(字段名) 查询对应字段的值平均数

-- 查询女生的平均年龄

select avg(age) from students where sex = '女';

6.6 分组查询

分组时对每一组的数据进行统计(使用聚合函数)

select 字段名1,字段名2,聚合函数 from 表名 group by 字段名1,字段名2

-- 查询各种性别的人数

select sex,count(*) from students group by sex;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值