分享

Mysql

 镜馨苑8 2021-11-19

Mysql-05 数据库操作增删改查

create database创建数据库

数据库的概念 类似 Excel; 一个Excel文件中可以存放很多张表;
一个数据库中也可以存放很多张表

100%

创建数据库
新建数据库
常规
SQL预览
fanmaoyyds
数据库名:
utf8mb4
字符集:
utf8mb4general
排序规则:
image.png


字符集: utf8mb4 支持带有表情符号的中文字符 表情😊
排序规则:utf8mb4_general_ci 不区分大小写

对应的创建语句
SQL复制代码
xxxxxxxxxx
CREATE DATABASE `fanmaoyyds`  -- 创建库
CHARACTER SET 'utf8mb4'       -- 设置字符集
COLLATE 'utf8mb4_general_ci'; -- 设置排序规则
create table创建表
创建一个学生表 , 表的名字为 自己的姓名拼音
字段
类型
说明
id
int
数字
sname
varchar
字符
birthday
date
日期
kg
decimal
浮点型,带有小数点
使用工具创建表
fanmao
用a@fanmao71(fanmao)-表
男b@fanmao71(fanmao)表
对象
无标题@fanmao71
fanmao71
保存
添加字段插入字段
删除字段
个上移业下移
主键
fanmao71yyds
字段索引外键触发器
选项
SOL预览
注释
用表
视图
不是null
注释
类型
长度
小数点
虚拟
x函数
id
int
魔1查询
255
varchar
sname
备份
birthday
date
Cinformationschema
decimal
kg
mysq
image.png


建立好字段之后, 在未保存的情况下, 点击 【Sql预览】
围b@fanmao71(fanmao)-表
对象
fanmao
围a@fanmao71(fanmao)-表
fanmao71
昌保存
fanmao71yyds
SQL预览
选项
注释
触发器
字段
索引
外键
用表
国店58383-833633-0
CREATETABLEfanmao71yydsUntitled
视图
idintNOTNULLAUTO_INCREMENT
fx函数
sname'yarchar(255)NOTNULL,
查询
birthdaydateNOTNULL,
备份
kgdecima1(3,2NOTNULL,
informationschema
PRIMARYKEYCid)
mysql
image.png

可以看到自动生成的语句;
SQL复制代码
xxxxxxxxxx
CREATE TABLE `wangdachui`  (
  `id` int NOT NULL AUTO_INCREMENT,    -- id 字段  int 表示数字类型  not null 不可为空  auto_increment 自动增加
  `sname` varchar(255) NOT NULL,  -- 
  `birthday` date NOT NULL,
  `kg` decimal(3, 2) NOT NULL,
  PRIMARY KEY (`id`)        -- 主键
);

