mysql学习第一天

mysql第一天

1. Mysql的安装

  • 安装成功后的datadir目录
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
  • 卸载完成后需要将该文件夹删除

1.2 启动MySQL服务

  • 计算机->管理->服务

  • cmd->services.msc 打开

  • cmd->net start mysql (需要系统管理员权限)

    • 以管理员的身份打开cmd窗口

在这里插入图片描述

1.3 MySQL 的登录和退出(cmd命令行窗口)

  • 登录
mysql -uroot -proot
  • 退出
exit
  • 登录其他主机上的数据库
mysql -h(ip地址) -uroot -proot
mysql --host=ip地址 --user=root --password=root

2.SQL

  • 定义:SQL(Structured Query Language):结构化查询语言

2.1 SQL的作用

  • 所有关系型数据库的查询规范,不同数据库都支持
  • 通用数据库操作语言,可以用于不同数据库系统
  • 不同的数据库SQL有一定区别

2.2 SQL 语句类别

  • DDL(数据定义语言):例如:建库,建表

  • DML(数据操纵语言):例如:对表中的记录增删改

  • DQL(数据查询语言):例如:对表中的查询操作

  • DCL(数据控制语言):例如:对用户权限控制

  • 图解

在这里插入图片描述

2.3 SQL的语法规范

  • 语句以分号结尾

  • 不区分大小写

  • 3种注释

    注释的语法说明
    –空格单行注释
    /**/多行注释
    #MySQL的特有注释
  • 图解

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.DDL(操作数据库,表)

3.1 操作数据库:CRUD

  • C(Create):创建
  • R(Retrieve):查询
  • U(Update):改
  • D(Delete):删
  • 使用数据库

R.1: 查看所有数据库的名称

show databases;

R.2:查看某个数据库的字符集(查看某个数据库的创建语句)

show creat database mysql(数据库名称);
  • 效果图

在这里插入图片描述

C.1 创建一个数据库

creat database db1(数据库名称);
  • 效果图

在这里插入图片描述

C.2创建一个数据库(看数据库名是否存在,存在才创建)

create database if not exists db1(数据库名);
  • 效果图

在这里插入图片描述

C.3 创建一个数据库以gbk为编码

CREATE DATABASE IF NOT EXISTS db4 CHARACTER SET gbk;
  • 效果图

在这里插入图片描述

U.1 修改数据库的字符集

alter database 数据库名称 character set 字符集名称;
  • 效果图

在这里插入图片描述

D.1 删除数据库(判断是否存在,存在再删除)

drop database if exists db4;
  • 效果图

在这里插入图片描述

使用数据库

1. 查询当前正在使用的数据库名称
select database();
  • 效果图

在这里插入图片描述

2. 使用数据库(进入数据库)
use 数据库名称;
  • 效果图

在这里插入图片描述

4.DDL:操作表

R.1 查询某个数据库中所有的表的名称

show tables;
  • 效果图

在这里插入图片描述

R.2 查询某个表中的结构

desc 表的名称;
  • 效果图

在这里插入图片描述

C.1 创建表

create table 表名{
	字段名1 字段类型,
	字段名2 字段类型,
	...
	字段名n 字段类型
}

常用的数据类型

类型语法示例
整数(int)intage int,
小数(double)doublescore double(5,2),表示最大长度为5,保留2位小数
日期(date)dateatime date,取值为yyyy-MM-dd
日期(datetime)datetimeatime datetime,取值为yyyy-MM-dd HH:mm:ss,
时间戳类型(timestamp)timestampatime timestamp,取值为yyyy-MM-dd HH:mm:ss,
字符串类型(varchar)varchar()name varchar(8),8代表最大字符为8
注意点
  • 时间戳类型如果不给这个字段赋值,或赋值为null,则默认使用当前系统时间,来自动赋值
示例
create table student(
	id int,
	age int,
	score double(4,2),
	birthday date,
	insert_time timestamp
)
  • 效果图

在这里插入图片描述

C.2 复制一个相同的表

create table stu like student;
  • 效果图

在这里插入图片描述

D.1 删除表

drop table if exists 表名;
drop table 表名; -- 也可以
  • 效果图

在这里插入图片描述

U.1 修改表名

alter table 表名 rename to 新的表名;
  • 效果图

在这里插入图片描述

R.1 查看一个表的字符集

show create table 表名;
  • 效果图

在这里插入图片描述

R.3 修改一个表的字符集

alter table 表名 character set 字符集的名称;
  • 效果图

在这里插入图片描述

U.2 表中添加一列

 alter table stu add 列名 数据类型
  • 效果图

在这里插入图片描述

U.3 修改列的名称,数据类型

  • 修改列的名称和数据类型
alter table 表名 change 列名 新列名 新数据类型;
  • 效果图

在这里插入图片描述

  • 修改列的数据类型
alter table 表名 modify 列名 新数据类型;
  • 效果图

在这里插入图片描述

D.2 删除表中的某一列

alter table 表名 drop 列名;
  • 效果图

在这里插入图片描述

5.DML(增删改表中记录)

5.1添加数据

insert into 表名(列名1,列名2,列名3...列名n) values(1,值2,值3.....值n)


