数据库基础

数据库基础

一、DataGrip软件的使用

1.基础配置
  • 修改背景颜色:Appearance -> Theme
  • 修改字体大小: 搜索font -> Font
  • 修改SQL语句的大小写: Editor -> Code Style -> SQL -> MySQL
2.软件界面说明

DataGrip软件界面包含:菜单栏、数据文件、工作区、脚本文件、处理结果等区域。

3.常见的实用操作

DataGrip软件的使用操作包含:刷新信息、关闭快捷提示、显示近期需使用的数据库名、运行SQL语句、创建一个新的SQL语句。

4.常用的快捷键
快捷名称含义
Ctrl + /单行注释
Ctrl + D快速复制一行。
Ctrl + V快速删除一行。
Ctrl + Alt + L快速格式化代码。

二、数据库操作【DDL】

1.创建数据库

语法:

create database [其他] 数据库名 [设置编码格式]
# 说明:使用[]的内容表示可选选项
2.查看数据库

语法:

-- 查看有哪些数据库
SHOW DATABASES;
-- 查看数据库的创建语句
SHOW CREATE DATABASE 数据库名;
3.删除数据库
DROP DATABASE 数据库名称;
-- 注意:当使用SQL命令删除数据库时,一定要慎重。
4.其他操作命令

需要切换使用另一个数据库时,命令:

USE 数据库名;

查看当前正在使用的数据库,命令:

SELECT DATABASE();
-- 注意:在MySQL中,不允许出现同名的数据库名。

三、数据类型

1.字段类型

在MySQL数据库中,常用的字段类型如下:[数据类型]

  1. 整数:int
  2. 小数:double, 注意:在编程开发中,一般把小数称为浮点数;
  3. 字符串:varchar
  4. 时间日期:date,datetime
2.整数

整数的类型有:

类型类型名称说明字节大小
tinyint很小的整数-128~1271
smallint小的整数-32768~327672
mediumint中等大小的整数-8388608~83886073
int普通大小的整数-2147483648~21474836474
bigint大整形的整数-19223372036854775808~92233720368547758078
3.浮点数

浮点数类型有:

类型类型名称
float单精度浮点数
double双精度浮点数
decimal(m,d)定点数,m表示整数的总长度,d表示小数长度
4.字符串
类型说明使用场景
char[(m)]固定长度,小型数据,m为0~255之间的整数定长(固定长度)身份证号、手机号、电话
varchar(m)可变长度,小型数据,m为0~65535之间的整形变长(变化长度)密码、姓名、地址、品牌、型号
text可变长度,字符个数大于4000,允许长度0~65535字节。小型文章、技术博客、新闻正文
mediumtext可变长度,中型文本数据,允许长度0~167772150字节。中型文本数据,例如论文内容
longtext可变长度,极大型文本数据,允许长度0~4294967295字节。极大型文本数据,例如一本小数内容

char与varchar的区别:

固定长度使用char(长度),可变长度使用varchar(长度)。

5.时间日期
类型类型名称实例
yearYYY 1901~21552017
timeHH:MM:SS -838:59:59~838:59:5912:29:59
dateYYYY-MM-DD 1000-01-01~9999-12-32020-01-01
datetimeYYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~9999-12-31 23:59:592020-01-01 12:29:59
timestampYYYY-MM-DD HH:MM:SS 19700101 00:00:01 UTC~2028-01-19 03:14:07UTC1970-01-01 00:00:01 UTC~2038-01-01 00:00:01 UTC
其他类型

图片、音频、视频

注意:对于图片、音频、视频等文件,由于文件本身容量大、占用存储空间。因此,一般是在表中,存储这个文件的保存路径。

五、数据表操作【DDL】

数据表操作命令有:
# 创建数据表:
CREATE TABLE 表名(
	字段名1 数据类型(长度) [约束]
    字段名2 数据类型(长度) [约束]
    字段名3 数据类型(长度) [约束]
);
# 查看有哪些数据表:
SHOW TABLES;
# 查看数据表的创建语句
SHOW CREATE TABLE 表名;
# 查看表结构
DESC 表名;
# 删除数据表语法:
DROP TABLE 表名;

六、修改数据表【DDL】

1.添加一列
ALTER TABLE 表名 ADD 字段名 类型(长度);
ALTER TABLE 表名 ADD 字段名 类型(长度) [FIRST|ALTER 其他字段名称];
# FIRST:把新添加的字段放在第一位
# AFTER 其他字段名称:把新添加的字段放在指定字段的后面
2.修改列类型
ALTER TABLE 表名 MODIFY 要修改的字段名 类型(长度);
ALTER TABLE 表名 MODIFY 要修改的字段名 类型(长度) [约束];  # 不为空
3.修改列名
  • 修改列明,指的是:给数据表的列明进行修改处理。
  • 语法:
