Mysql学习笔记

1前置知识

1.1什么是数据库?

数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站,以及头条、抖音类的app,那这些所看到的数据,其实都是存储在数据库中的。最终这些数据,只 是在浏览器或app中展示出来而已,最终数据的存储和管理都是数据库负责的

1.2数据存储

数据是如何存储在数据库中的,那要如何来操作数据库以及数据库中所存放的数据?

数据库管理系统(DataBase Management System,简称DBMS)

DBMS是操作和管理数据库的大型软件。只需要操作这个软件,就可以通过这个软件来操 纵和管理数据库。

1.3操作数据库

DBMS这个软件怎么知道要操作的是哪个数据库、哪个数据?是对数据做修改还 是查询?

需要给DBMS软件发送一条指令,告诉这个软件我们要执行的是什么样的操作,要对哪个数据进行 操作。而这个指令就是SQL语句。

SQL(Structured Query Language,简称SQL):结构化查询语言,它是操作关系型数据库的编 程语言,定义了一套操作关系型数据库的统一标准。学习数据库开发,最为重要的就是学习SQL语 句 。

1.4数据库分类

Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。(通常是不差钱的公司会选择使用这 个数据库)

MySQL:开源免费的中小型数据库,

SQL Server:Microsoft 公司推出的收费的中型数据库,C#、.net等语言常用。

PostgreSQL:开源免费的中小型数据库。

DB2:IBM公司的大型收费数据库产品。

SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。

MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品,与 MySQL数据库有很好的兼容性。

1.5Mysql中的数据模型

Mysql数据库当中到底是如何来存储数据的?(Mysql 的数据模型)

通过MySQL客户端连接数据库管理系统DBMS,然后通过DBMS操作数据库

使用MySQL客户端,向数据库管理系统发送一条SQL语句,由数据库管理系统根据SQL语句指令去 操作数据库中的表结构及数据

一个数据库服务器中可以创建多个数据库,一个数据库中也可以包含多张表,而一张表中又可以包 含多行记录。

所以在Mysql数据库服务器当中存储数据,需要:

1. 先去创建数据库(可以创建多个数据库,之间是相互独立的)

2. 在数据库下再去创建数据表(一个数据库下可以创建多张表)

3. 再将数据存放在数据表中(一张表可以存储多行数据)

2sql分类

SQL语句根据其功能被分为四大类:DDL、DML、DQL、DCL

DDL 数据定义语言,用来定义数据库对象(数据库,表,字 段)

DML 数据操作语言,用来对数据库表中的数据进行增删改

DQL  数据查询语言,用来查询数据库中表的记录

DCL  数据控制语言,用来创建数据库用户、控制数据库的 访问权限

2.1DDL

2.1.1数据库操作:

查询所有数据库:show databases;

查询当前数据库: select database();

创建数据库

语法:create database [ if not exists ] 数据库名;

例子:创建一个itcast数据库。

create database itcast;

 使用数据库

语法:use 数据库名 ;

删除数据库

语法:drop database [ if exists ] 数据库名 ;

如果删除一个不存在的数据库,将会报错。 可以加上参数 if exists ,如果数据库存在,再执行删除,否则不执行删除。

2.1.2表操作:

1创建

语法

create table 表名(

字段1 字段1类型 [约束] [comment 字段1注释 ],

字段2 字段2类型 [约束] [comment 字段2注释 ], ......

字段n 字段n类型 [约束] [comment 字段n注释 ] ) [ comment 表注释 ] ;

案例:创建tb_user表

create table tb_user (
 id int comment 'ID,唯一标识', # id是一行数据的唯一标识(不能重复)
 username varchar(20) comment '用户名',
 name varchar(10) comment '姓名',
 age int comment '年龄',
 gender char(1) comment '性别'
) comment '用户表';

约束

是什么:所谓约束就是作用在表中字段上的规则,用于限制存储在表中的数据。

有什么用:保证数据库当中数据的正确性、有效性和完整性。

非空约束 限制该字段值不能为null      not null

唯一约束 保证字段的所有数据都是唯一、不重复的  关键字:unique

主键约束 主键是一行数据的唯一标识,要求非空且唯一 关键字:primary key

默认约束 保存数据时,如果未指定该字段值,则采用默认值 关键字:default

外键约束 让两张表的数据建立连接,保证数据的一致性和完整性 关键字: foreign key

案例:创建tb_user表

create table tb_user (
 id int primary key auto_increment comment 'ID,唯一标识', #主键自动
增长
 username varchar(20) not null unique comment '用户名',
 name varchar(10) not null comment '姓名',
 age int comment '年龄',
 gender char(1) default '男' comment '性别'
) comment '用户表';

2查询

基于图形化界面操作,查询指定表的建表语句

3修改

添加字段:

alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];

修改数据类型

alter table 表名 modify 字段名 新数据类型(长度);

alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];

案例:修改qq字段的字段类型,将其长度由11修改为13

 alter table tb_emp modify qq varchar(13) comment 'QQ号码';

案例:修改qq字段名为 qq_num,字段类型varchar(13)

alter table tb_emp change qq qq_num varchar(13) comment 'QQ号码';

修改表名

rename table 表名 to 新表名;

案例:将当前的tb_emp表的表名修改为emp

rename table tb_emp to emp;

4删除

删除表语法:

drop table [ if exists ] 表名;

图形化操作页面

2.2DML

DML是数据操作语言,用来对数据库中表的数据记录进 行增、删、改操作

1增加

向指定字段添加数据

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

全部字段添加数据

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

批量添加数据(指定字段)

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

案例1:向tb_emp表的username、name、gender字段插入数据

insert into tb_emp(username, name, gender, create_time, update_time)
values ('zhangsan', '张三', 1, now(), now());

案例2:向tb_emp表的所有字段插入数据

insert into tb_emp(id, username, password, name, gender, image, job,
entrydate, create_time, update_time)
values (null, 'lisi', '123', '李四', 2, '1.jpg', 1, '2010-01-01',
now(), now());

案例3:批量向tb_emp表的username、name、gender字段插入数据

insert into tb_emp(username, name, gender, create_time, update_time)
values ('wangwu', '王五', 1, now(), now()),
('xiaozhang', '小张', 1, now(), now());

2修改

update语法:

update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [where 条件] ;

案例1:将tb_emp表中id为1的员工,姓名name字段更新为'张三'

update tb_emp set name='张三',update_time=now() where id=1;

案例2:将tb_emp表的所有员工入职日期更新为'2010-01-01'

update tb_emp set entrydate='2010-01-01',update_time=now();

3删除

delete语法:

delete from 表名 [where 条件] ;

案例1:删除tb_emp表中id为1的员工 

delete from tb_emp where id = 1;

案例2:删除tb_emp表中所有员工

 delete from tb_emp;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值