-- 方法二(全部赋值的简化写法)
insert into 表名 values(1,值2,值3....值n)
  • 效果图

在这里插入图片描述

  • 效果图2

在这里插入图片描述

5.2 删除数据

delete from 表名 [where 条件表达式]; -- 删除满足条件的记录

delete from 表名;-- 删除表中所有数据

-- 删除表,然后在创建一个一模一样的空表

truncate table 表名;
  • 删除满足条件的记录效果图

在这里插入图片描述

  • 删除所有记录

在这里插入图片描述

注意点
  • 第二种方法删除记录不推荐(表中多少记录,执行多少次删除操作,效率低)
  • 第三种方法先删除表,再创建表,效率高

5.3 修改数据

update 表名 set 列名1=1,列名2=2... where 条件
  • 效果图

在这里插入图片描述

  • 如果不加任何条件,则会将表中的所有记录全部修改

在这里插入图片描述

6. 查询表中的记录(DQL)

  • 查询语法
select 
	字段列表
from
    表名列表
where
    条件列表
group by
    分组列表
having
    分组之后的条件
order by
    排序
limit
    分页限定

6.1 基础查询

  • 多个字段的查询
  • 去除重复
  • 计算列
  • 起别名

6.2 多个字段的查询

select 字段1,字段2 from 表名;
-- 创建一个表
CREATE TABLE student3 (
 id INT, -- 编号
 NAME VARCHAR(20), -- 姓名
 age INT, -- 年龄
 sex VARCHAR(5), -- 性别
 address VARCHAR(100), -- 地址
 math INT, -- 数学
 english INT -- 英语
);
INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,'马云',55,'男','
杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩
',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港
',99,99),(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65);

-- 查看表

SELECT *FROM student3;


-- 多个字段的查询

SELECT NAME,age FROM student3;
  • 效果图

在这里插入图片描述

  • 规范查询

在这里插入图片描述

  • 通配符查询(全部的字段)

在这里插入图片描述

6.3 去除重复的结果集

  • 有重复的结果集

在这里插入图片描述

  • 去除重复的结果集

在这里插入图片描述

6.4 计算列的和

  • 有null参与

在这里插入图片描述

  • 解决于null相加为null的问题

在这里插入图片描述

6.5 起别名

  • 给一个字段另起一个名字
select 字段名 as 别名 from 表名
  • 示例
SELECT NAME AS 姓名,math AS 数学,english AS 英语,math+IFNULL(math+english,0) AS 总分 FROM student3;
  • 效果图

在这里插入图片描述

  • as可以省略,用空格代替
SELECT NAME 姓名,math 数学,english 英语,math+IFNULL(math+english,0) 总分 FROM student3;
  • 效果图

在这里插入图片描述

7.DQL(条件查询)

  • where 子句后的运算符

1.>、<、<=、>=、=、<>

2.BETWEEN…AND

3.IN(集合)

4.LIKE ‘张%’

5.IS NULL

6.and 或 &&

7.or 或 ||

8.not 或 !

7.1 查询关系表达式(>,<,=…)

  • 查询年龄大于等于20的记录

在这里插入图片描述

  • 等于20只需要写一个等号

在这里插入图片描述

  • 不等于20可以写!=或者<>

在这里插入图片描述

在这里插入图片描述

7.2 between…and…查询

  • 查询年龄20到30之间
    • && 连接关系表达式
    • and 连接关系表达式
    • age between 20 and 30

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7.3 or 或者 || 和IN(集合)

  • 查询年龄18,22,25的人

在这里插入图片描述

在这里插入图片描述

7.4 is null 和 is not null

  • 不能用等号判断值是否为null
  • 需要使用 is null判断

在这里插入图片描述

在这里插入图片描述

  • 判断不为null的记录

在这里插入图片描述

7.5 like(模糊查询)

  • 占位符

    • _ 代表单个字符
    • % 代表多个字符
  • 查询姓马的人的记录

在这里插入图片描述

  • 查询第二字是‘化’的人的记录

在这里插入图片描述

  • 查询姓名为3个字的人的记录

在这里插入图片描述

  • 查询姓名中包含‘德’的人的记录(常用)

在这里插入图片描述

8.总结

8.1 数据库的操作

  • 查看所有数据库
show databases;
  • 创建数据库
create database 库名;
  • 查看数据库创建数据的语句
show create database 库名;
  • 删除数据库
drop database;

8.2 库中表的操作

  • 查看所有表
show tables;
  • 创建表
create table student{
	id int,
	name varcha(10),
	age int
}
  • 查看表的结构
show create table 表名;
  • 查看表的组成,表格形式
desc 表名;
  • 删除表
drop table 表名;

8.3 表中数据的操作

  • 插入数据
insert into 表名(列名)values();
  • 修改数据
update 表名 set 列名=where 条件;
  • 删除数据:删除所有数据
delete from 表名 where 条件;
truncate [table] 表名;
  • 查询记录
    • 查询所有列
selete * from 表名;
  • 查询时指定别名
selete 字段名 as 别名 from 表名; -- as可以省略
  • 去除重复数据
distinct 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值