MySQL概述

本文详细介绍了MySQL数据库的基础知识,包括SQL语言的四大组成部分:DDL、DCL、DML和DQL。讲解了如何创建、删除和使用数据库,以及表的相关操作,如创建表、约束、数据类型等。还涉及数据录入、修改和删除,强调了数据完整性和事务处理的重要性,确保数据的准确性和可靠性。
摘要由CSDN通过智能技术生成

MySQL概述

SQL语言

MySQL(Structured Query Language)结构化查询语言,它是一门语言,操纵数据库,它有如下的一些部分:

  • DDL(数据定义语言):create、drop和alert,对结构的操作。
  • DCL(数据控制语言):revoke和grant,权限的操作(了解)
  • DML(数据操纵语言):insert、update和delete。对数据的操纵
  • DQL(数据查询语言):select。对数据的查询。

名词解释

  • DB:数据库
  • DBMS:数据库管理系统,对数据库管理的软件,如:MySQL、Oracle、SQL Server…
  • DBA:数据库管理员
  • 列:域,属性、对对象的描述
  • 行:对象,一笔记录
  • 表:表格,集合

数据库相关命令

创建数据库

create database 数据库名称;

删除数据库

drop database 数据库名称;

使用数据库

use 数据库名称;

表相关命令

创建表语句

create table 表名 
(
	列名 数据类型 [约束] [注释],
	列名 数据类型 [约束] [注释],
	.....
	列名 数据类型 [约束] [注释]
);
#例如
create table students
(
	stuid int primary key comment '学号', #primary key:主键,代表唯一
	stuname varchar(20) not null comment '姓名',#varhcar(20)代表最多20个字符
	stusex char(1) check(stusex='男' or stusex='女') comment '性别',
	stubrithday date ,#date:年月日
	stuphone varchar(11) unique comment '手机号',#unique:唯一
 	stuaddress varchar(255) default('陕西省西安市') comment '住址'
);
约束

对这一列的数据更新时有特定条件的情况

约束名说明备注
primary key主键约束一个表只有一个主键约束
当前列唯一,非空
not null非空约束
unique唯一约束列值不能重复
default默认值约束当不录入值,使用默认值
check检查约束录入的值必须符合要求
数据类型
日期型
类型名说明备注
datetime时间日期yyyy-MM-dd hh:mm:ss
date日期yyyy-MM-dd
time时间hh:mm:ss
数值型
类型名说明备注
int普通整型
float单精度浮点型
decimal(m,d)数值型m:有效数字
d:小数点后几位
字符型
类型名说明备注
char(最多存放长度)定长字符串如果不够,使用空格补齐
varchar(最多存放长度)变长字符串
longtext最长字符串可变长度,最多2的32次方-1个字符
空型

删除表

drop table 表名;

录入数据

单行录入
insert into 表名[(列字段列表)] values(值列表);
##插入时的注意事项:
#1.插入时不能只插入半行或者部分列信息,如果未赋值自动填充null
insert into students(stuid,stuphone) values(6,'22223333');
insert into students(stuid,stuname) values(8,'部分列');#√
#2.列字段列表可以省略,那么值列表要按照物理顺序依次赋值,而且不能省略部分列
insert into students values (6,'李四','男','2011-1-1','18099998888','陕西省宝鸡市');
#3.主键一般是自动增长的 : auto_increment,
create table students2
(
	stuid int primary key auto_increment,
	stuname varchar(6) not null,
	stusex char(1)
);
insert into students2 values(null,'aaa','男');
#4.如果表中有默认值,赋值时可以使用关键字default赋值
insert into students values(7,'李四','男','2011-1-1','18099996666',default);
多行录入
#插入多行数据
insert into students2
select null,'bb','男' union
select null,'cc','男' union
select null,'dd','女' union
select null,'ee','男' ;

#重复行数据不会录入
insert into students2
select null,'bb2','男' union
select null,'bb2','男' union
select null,'ee','女' union
select null,'ff','男' ;
表复制(面试考点)
insert into 表名 select 列表 from;#新表要求存在,只是数据的复制

create table 新表名 as select 列表 from 旧表名; #新表不能存在,复制的是数据和结构

修改表中的数据

update 表名 set=,=,...=[where 条件];

删除表中的数据

delete from 表名 [where 条件];
truncate table 表名;

##drop、delete和truncate之间的区别?
#1.drop是删除结构,而delete和truncate删除的是数据;
#2.delete可以部分删除,也可以全表删除,而truncate只能删除全表;
#3.delete删除时写日志,有事务,可恢复,删除慢,而truncate不写日志,没有事务,不可恢复,删除快。

数据的完整性

录入到表中的数据应该是完整的,完整 = 准确 + 可靠

  • 域完整性:列完整性,需要保证这一列中录入的数据符合要求,通过check约束。
  • 实体完整性:行的完整性,需要保证行不能重复,通过主键约束。
  • 引用完整性:使用另一张表中数据时,需要保证这个数据在另一张表中存在,通过外键约束。
  • 自定义完整性:行业规则和规范。

数据库的事务

一般指要做的或所做的事情,在计算机中是一段程序的执行单元。事务一般由事务开始和事务结束之间执行的全体操作组成。

事务的特性(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)

原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。

持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值