第6天2021-08-13

本文详细介绍了MySQL数据库的基本操作,包括查看和创建数据库、删除数据库的条件判断,以及切换数据库。此外,还讲解了数据类型、创建与删除表格的操作,并展示了如何向表格中插入数据、更新和删除记录。同时,提供了关于数据约束的说明,如非空、唯一和主键约束。最后,通过示例脚本演示了如何在实际操作中应用这些概念。
摘要由CSDN通过智能技术生成

1. 管理数据库

database #数据库 [戴特拜师]
table #表格 [台布偶]
show #查看 [秀]
create #创建 [科瑞特]
drop #大删除 [叫噗]
exists #存在 [i科赛斯]
charset #字符设置 [恰 赛特]
1.1 查看数据库
show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| tedu |
| test |
±-------------------+
1.2 创建数据库
语法:
create database 数据库名 charset=utf8; #创建数据库并指定utf8字符集
例如: 创建数据库 medu 并指定使用utf8字符集
create database medu charset=utf8;
练习: 创建数据库 aa 和 bb 都使用 utf8字符集
create database aa charset=utf8;
create database bb charset=utf8;
1.3 删除数据库
判断语句:
if exists 文件名; #判断文件是否存在
语法:
drop database 数据库xx #直接删除数据库xx,如果不存在xx就报错
drop database if exists 数据库xxx; #如果存在数据库xxx库就删除他
例如: 直接删除数据库aa
drop database aa;
Query OK, 0 rows affected (0.001 sec)
例如: 再次直接删除数据库aa
drop database aa;
ERROR 1008 (HY000): Can’t drop database ‘aa’; database doesn’t exist
例如: 如果存在数据库aa,删除它
drop database if exists aa;
Query OK, 0 rows affected, 1 warning (0.000 sec)

练习: 如果存在数据库bb删除它
  drop database if exists bb;
  Query OK, 0 rows affected (0.001 sec)
练习: 如果存在数据库bb删除它
  drop database if exists bb;
  Query OK, 0 rows affected, 1 warning (0.000 sec)

1.4 切换数据库
语法:
use 数据库名;
例如: 切换到 medu 数据库
use medu;
Database changed
MariaDB [medu]> desc medu;

练习:
① 如果存在数据库 abc 删除它
drop database if exists abc;
② 创建数据库 abc 使用utf8字符集
create database abc charset=utf8;
③ 查看有哪些数据库
show databases;
④ 切换到 abc 数据库
use abc;

2. 管理表格

2.1 数据类型
int #整型: 存储整数范围约为±21亿多
bigint #大整型 范围约为±92亿亿多
decimal(m,n) #十进制小数 m表示总位数,n表示小数位数
varchar(n) #变长字符串 n表示最大字符个数
date #日期类型,书写时要用单引号括起来 如: ‘2021-8-13’

2.2 创建表格
语法:
create table 表名(
字段名 数据类型 [约束],
字段名 数据类型 [约束],
… ,
字段名 数据类型 [约束]
);
例如: 创建一张学生表 stu 包含如下字段
① 编号 id 整型(显示6位)
② 姓名 name 变长字符串(最长8位字符)
③ 生日 birth 日期类型
④ 电话 phone 变长字符串 (最长15个字符)
⑤ 成绩 score 3位整数,1位小数

  create table stu(
    id int(6),
    name varchar(8),
    birth date,
    phone varchar(15),
    score decimal(4,1)
  );

2.3 查看表格概要信息
MariaDB [medu]> desc stu;
±------±-------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±-------------±-----±----±--------±------+
| id | int(6) | YES | | NULL | |
| name | varchar(8) | YES | | NULL | |
| birth | date | YES | | NULL | |
| phone | varchar(15) | YES | | NULL | |
| score | decimal(4,1) | YES | | NULL | |
±------±-------------±-----±----±--------±------+
5 rows in set (0.016 sec)

2.4 查看表格
例如: 查看 medu数据库中有哪些表格;
MariaDB [medu]> show tables;
±---------------+
| Tables_in_medu |
±---------------+
| stu |
±---------------+
1 row in set (0.001 sec)

2.5 删除表格
语法:
drop table 表格名;
drop table if exists 表格名;
例如: 如果存在表格 stu 删除它
drop table if exists stu;

