MySQL关系型数据库管理系统day01

MySQL关系型数据库管理系统____day01

一、基础知识

1.1数据(data)

数据是可识别的、抽象的可以鉴别的符号。不仅仅是文本,也可以是图片、音频、视频等。

1.2为什么用数据库?

因为用内存保存文件速度快但是不能永久保存;用文件保存可以永久保存,但是因为是IO操作,所以不方便查找。

所以学习专门存储数据的数据库来解决这样的问题。

1.3 数据库(database)

数据库(Database,简称DB),就是存储数据的仓库。

1.4 数据库管理系统(DBMS)

数据库管理系统(Database Manage System,简称DBMS)

1.6 数据库管理员

数据库管理员(Database Administrator,DBA)是指对数据库管理系统进行操作的人员,其主要负责数据库的运营和维护。

1.7 数据库的分类

MySQL关系型数据库管理系统day01_第1张图片

注意:工作中,两种类型都会用到

1.7.1关系型数据库

简单的说,关系型数据库就是用二维表来表示的一个数据组,即行与列之间的关系。

**优点:**易于维护(表格式一致)、使用方便(SQL语句通用)、复杂操作(可以用于较复杂的操作)

**缺点:**读写性能差、灵活度不够(表结构固定)、绕不开IO操作

1.7.2非关系型数据库

非关系型数据库也称之为NoSQL(Not Only SQL)数据库,是一种数据结构化存储方法的集合,可以是文档或者键值对等。

**优点:**格式灵活(各种形式的数据都可以)、使用灵活、速度快(内存存储)、高扩展性

**缺点:**不支持SQL、结构复杂查询不便、只适合简单数据、不适合大量存储(内存)

二、SQL语言入门

1 SQL作用

  • 是所有关系型数据库的统一操作规范,不同关系型数据库都支持SQL
  • 所有的关系型数据库都可以使用SQL
  • 不同数据库之间的SQL有一些区别(方言)

2 SQL语法规范

  • SQL语句可以单行或者多行书写,以;结尾
  • 可以使用空格或者缩进增加语句的可读性
  • MySQL中使用SQL不区分大小写,一般数据库名,表名,列名小写
  • 注释方式 --空格 单行注释 /**/多行注释 #MySQL特有的单行注释

3 SQL分类

3.1数据查询语句(DQL)

DQL主要用于数据查询

select 、from 、where 、order by 、having

3.2数据操作语言(DML)

主要用于对数据的操作

  • INSERT: 增加数据
  • UPDATE: 修改数据
  • DELETE: 删除数据
3.3数据定义语言(DDL)

DDL主要用针对是数据库对象(数据库、表、索引、视图)

  • CREATE: 创建
  • ALTER: 修改
  • DROP: 删除
3.4数据控制语言(DCL)

DCL用来授予或回收访问数据库的权限

  • GRANT: 授予用户权限
  • REVOKE: 回收授予的权限
3.5事务控制语言(TCL)

TCL用于数据库的事务管理。

  • START TRANSACTION: 开启事务
  • COMMIT: 提交事务
  • ROLLBACK: 回滚事务

注意:DML针对于表中的数据;DDL针对数据库对象

四、DDL操作(操作数据库对象)

1.MySQL中常见的数据类型

MySQL关系型数据库管理系统day01_第2张图片
注意:char在写明长度后执行时就会分配相应长度; varchar则是实际用多少再分配多少,但两者都不可以超过规定的长度。

int可以超过指定长度,int会进行动态扩容

2.DDL相关操作

2.1 DDL-创建数据库表
create table 表名(
	字段1	数据类型,
    字段2 数据类型(长度),
​    ...........
​    字段n 数据类型
);

注意:最后一个字段不要加逗号,可以给字段的数据类型指定长度

2.2 DDL-查看数据库表
-- 显示当前数据库的所有的表
show tables;
-- 显示某个表的结构 desc 表名
desc 表名;
-- 查看某个表完整的建表语句 show create table 表名
show create table 表名;

注意:操作表前先选中库 use 库名