在数据库中编写sql
SQL复制代码
xxxxxxxxxx
-- 创建表
CREATE TABLE wangdachui2 (
  id int not null auto_increment,
  sname VARCHAR(255) not null,
  birthday date not null,
  kg DECIMAL(3,2) not null,
  PRIMARY KEY (id)
);
fanmao
o@fanmao71yyds(fanmao)查询
对象
fanmao71
1查询创建工具美化SQLO代码段
吕保存
fanmao71yyds
fanmao71yyds
停止出:解释已选择的
运行已选择的
fanmao
由表
视图
创建表
1
函数
2日CREATETABLE
wangdachui2
朗]查询
m寸
00
idintnot
nul1
auto_increment,
备份
nu11,
snameVARCHAR(255)
not
informationschema
5
birthdaydatenotnul1,
mysql
kgDECIMAL(3,2)
6
not
nul1
KEY(id)
10
PRIMARYK
);
信息
状态
剖析
CREATETABLEwangdachui2(
idintnotnuilauto-_increment,
SNAMEVARCHAR(255)notnull,
birthdaydatenotnuli,
kgDECIMAL(3,2)notnu11,
PRIMARYKEY(iD)
OK
表示创建成功
时间:0.019s
image.png


insert into插入数据

SQL复制代码
xxxxxxxxxx
INSERT INTO chen555   -- 表名
(`sname`, `birthday`, `kg`)  -- 字段名
VALUES 
('李四', '2021-11-08', 500)  -- 具体的值
练习
1创建表 emps1(表名可以随意起)
字段
类型
说明
id
int
ename
varchar(255)
姓名
salary
decimal(10,2)
薪资
2往里面添加10条数据

SQL复制代码
xxxxxxxxxx
insert into emps1
(ename, salary)
values
("晨晨",9000);
3查询工资最高的人员;

update 修改数据
修改table中表数据
SQL复制代码
xxxxxxxxxx
UPDATE `fanmao71yyds`.`富婆分账表`  -- 表名
SET `salary` = 8888  -- 设置数据
WHERE `id` = 9     -- 条件
1将工资低于10000元 员工的工资 涨薪 5000;
SQL复制代码
xxxxxxxxxx
update emps 
set salary = salary+5000  -- 设置薪资
where salary < 10000;     -- 条件
delete 删除一条数据
SQL复制代码
xxxxxxxxxx
DELETE FROM `fanmao71yyds`.`zhangtiezhuhaha`  -- 对应的表
WHERE `id` = 3   -- 条件

删除salary 低于10000 和 salary 高于20000的员工
SQL复制代码
xxxxxxxxxx
DELETE from `fanmao71yyds`.`姚文凌工资表` 
where `salary` <10000 or `salary`>=20000
清空数据

清空表中的数据有两种方法
1使用delete 语句删除数据
SQL复制代码
xxxxxxxxxx
delete FROM 姚文凌工资表;
将表中数据全部清空。
2使用 truncate 清空数据
SQL复制代码
xxxxxxxxxx
TRUNCATE 姚文凌工资表;
清空数据 只是将数据清空,但是表还存在。

Drop 删除表
删除表 除了将表中数据清空,并且表也没有了。
SQL复制代码
xxxxxxxxxx
DROP TABLE 上海富婆通讯录

搭建Mysql5.7

现在市场上主要使用的Mysql版本有 5.7 和 8.0 的版本。
这里主要安装使用 5.7

1、下载mysql官方yum repository
Bash复制代码
xxxxxxxxxx
wget -i -c http://dev./get/mysql57-community-release-el7-10.noarch.rpm
Mail
reportsandsuggestiong
bug]
get/mysq157-communityrelea
release-e17-10.noarch.rpm
#wget-i-chttp://de
lroot@VM-0-14-centos
sg1.com
2021-11-0816:13:35-
http://sg1.c
1.comget/mysq157-communityrelease
elease-el7-10.noarch.rpm
137.254.60.11
Resolvingdev.de.msq.com
:80.
137.254.60.11:8
Connectingtodev.mysq.comdemm
connected.
HTTPrequestsentawaitingresponse.
301M
IMovedPermanently
get/mysq157communityeleasee7-10.ach.mollowing
Location:https://dev.ge
2021-11-0816:13:38-
https://dev./et/mysq7comta
1:443.
(dev.137.254.60.11
connected.
Connectingtosqi.com
302Found
HTTPrequestsentawaitingresponse.
[following]
Location:https://repo.
m/mysq157-communityrelease-e17-10.noarch.m
2021-11-0816:13:39-
https://Tepomysq.com/ty
com..23.36.249.17
Resolvingrepo.mm
Comectingtorepo.ysqL.comL.m
HTTPrequestsentawaitingre
2000K
ingresponse.
Length:25548(25k)[application/xredhatackagemang
17-10.noarch.rpm
Savingto:
mysq157-communityreleasee17-
25,548
122KB
100%
in0.2s
[25548/25548]
-10.noarch.rpm
2021-11-0816:13:40(122KB/s
mysq157-community-release-e17-10.n
saved
c:NOsuchfileordirectory
NOURLsfoundin-c.
FINISHED-2021-11-0816:13:40-
clocktime:5.3g
Totalw
25Kin0.2s(122KB/s
files
Downloaded:
lrootlVm-0-14-centos
image.png

2、安装yum repository
Bash复制代码
xxxxxxxxxx
yum install -y mysql57-community-release-el7-10.noarch.rpm
Dependencies
Resolved
Version
Package
Repository
Arch
Size
Installing:
30k
e17-10
mysq157-communityrelease-e7-10.noarch
mysq157-communityrelease
noarch
TransactionSummary
Instal11Package
Totalsize:30k
Installedsize:30K
Downloadingpackages:
Runningtransactioncheck
Runningtransactiontest
Transactiontestsucceeded
Runningtransaction
V
mysq157-communityrelease-e17-10.noarch
Installing
Verifying
mysq157-communityrelease-e17-10.noarch
Installed:
mysq157-communityreleasenoarche7-10
image.png

3、安装mysql服务
Bash复制代码
xxxxxxxxxx
yum -y install mysql-community-server
Runningtransaction
1/6
Installing
mysql-community-common-5.7.36-1.e17.x8664
2/6
Installing
mysq1-community-libs-5.7.36-1.e17.x8664
3/6
Installing
mysql-community-client-5.7.36-1.e17.x86_64
4/6
mysql-communityserver-5.7.36-1.e17.x8664
Installing
5/6
Installing
mysql-comunity-1ibs-compat-5.7.36-1.e17.x8664
Erasing
1:mariadb-libs-5.5.68-1.e17.x8664
6/6
mysql-community-libs-5.7.36-1.e17.6
Verifying
1/6
mysql-community-common-5.7.36-1.e17.x8664
2/6
Verifying
Verifying
3/6
mysql-communityserver-5.7.36-1.e17.x8664
Verifying
4/6
mysq1-community-client-5.7.36-1.e17.x8664
mysql-communitylibs-compat-5.7.36-1.e7.66
Verifying
5/6
1:mariadb-lib-5.5.68-1.e17.8664
Verifying
6/6
Installed:
mysql-community-libs-compat.x86_640:5.7.36-1.e17
mysq1-community-libs.x86640:5.7.36-1.e7
mysgl-communityserver.x86_640:5.7.36-1.e17
DependencyInstalled:
640:57.36-1
mysql-community-common.x86_640:5.7.36-1e7
mvsnecommuini
Replaced:
mariadb-libs.x86641:5.568-1.e7
Complete!
oattaM-p-inecontos
image.png

4、启动mysql服务
Bash复制代码
xxxxxxxxxx
systemctl start mysqld.service
systemctl status mysqld.service
Complete!
启动服务
systemctistartmysqld.serice
root@VM-o-14-centos
查看服务的状态
root@VM-0-14-centos
Systemctlstatusmysqld.seryice
MySQLServer
mysgldseryice
dusr/1ib/systemd/system/mysqldservice;enableddr
Loaded:1oaded/usr
endorpreset:disabled
Active:activeunningsino20-11-0816:21:09T
man:mysq1d8
Docs:n
http://dev.doc/refma/e/uings
12506ExecStart-/usr/sbin/mysqld--daemonize
一pidfile-/var/un/mysqld/mysqdDidMYSLDOPT(codeexited
Process:
status-0/SUCCESS
PrOCESS:145eStartP/s/bin/ysqdprsystemdcodeexitedt
MainPID:12509(mysqld
CGroup:/system.slicemysqld.seryice
12509/usr/sbin/mysqddaemonize
pid-file-/var/run/mysqld/mysqd.id
StartingMySQLServer...
ov0816:21:04VM0-14-centossystemd
StartedMySQLServer
lov0816:21:09VM-0-14-centossystemd
rontovM-0-14-Contos
image.png

5、获取mysql随机密码
Bash复制代码
xxxxxxxxxx
grep "password" /var/log/mysqld.log
"password'/var/1og/mysqld.g
root@V-0-14-centos
JHgrep
yshHuyWg?1It
2021-11-08T08:21:05.7984737
generatedforr
Note
temporary
root@locaihost
is
password
root@VM-0-14-centos
image.png


6、登录Mysql
在命令行中登录数据
使用命令 mysql -u root -p
-u root 表示使用root 账号
-p 使用密码
这里需要注意: 密码输入的时候不会显示。
var/1og/mysq1
password
root@vM-0-14-centos
log
grep
2021-11-08T08:21:05.798473Z
yshHuyWg?1It
passwordisgeneratedforroot@localhost
INoteAtemporary
YOOT@VM0-14-cENTOS#mSqL-rOOTP
nterpassword:
elcometotheMySQLmonttor
ond
ommand
HourMySQLconnectionidis3
erverversion:5.7.36
2000,2021,Oracleand/oritsaffiliates
opyright
FracleisaregisteredtrademarkoforacleCorporationar
uffiliates.thernamesmaybetrademarksoftheirrespective
wners
tocle
clearthecurrentinputstatement.
ypehelp;orhforhelp.Type
iysg
image.png

输入密码之后按下 回车,如果输入无误 进入到mysql 控制台。 这里可以直接使用我们之前的sql语句;

7、修改密码规则
将密码规则设置弱类型
Bash复制代码
xxxxxxxxxx
set global validate_password_policy=0;
set global validate_password_length=1;
mysg
mysg
mysg1
mysqlsetglobalvalidate_passwordpolicy-O;
0.00sec)
QueryOk,orowsaffected(o
mysqIsetglobalvalidatepasswordlength-;
QueryOkOrowsaffected0.00
sec
mTToaR
image.png


8、修改密码
Bash复制代码
xxxxxxxxxx
ALTER USER 'root'@'localhost' IDENTIFIED BY 'fanmao888';
'root'@'localhost' 表示 root账号在本地的权限;
IDENTIFIED BY 'fanmao888' 将root用户的账号密码设置为fanmao888
USER
1ocalhost'
root'@
IDENTIFIEDBY'F
fanmao888
mySgIALTERU
0.00sec)
QueryOk,orowsaffected
image.png

默认的root账号只能在本地登录,也就是只能在服务器的命令行中登录。如果需要通过navicat 等工具远程连接,需要开通远程权限;

9、设置远程用户登录

Bash复制代码
xxxxxxxxxx
grant all privileges on *.* to 'root'@'%' identified by 'fanmao888' with grant option;
给予root账号密码为 fnamao888
可以通过任何ip地址来远程登录数据库
并且root账号拥有所有的权限;
identifiedby'fanmao888withgrantoption;
root
allprivilegeson**to
mysgl
grant
affected,1warning(0.00
OK,0
sec
Query
rows
image.png

添加完成之后,将更改立即生效。
Bash复制代码
xxxxxxxxxx
flush privileges;
mysq1>
flush
privileges;
0.00sec)
affected
QueryOK,o
rows
image.png

Bash复制代码
xxxxxxxxxx
-- 查看所有的数据库
show databases;

Navicat 远程连接 Mysql
数据库
Navicat
我的服务器
连接名:
自己的服务器
1.117.A
85
主机:
3306
端口:
用户名:
root
密码:
保存密码
X
连接成功
确定
测试连接
确定
取消
image.png


作业:
1在自己的服务器上 创建数据库 fanmao
注意: 字符集 使用 utf8mb4
排序规则使用 ???
我的服务器
关闭连接
g
information
编辑连接...
明明
mysql
新建连接
performanc
删除连接
SVs
复制连接...
新建数据库...
新建查询
命令列界面...
运行SQL文件...
刷新
管理组
颜色
刷新
image.png
新建数据库
常规
SQL预览
fanmao
数据库名:
utf8mb4
字符集:
utf8mb4generalci
排序规则:
确定
取消
image.png

2在fanmao的数据库中创建表
c表
中请单号gno)
申请状态(gstate)
中请日期gdate)
202109001
2021-09-0107:12:01.631
01
202109092
02
2021-09-1109:32:01.631
03
2021-09-2517:02:01.631
202109303
202009904
04
2020-09-2517:02:01.631
d表
用户名(uname)
申请状态(gstate)
申请单号(gno)
身份证号码(idcard)
徐一
202109001
350***
01
王二
02
202109002
610***
李三
440***
03
202109003
李三
04
202009904
440***
image.png
l
需要注意的是 c 表中的申请日志是 datetime格式
其他字段使用 varchar(255) 格式

如果创建数据库比较麻烦,可以直接在我的数据库里面做题,但是没有更改和删除的权限;
fanmao
c@fanmao71(fanmao)-表
对象
@fa
fanmao71
具排序
三导入
导出
开始事务
筛选
文本
g.date
g_state
gno
202109001
2021-09-001
2021-09-102
202109092
2021-09-2:03
202109303
chengji
202009904
2021-09-2:04
emps
heros
image.png

完成如下试题
1查询身份证号码为440*** 的用户申请日期;(3分)
SQL复制代码
xxxxxxxxxx
select id_card, g_date from d 
LEFT JOIN c on c.g_no = d.g_no 
where id_card ='440***';
2查询同一个身份证号码,有两条及以上申请记录的身份证号码及申请记录个数;(8分)
SQL复制代码
xxxxxxxxxx
select id_card, count(*) from d GROUP BY id_card having count(*)>=2;
3将身份证号码为440*** 的记录在两个表中的申请状态改为 '03',分两个 SQL 来写;(6分)
SQL复制代码
xxxxxxxxxx
11
-- 修改d表
update d set g_state = '03' 
where id_card = '440***';
select *from d
where id_card="440***";
-- 修改c表
UPDATE c
set g_state = "03"
-- 从 d表中查询结果
where g_no in (select g_no from d WHERE id_card="440***");
4删除d表中所有姓李的记录。(3分)
SQL复制代码
xxxxxxxxxx
delete from d表 where u_name like ('李%');
思维导图

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多