create database创建数据库

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

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

创建数据库
image.png

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

对应的创建语句

  1. CREATE DATABASE `fanmaoyyds` -- 创建库
  2. CHARACTER SET 'utf8mb4' -- 设置字符集
  3. COLLATE 'utf8mb4_general_ci'; -- 设置排序规则

create table创建表

创建一个学生表 , 表的名字为 自己的姓名拼音

字段 类型 说明
id int 数字
sname varchar 字符
birthday date 日期
kg decimal 浮点型,带有小数点

使用工具创建表
image.png

建立好字段之后, 在未保存的情况下, 点击 【Sql预览】
image.png
可以看到自动生成的语句;

  1. CREATE TABLE `wangdachui` (
  2. `id` int NOT NULL AUTO_INCREMENT, -- id 字段 int 表示数字类型 not null 不可为空 auto_increment 自动增加
  3. `sname` varchar(255) NOT NULL, --
  4. `birthday` date NOT NULL,
  5. `kg` decimal(3, 2) NOT NULL,
  6. PRIMARY KEY (`id`) -- 主键
  7. );

在数据库中编写sql

  1. -- 创建表
  2. CREATE TABLE wangdachui2 (
  3. id int not null auto_increment,
  4. sname VARCHAR(255) not null,
  5. birthday date not null,
  6. kg DECIMAL(3,2) not null,
  7. PRIMARY KEY (id)
  8. );

image.png

insert into插入数据

  1. INSERT INTO chen555 -- 表名
  2. (`sname`, `birthday`, `kg`) -- 字段名
  3. VALUES
  4. ('李四', '2021-11-08', 500) -- 具体的值

练习

  1. 创建表 emps1(表名可以随意起) | 字段 | 类型 | 说明 | | —- | —- | —- | | id | int | | | ename | varchar(255) | 姓名 | | salary | decimal(10,2) | 薪资 |

  2. 往里面添加10条数据

  1. insert into emps1
  2. (ename, salary)
  3. values
  4. ("晨晨",9000);
  1. 查询工资最高的人员;

update 修改数据

修改table中表数据

  1. UPDATE `fanmao71yyds`.`富婆分账表` -- 表名
  2. SET `salary` = 8888 -- 设置数据
  3. WHERE `id` = 9 -- 条件
  1. 将工资低于10000元 员工的工资 涨薪 5000;
    1. update emps
    2. set salary = salary+5000 -- 设置薪资
    3. where salary < 10000; -- 条件

    delete 删除一条数据

    1. DELETE FROM `fanmao71yyds`.`zhangtiezhuhaha` -- 对应的表
    2. WHERE `id` = 3 -- 条件

删除salary 低于10000 和 salary 高于20000的员工

  1. DELETE from `fanmao71yyds`.`姚文凌工资表`
  2. where `salary` <10000 or `salary`>=20000

清空数据

清空表中的数据有两种方法

  1. 使用delete 语句删除数据

    1. delete FROM 姚文凌工资表;

    将表中数据全部清空。

  2. 使用 truncate 清空数据

    1. TRUNCATE 姚文凌工资表;

清空数据 只是将数据清空,但是表还存在。

Drop 删除表

删除表 除了将表中数据清空,并且表也没有了。

  1. DROP TABLE 上海富婆通讯录

搭建Mysql5.7

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

1、下载mysql官方yum repository

  1. wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

image.png

2、安装yum repository

  1. yum install -y mysql57-community-release-el7-10.noarch.rpm

image.png

3、安装mysql服务

  1. yum -y install mysql-community-server

image.png

4、启动mysql服务

  1. systemctl start mysqld.service
  2. systemctl status mysqld.service

image.png

5、获取mysql随机密码

  1. grep "password" /var/log/mysqld.log

image.png

6、登录Mysql

在命令行中登录数据
使用命令 mysql -u root -p

  • -u root 表示使用root 账号
  • -p 使用密码

这里需要注意: 密码输入的时候不会显示。
image.png
输入密码之后按下 回车,如果输入无误 进入到mysql 控制台。 这里可以直接使用我们之前的sql语句;

7、修改密码规则

将密码规则设置弱类型

  1. set global validate_password_policy=0;
  2. set global validate_password_length=1;

image.png

8、修改密码

  1. ALTER USER 'root'@'localhost' IDENTIFIED BY 'fanmao888';
  • ‘root’@’localhost’ 表示 root账号在本地的权限;
  • IDENTIFIED BY ‘fanmao888’ 将root用户的账号密码设置为fanmao888

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

9、设置远程用户登录

  1. grant all privileges on *.* to 'root'@'%' identified by 'fanmao888' with grant option;

给予root账号密码为 fnamao888
可以通过任何ip地址来远程登录数据库
并且root账号拥有所有的权限;
image.png
添加完成之后,将更改立即生效。

  1. flush privileges;

image.png

  1. -- 查看所有的数据库
  2. show databases;

Navicat 远程连接 Mysql

image.png

作业:

  1. 在自己的服务器上 创建数据库 fanmao

注意: 字符集 使用 utf8mb4
排序规则使用 ???
image.pngimage.png

  1. 在fanmao的数据库中创建表

image.pngl
需要注意的是 c 表中的申请日志是 datetime格式
其他字段使用 varchar(255) 格式

如果创建数据库比较麻烦,可以直接在我的数据库里面做题,但是没有更改和删除的权限;
image.png


完成如下试题

  1. 查询身份证号码为440* 的用户申请日期;(3分) ```sql

select id_card, g_date from d LEFT JOIN c on c.g_no = d.g_no where id_card =’440*‘;

  1. 2. 查询同一个身份证号码,有两条及以上申请记录的身份证号码及申请记录个数;(8分)
  2. ```sql
  3. select id_card, count(*) from d GROUP BY id_card having count(*)>=2;
  1. 将身份证号码为440 的记录在两个表中的申请状态改为 ‘03’,分两个 SQL 来写;(6分) ```sql — 修改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*“);

  1. 4. 删除d表中所有姓李的记录。(3分)
  2. ```sql
  3. delete from d表 where u_name like ('李%');

思维导图

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