create database创建数据库
数据库的概念 类似 Excel; 一个Excel文件中可以存放很多张表; 一个数据库中也可以存放很多张表
创建数据库
新建数据库 常规 SQL预览 fanmaoyyds 数据库名: utf8mb4 字符集: utf8mb4general 排序规则:
字符集: utf8mb4 支持带有表情符号的中文字符 表情😊 排序规则:utf8mb4_general_ci 不区分大小写
对应的创建语句 SQL复制代码 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
建立好字段之后, 在未保存的情况下, 点击 【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 可以看到自动生成的语句; SQL复制代码 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,
在数据库中编写sql SQL复制代码 CREATE TABLE wangdachui2 ( id int not null auto_increment, sname VARCHAR(255) not null, kg DECIMAL(3,2) not null,
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
insert into插入数据
SQL复制代码 INSERT INTO chen555 -- 表名 (`sname`, `birthday`, `kg`) -- 字段名 ('李四', '2021-11-08', 500) -- 具体的值
练习 1创建表 emps1(表名可以随意起)
字段
| 类型
| 说明
| id
| int
| | ename
| varchar(255)
| 姓名
| salary
| decimal(10,2)
| 薪资
| 2往里面添加10条数据
3查询工资最高的人员;
update 修改数据 修改table中表数据 SQL复制代码 UPDATE `fanmao71yyds`.`富婆分账表` -- 表名 SET `salary` = 8888 -- 设置数据
1将工资低于10000元 员工的工资 涨薪 5000; SQL复制代码 set salary = salary+5000 -- 设置薪资 where salary < 10000; -- 条件
delete 删除一条数据 SQL复制代码 DELETE FROM `fanmao71yyds`.`zhangtiezhuhaha` -- 对应的表
删除salary 低于10000 和 salary 高于20000的员工 SQL复制代码 DELETE from `fanmao71yyds`.`姚文凌工资表` where `salary` <10000 or `salary`>=20000
清空数据
清空表中的数据有两种方法 1使用delete 语句删除数据 将表中数据全部清空。 2使用 truncate 清空数据 清空数据 只是将数据清空,但是表还存在。
Drop 删除表 删除表 除了将表中数据清空,并且表也没有了。 搭建Mysql5.7
现在市场上主要使用的Mysql版本有 5.7 和 8.0 的版本。 这里主要安装使用 5.7
1、下载mysql官方yum repository Bash复制代码 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 2、安装yum repository Bash复制代码 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 3、安装mysql服务 Bash复制代码 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 4、启动mysql服务 Bash复制代码 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 5、获取mysql随机密码 Bash复制代码 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
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 输入密码之后按下 回车,如果输入无误 进入到mysql 控制台。 这里可以直接使用我们之前的sql语句;
7、修改密码规则 将密码规则设置弱类型 Bash复制代码 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
8、修改密码 Bash复制代码 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 默认的root账号只能在本地登录,也就是只能在服务器的命令行中登录。如果需要通过navicat 等工具远程连接,需要开通远程权限;
9、设置远程用户登录
Bash复制代码 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 添加完成之后,将更改立即生效。 mysq1> flush privileges; 0.00sec) affected QueryOK,o rows Navicat 远程连接 Mysql
数据库 Navicat 我的服务器 连接名: 自己的服务器 1.117.A 85 主机: 3306 端口: 用户名: root 密码: 保存密码 X 连接成功 确定 测试连接 确定 取消
作业: 1在自己的服务器上 创建数据库 fanmao 注意: 字符集 使用 utf8mb4 排序规则使用 ???
我的服务器 关闭连接 g information 编辑连接... 明明 mysql 新建连接 performanc 删除连接 SVs 复制连接... 新建数据库... 新建查询 命令列界面... 运行SQL文件... 刷新 管理组 颜色 刷新 新建数据库 常规 SQL预览 fanmao 数据库名: utf8mb4 字符集: utf8mb4generalci 排序规则: 确定 取消 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*** 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 完成如下试题 1查询身份证号码为440*** 的用户申请日期;(3分) SQL复制代码 select id_card, g_date from d LEFT JOIN c on c.g_no = d.g_no
2查询同一个身份证号码,有两条及以上申请记录的身份证号码及申请记录个数;(8分) SQL复制代码 select id_card, count(*) from d GROUP BY id_card having count(*)>=2;
3将身份证号码为440*** 的记录在两个表中的申请状态改为 '03',分两个 SQL 来写;(6分) SQL复制代码 update d set g_state = '03' where id_card = '440***'; where g_no in (select g_no from d WHERE id_card="440***");
4删除d表中所有姓李的记录。(3分) SQL复制代码 delete from d表 where u_name like ('李%');
思维导图
|