create database创建数据库
数据库的概念 类似 Excel; 一个Excel文件中可以存放很多张表;
一个数据库中也可以存放很多张表
创建数据库
字符集: utf8mb4 支持带有表情符号的中文字符 表情😊
排序规则:utf8mb4_general_ci 不区分大小写
对应的创建语句
CREATE DATABASE `fanmaoyyds` -- 创建库
CHARACTER SET 'utf8mb4' -- 设置字符集
COLLATE 'utf8mb4_general_ci'; -- 设置排序规则
create table创建表
创建一个学生表 , 表的名字为 自己的姓名拼音
字段 | 类型 | 说明 |
---|---|---|
id | int | 数字 |
sname | varchar | 字符 |
birthday | date | 日期 |
kg | decimal | 浮点型,带有小数点 |
使用工具创建表
建立好字段之后, 在未保存的情况下, 点击 【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,
PRIMARY KEY (`id`) -- 主键
);
在数据库中编写sql
-- 创建表
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)
);
insert into插入数据
INSERT INTO chen555 -- 表名
(`sname`, `birthday`, `kg`) -- 字段名
VALUES
('李四', '2021-11-08', 500) -- 具体的值
练习
创建表 emps1(表名可以随意起) | 字段 | 类型 | 说明 | | —- | —- | —- | | id | int | | | ename | varchar(255) | 姓名 | | salary | decimal(10,2) | 薪资 |
往里面添加10条数据
insert into emps1
(ename, salary)
values
("晨晨",9000);
- 查询工资最高的人员;
update 修改数据
修改table中表数据
UPDATE `fanmao71yyds`.`富婆分账表` -- 表名
SET `salary` = 8888 -- 设置数据
WHERE `id` = 9 -- 条件
- 将工资低于10000元 员工的工资 涨薪 5000;
update emps
set salary = salary+5000 -- 设置薪资
where salary < 10000; -- 条件
delete 删除一条数据
DELETE FROM `fanmao71yyds`.`zhangtiezhuhaha` -- 对应的表
WHERE `id` = 3 -- 条件
删除salary 低于10000 和 salary 高于20000的员工
DELETE from `fanmao71yyds`.`姚文凌工资表`
where `salary` <10000 or `salary`>=20000
清空数据
清空表中的数据有两种方法
使用delete 语句删除数据
delete FROM 姚文凌工资表;
将表中数据全部清空。
使用 truncate 清空数据
TRUNCATE 姚文凌工资表;
清空数据 只是将数据清空,但是表还存在。
Drop 删除表
删除表 除了将表中数据清空,并且表也没有了。
DROP TABLE 上海富婆通讯录
搭建Mysql5.7
现在市场上主要使用的Mysql版本有 5.7 和 8.0 的版本。
这里主要安装使用 5.7
1、下载mysql官方yum repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2、安装yum repository
yum install -y mysql57-community-release-el7-10.noarch.rpm
3、安装mysql服务
yum -y install mysql-community-server
4、启动mysql服务
systemctl start mysqld.service
systemctl status mysqld.service
5、获取mysql随机密码
grep "password" /var/log/mysqld.log
6、登录Mysql
在命令行中登录数据
使用命令 mysql -u root -p
- -u root 表示使用root 账号
- -p 使用密码
这里需要注意: 密码输入的时候不会显示。
输入密码之后按下 回车,如果输入无误 进入到mysql 控制台。 这里可以直接使用我们之前的sql语句;
7、修改密码规则
将密码规则设置弱类型
set global validate_password_policy=0;
set global validate_password_length=1;
8、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'fanmao888';
- ‘root’@’localhost’ 表示 root账号在本地的权限;
- IDENTIFIED BY ‘fanmao888’ 将root用户的账号密码设置为fanmao888
默认的root账号只能在本地登录,也就是只能在服务器的命令行中登录。如果需要通过navicat 等工具远程连接,需要开通远程权限;
9、设置远程用户登录
grant all privileges on *.* to 'root'@'%' identified by 'fanmao888' with grant option;
给予root账号密码为 fnamao888
可以通过任何ip地址来远程登录数据库
并且root账号拥有所有的权限;
添加完成之后,将更改立即生效。
flush privileges;
-- 查看所有的数据库
show databases;
Navicat 远程连接 Mysql
作业:
- 在自己的服务器上 创建数据库 fanmao
注意: 字符集 使用 utf8mb4
排序规则使用 ???
- 在fanmao的数据库中创建表
l
需要注意的是 c 表中的申请日志是 datetime格式
其他字段使用 varchar(255) 格式
如果创建数据库比较麻烦,可以直接在我的数据库里面做题,但是没有更改和删除的权限;
完成如下试题
- 查询身份证号码为440* 的用户申请日期;(3分) ```sql
select id_card, g_date from d LEFT JOIN c on c.g_no = d.g_no where id_card =’440*‘;
2. 查询同一个身份证号码,有两条及以上申请记录的身份证号码及申请记录个数;(8分)
```sql
select id_card, count(*) from d GROUP BY id_card having count(*)>=2;
- 将身份证号码为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*“);
4. 删除d表中所有姓李的记录。(3分)
```sql
delete from d表 where u_name like ('李%');