alter table 表名 change 旧列名 新列名 类型(长度) [约束];
4.删除一列
  • 删除一列,指的是:删除数据表的一列字段。
  • 语法:
alter table 表名 drop 列名;
5.修改表名
  • 修改表名,指的是修改数据表的名称。
  • 语法:
rename table 表名 to 新表名;

七、 插入数据【增】

1. 数据操作命令含义
  • 数据操作语言DML语法结构

    • 插入(insert)数据,常见语法:
    insert into 表名(字段名1,字段名2,字段名3,...) values(值1,值2,值3,...)
    
    • 修改(update)数据,常见语法:
    update 表名 set 字段名1=值,字段名2=值,字段名3=值,... where 条件;
    
    • 删除(delete)数据,常见语法:
    delete from 表名 where 条件;
    
2.插入一条数据
  • 给数据表中插入一条数据,语法:
insert into 表名 values(值1,值2,...);
insert into 表名(字段名1,字段名2,字段名3,...) values(值1,值2,值3,...);
  • 说明:
    • 给字符串类型的字段插入值时,要使用单引号把值引起来,否则添加数据会报错
    • 表名后字段个数与类型等,要与values后的值对应
3.插入多条数据
  • 给数据表中插入多条数据,语法:
insert into 表名 [(字段名1,字段名2,字段名3,...)] values(值1,值2,值3,...),(值1,值2,值3,...);
  • 说明:
    • 多条数据之间使用,分割。
4.主键约束与自动增长
  • 给字段添加主键约束与自动增长的语法:
create table 表名(
	字段名 数据类型[(长度)] primary key auto_increment,
	...
);

  • 说明:
    • 可以不给字段添加值,会默认有值。

八、修改数据【改】

1.修改所有数据
  • 给数据表修改所有数据的语法:
update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3,...;

  • 说明:
    • 当数据更新时,如果不指定条件,则会把这个数据表的所有数据记录全部跟新。
2.按条件修改数据
  • 给数据表条件修改数据的语法:
update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3,... where 条件;

  • 说明:
    • 当满足条件时,数据会被修改。

九、删除数据【删】

1.删除所有数据
  • 删除所有数据的语法:
delete from 表名;

  • 说明:
    • 不加条件时,会删除所有数据内容。
2.按条件删除数据
  • 按条件删除数据的语法:
delete form 表名 where 条件;

  • 说明:
    • 当满足条件时,数据会被删除。
3.清空数据的区别
  • 清空数据有两种方式:
# 删除数据表数据
delete from 表名;
# 销毁及删除数据表数据
truncate 表名;

  • 说明:

    • 两种方式都可以用于清空数据内容。
  • delete和truncate删除表的区别:

    delete fromtruncate
    属于那种语言分类?数据操作语言(DML)数据定义语言(DDL)
    是否可设置条件删除?可以带条件删除不能带条件删除
    删除时具体操作如何?删除大量数据速度慢,只能删除数据,主键自增序列不会清零。删除大量数据速度快,主键自增序列会清零。

十、SQL约束

SQL约束简介
  • SQL约束是用于指定字段数据的规则,可以保证数据更加精确、可靠。
  • 常见的SQL约束:
约束名称关键字含义
主键primary keyMySQL建议所有表的主键字段都叫id,类型为int.
非空not null此字段不允许填充空值。
唯一unique此字段的值不允许重复。
默认值default当不填写字段对应的值时,会使用默认值;如果填写时,则以填写为准。
外键foreign key涉及多张表时才会使用。对表与表的关系字段进行约束,当表与表关系字段填写值时,会到关联的表中查询此值是否从在。如果存在则填写成功;如果不存在,则填写失败。
主键约束

1.添加主键约束

  • 在创建表示添加主键约束语法:
create table 表名(
	字段名 数据类型(长度) primary key [其他约束],
	...
)default charset utr8;

  • 说明:
    • 给primary key主键约束的字段设定值时,不允许出现重复值;[唯一性]
    • 主键约束列不能包含null值;[非空]
    • 每个表都应该有一个主键约束,且每个表只能有一个主键。

2.单独添加主键约束

  • 当数据表创建完成后,单独添加主键约束,语法:
# 创建表后,使用alter table关键字添加主键
alter table 表名 add primary key(字段名);

3.删除主键约束

  • 给有主键约束的数据表删除主键约束,语法:
# 使用alter table关键字删除主键
alter table 表名 drop primary key;

  • 说明:
    • 当删除主键约束后,字段依旧有非空约束,不能为空。

4.主键约束:自动增长

  • 在创建表时让主键约束字段为自动增长[auto],语法:
create table 表名(
	字段名 数据类型(长度) primary key auto_increment,
	....
)default charset utf8;

  • 说明:
    • 自动增长列的字段必备是整型;
    • 自动增长列必须为X键(例如主键、外键)。

5.主键约束:验证主键约束的字段效果

  • 当给字段设定了主键约束后,则:
    • 值是唯一的;
    • 值是非空的。
6.非空约束:添加非空约束
  • 当在创建表时给某个字段添加非空约束,语法:
create table 表名(
	字段名 数据类型(长度) [其他约束] not null,
)default charset utf8;
  • 说明:
    • 当设定主键约束后,默认值是非空的;
    • 当给某列设定为not null后,在添加数据时必须向该字段传递非空null值
  • 当设定为非空约束后,则:
    • not null约束强制字段不接受null值;
    • not null约束强制字段传递数据时,必须有数值。
唯一约束:添加唯一约束
  • 当在创建时给某字段添加唯一约束,语法:
create table 表名(
	字段名 数据类型(长度) [其他约束] unique,
	...
)default charset utf8;
  • 说明:
    • 每个表可以有多个unique唯一约束,但是每个表只能有一个primary key主键约束。
  • 当设定为唯一约束后,则:
    • unique约束用于唯一标识数据表中的每条数据;
    • primary key字段默认唯一;
    • unique和primary key约束均为列提供了唯一性保证。
默认值约束
  • 当在创建表时给某个字段添加默认值约束,语法:
creat table 表名(
	字段名 数据类型(长度) [其他约束] default 值,
	...
)default charset utf8;
  • 说明:
    • 每个表可以有多个默认值约束;
    • 设置了默认值后,若不传递数值,则直接使用默认值。
  • 当设定为默认值约束后,则:
    • 有了默认值约束后,当不传递字段对应的值时,会使用默认值;
    • 有了默认值约束后,当传递字段对应值时,会以传递的具体值为准。

十一、数据查询语言

1.简单查询
  • 简单查询有两种方式:
    • 查询所有数据
    • 按不同字段名来查询数据
  • 语法:
# 查询表内所有数据
select * from 表名;
# 查询表内数据,以指定的列来显示结果
select [distinct] from 字段名1,字段名2,... from 表名;
2.比较查询
  • 对数据进行条件处理,通用语法:
select [*|字段1,字段2,...] from 表名 where 条件;
  • 在where条件中,使用比较运算符来查询结果,比较运算符有:
比较运算符含义
=等于
>大于
>=大于等于
<小于
<=小于等于
!=[或<>]不等于,忽略<>
3.范围查询
  • 范围查询是指在某个范围内进行查询,分别有in和between…and…。

    • in是非连续指的范围查询,语法:
    select * from 表名 where 字段名 in (范围值1,范围值2,...);
    
    • between and 是用于值在连续范围的查询,语法:
    select * from 表名 where 字段名 between 范围值1 and 范围值2;
    
4.逻辑查询
  • 对数据进行条件筛选处理,通用语法:
select [*|字段名1,字段名2,...] from 表名 where 条件;
  • 逻辑运算符有:
逻辑运算符含义
and与、和、且。
1.逻辑运算符and的前后一般是True或者False的结果
2.当两个条件都为True(真),整个操作结果才是True真。
or或、或者
1.逻辑运算符or的前后一般都是True或False的结果;
2.当两个条件都为False(假),整个操作结果才是False假。
not一般情况下,要设定not取反,对整个操作结果做not处理。
5.模糊查询
  • 模糊查询的语法:
select * from 表名 where 字段名 like '%某个字段%';
select * from 表名 where 字段名 like '某个字_'
  • 说明:
    • %表示任意多个字符,_表示一个任意字符。
6.非空查询
  • 非空查询的语法:
select * from 表名 where 字段名 [条件];
  • 说明:
    • [条件]部分就可以使用空或非空来表示。
  • 非空运算符有:
非空查询含义
is null判断为空
is not null判断为非空
7.排序查询
  • SQL查询通用语法:
select [*|字段名1,字段名2,...|函数(...)] from 表名 where 条件 另外要求;
  • 排序查询指的是对某字段进行升序或者降序的形式来查询结果,语法:
select * from 表名 where 条件 order by 字段名 [asc|desc];
  • 说明:
    • asc从小到大排列,即升序;
    • desc从大到小排序,即降序;
    • 默认按照列值从小到大进行排序(即asc升序)。
8.聚合查询
  • 聚合查询的语法:
select 函数(...) from 表名 [where 条件];
  • 说明:
    • 函数(…)指的是聚合函数。
  • 聚合函数有:
聚合函数作用
count(col)用于统计指定列不为null的总数据条数。
sum(col)用于计算指定列的数值和。
max(col)用于计算指定列的最大值。
min(col)用于计算指定列的最小值。
avg(col)用于计算指定列的平均值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值