练习:
① 创建一个成绩表 sc 包含如下字段
编号 id 整型(6位)
名字 name 变长字符串(10个字符)
语文 cn 3位整数1位小数
数学 math 3位整数1位小数
英语 en 3位整数1位小数
create table sc(
id int(6),
name varchar(10),
cn decimal(4,1),
math decimal(4,1),
en decimal(4,1)
);
② 查看数据库中有哪些表格
show tables;
③ 查看 sc表的概要信息
desc sc;
④ 如果存在表格 sc 删除它
drop table if exists sc;

3. 向表中插入数据

insert #插入 [英色特]
into #向…中 [硬土]
values #值 [歪柳死]
语法:
① 按照顺序向表中全部字段插入值
insert into 表名 values(值列表); #每个字段都要给值,可以给空值
② 给表中部分字段插入值
insert into 表名(字段列表)values(值列表); #字段和值必须一一对应
例如: 向stu表中插入几条数据
insert into stu values(1,‘孙悟空’,‘1455-09-09’,‘13813888888’,‘99.5’);

insert into stu(id,name,birth,phone)
values(5,'唐三藏',null,'139139999999');

4. 编写脚本

① 在EditPlus新建脚本文件 medu.sql 编码采用 utf8 保存到E盘根目录中
② 在脚本的第一行 设置交互客户端采用 utf8 编码
set names utf8;
然后继续编写脚本.
③ 执行脚本
打开一个DOS命令窗口,输入如下命令
mysql -u root -p123456 < E:\medu.sql

5. 约束

① 非空约束 not null
指定字段不允许插入空值.
② 唯一约束 unique
指定字段的值不能重复
③ 主键约束 primary key
指定字段 既不可以是空值,也不可以重复
④ 默认约束 default
当指定字段,不给值(空值也不填)时,会填充默认值

6. 修改表中记录

update #更新,升级 [阿普 戴特]
set #设置 [赛特]
语法:
update 表名 set 字段=值
where 记录筛选条件;

7. 删除记录

delete #小删除 [迪利特]
语法:
delete from 表名 where 记录筛选条件;

清空表
truncate table 表名;

修改cmd中编码格式为utf8

脚本代码

#设置交互客户端采用utf8字符集
set names utf8;
#如果存在数据库 medu 删除它
drop database if exists medu;
#创建数据库 medu 指定使用 utf8 字符集
create database medu charset=utf8;
#切换到 medu 数据库
use medu;
#创建一张学生表 stu 包含如下字段

编号 id 整型(6位)

名字 name 变长字符串(10)

生日 birth 日期

成绩 score 3位整数,1位小数

create table stu(
id int(6) primary key,
name varchar(10) unique,
birth date not null,
score decimal(4,1) default 0.0
);

向表中插入一条数据,完整的

insert into stu values(1,‘贾宝玉’,‘1825-08-18’,95.5);

向表中插入一条数据,编号和上一条记录重复,其他正常

#insert into stu values(1,‘林黛玉’,‘1828-05-25’,92.5);
insert into stu values(2,‘林黛玉’,‘1828-05-25’,92.5);

向表中插入一条数据,生日给空值,其他正常

#insert into stu values(3,‘薛宝钗’,null,80.0);
insert into stu values(3,‘薛宝钗’,‘1830-06-15’,88.0);

向表中插入一条数据,编号给空值,其他正常

#insert into stu values(null,‘王熙凤’,‘1828-08-18’,80.0);
insert into stu values(4,‘王熙凤’,‘1828-08-18’,80.0);

向表中插入一条数据,名字和前面某条记录重复,其他正常

#insert into stu values(9,‘薛宝钗’,‘1828-07-31’,80.0);
insert into stu values(9,‘袭人’,‘1828-07-31’,null);

向表中插入一条数据,成绩不给值,其他正常

insert into stu(id,name,birth)
values(5,‘刘姥姥’,‘1808-03-13’);

#将stu表中所有记录的 成绩增加5分
update stu set score=score+5;

#将 姓名为 袭人 的编号 改为6
update stu set id=6
where name=‘袭人’;

#将所有 成绩大于100 的记录删除
delete from stu
where score>100;

#将stu表中 成绩为空值的记录删除
delete from stu
where score is null;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值