2.3 DDL-删除数据库表
-- 语法格式:
DROP TABLE 表名;
-- 删除当前数据库中的某个表  drop table 表名
drop table 表名;
2.4 DDL-修改数据库表
2.4.1修改表名
-- 语法格式:
rename table 旧表名 to 新表名;
2.4.2 向表中添加字段
-- 语法格式:
alter table 表名 add 字段名称 字段类型;
-- 默认添加到末尾

alter table 表名 add 字段名称 字段类型 first; 
-- 添加到第一个

alter table 表名  add 字段名称 字段类型 after表名 ;
-- 添加到age字段之后

2.4.3 修改表中字段

-- 语法格式: 
alter table 表名 modify 字段名称 字段类型;(修改字段类型和长度)

-- 语法格式:
alter table 表名 change 旧字段名 新字段名 类型(长度); (修改字段名 )

注意:notify简单修改字段的类型和长度。

change可以修改为一个全新的字段

2.4.4 删除表中字段
-- 语法格式:
alter table 表名 drop 字段名;

五、DML操作(操作数据)

1.插入数据

-- 语法格式:
-- 1. 插入部分或全部字段 
insert into 表名(字段名1,字段名2,...,字段名n) values(1,2,...,值n);

-- 2. 插入全部字段 
insert into 表名 values(1,2,...,值n);

-- 一次添加多条数据
insert into 表名 values(1,2,...,值n),(1,2,...,值n),(1,2,...,值n);

注意:

  1. 值与字段必须要对应,个数相同、数据类型相同
  2. 值的数据大小,必须在字段指定的长度范围内
  3. varchar char date类型的值使用单引号或者双引号包裹
  4. 如果要插入空值,可以忽略不写或者写null
  5. 如果插入指定字段的值,必须要上写列名
  6. 字符串日期类型支持 “2000-12-23” “2000/12/23” “2000.12.23”

2.修改数据

-- 语法格式
update 表名 set 字段1=1,字段2=2,...,字段n=值n where 条件;
update 表名 set 字段1=1,字段2=2,...,字段n=值n; -- 慎用:不加条件会修改所有的数据

注意:一定要加条件

3.删除数据

-- 语法格式
delete from 表名 where 条件;
delete from 表名; -- 慎用:删除表中的所有数据
truncate table 表名; -- 慎用:删除表中的所有数据

delete与truncate都是删除所有的

delete属于DML命令 是一条一条删除

truncate属于DDL命令 相当于篡改建一个新表 相比效率更高

六、表的约束

1.约束的作用

​ 可以对表中的数据做一些限制, 从而保证数据的正确性, 有效性, 和完整性。

​ 违反约束的不正确数据是无法插入到表中的。

2.约束的分类

MySQL关系型数据库管理系统day01_第3张图片

3.主键约束

3.1添加主键约束
-- 语法格式:
字段名 字段类型 primary key
-- 方式二
primary key(eid)  -- 指定主键为eid字段
-- 方式三
-- 创建表时不指定主键, 然后通过DDL语句进行设置
alter table emp add primary key(eid);
3.2那些字段可以当主键
  • 通常针对业务去设计主键, 每张表都设计一个主键id, 并且只能有一个主键.
  • 主键是给数据库和程序使用, 所以主键没有意义没有关系, 只要能保证不重复就好, 比如身份证就可以作为主键.
3.3 删除主键约束
-- 使用DDL 删除表中的主键约束
alter table emp drop primary key;
3.4主键自增

自己添加数据可能出现重复, 我们通常希望在每次插入新记录时, 数据库自动生成主键字段的值。

-- 语法格式: 
关键字 auto_increment	 表示自增长(字段类型必须为整数类型)

4.非空约束

-- 语法格式: 
 字段名 字段类型 not null

5.唯一约束

-- 语法格式: 
字段名 字段类型 unique

6.默认值约束

-- 语法格式: 
字段名 字段类型 default '值'

7.检查约束

字段名 字段类型 check(字段='值' or 字段='值')
字段名 字段类型 check(字段>n or 字段<m)
字段名 字段类型 check(字段>n and 字段<m)

你可能感兴趣的:(数据库,mysql)