欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql

程序员文章站 2022-07-04 17:49:21
一:Mysql安装 #yum install mysql #yum install mysql-server #yum install mysql-devel 启动mysql #service mysqld start 验证安装 #mysql --version 设置数据库登录密码 #mysqlad ......

MySql

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

MySql 是什么样的数据库?

简介:MySQL 是最流行的关系型数据库管理系统(关系型数据库是由多张能互相联接的二维行列表格组成的数据库);

    特点:
    1.数据以表格的形式出现
    2.每行为各种记录名称
    3.每列为记录名称所对应的数据域
    4.许多的行和列组成一张表单
    5.若干的表单组成database

相关术语:

    数据库: 数据库是一些关联表的集合。
    数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
    列: 一列(数据元素) 包含了相同类型的数据, 例如商品的名称。
    行:一行(=元组,或记录)是一组相关的数据,例如一件商品的相关信息。
    主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
    外键:外键用于关联两个表。
    索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

mysql 与 navicat

navicat 是一款能够查看 mysql 数据库的可视化工具,使用 navicat 会让 mysql 变得更加简单。

注: 我们选择的是集成化工具 phpstudy,所以mysql的默认密码是root。

navicat 快捷建表流程

  1. 建立连接 链接mysql ;
    |主机名|端口|用户名|密码|
    |—|---|—|---|
    |localhost|3306|root|root|

注:localhost:3306 是mysql的服务器和端口(不是phpstudy apache)
2. 新建数据库 2007 字符集 utf-8

数据库名 字符集 排序规则
2007 utf8 – UTF-8 Unicode utf8_general_ci
  1. 打开数据库,在表格选项 右键 新建表
    (1) 一个表一定要有 id int 非空 主键(PRIMARY KEY) 自动递增(AUTO_INCREMENT) (新增数据的时候 数据会自动递增编号)

mysql数据类型 (了解)

  1. 整数类型 BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT => INT
  2. 浮点型 FLOAT、DOUBLE、DECIMAL => DECIMAL
  3. 字符串类型 CHAR、VARCHAR 、TEXT => VARCHAR
  4. 日期类型:Date、Time、DateTime、TimeStamp(自动存储记录修改时间 可以存放这条记录最后被修改的时间)、Year
  5. 其他数据类型 enum (枚举)

更多信息(https://www.cnblogs.com/-xlp/p/8617760.html);

mysql索引(了解)

1.普通索引 (normal) 是最基本的索引,它没有任何限制
2.唯一索引 (unique) 与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。
3.主键索引 (primary key) 是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引:
4.全文索引 (full text) 主要用来查找文本中的关键字

外键约束(了解)

所谓外键约束,就是指外键的作用。之前所讲的外键的作用都是默认的作用,实际上,可以通过对外键的需求,进行定制操作。

外键约束有三种模式,分别为:

district:严格模式(默认),父表不能删除或更新一个已经被子表数据引用的记录;
cascade:级联模式,父表的操作,对应子表关联的数据也跟着被删除;
set null:置空模式,父表的操作之后,子表对应的数据(外键字段)被置空。

数据库的查询

特点: 返回的是查询的结果 集合(多条数据)/单条信息

1. 查询所有数据

1.1  按照表名查询
语法:SELECT 列名称 FROM 表名称

```
select *  from `table_name`;
```

1.2  根据列名查询 多列数据
```
select id,class_name,student_name,chinese from `grade`;
```

2. 条件查找(精确查找)

2.1  单条件
语法:  SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
```
查询  grade表中id,class_name,student_name,chinese 等4列  且 班级为2003

select id,class_name,student_name,chinese from `grade` where class_name='2003';
```

2.1  多条件
and  如果需要多条件同时满足 就需要用到and
or  如果有多条件只需满足一个就可以 就需要用到 or

查询  grade表中id,class_name,student_name,chinese 等4列   班级为2003且学生是张三
```
select id,class_name,student_name,chinese from `grade` where class_name='2003' and student_name='张三' ;
```

3. 模糊查询(like)

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL LIKE 操作符语法
    SELECT column_name(s)  FROM table_name  WHERE column_name LIKE pattern

--  :"%" 可用于定义通配符(模式中缺少的字符)。
    以王开头的学生
    select * from `grade` where student_name like "王%" 
    以五结尾的学生
    select * from `grade`  where student_name like "%五";
    以学生名包含小的
    select * from `grade`  where student_name like "%小%" 

4. 条件查找(范围查找)

把2003班中语文成绩 60分以上,80分以下的同学给筛选出来

(1) 通过多条件限制

    select * from `grade` where class_name='2003' and chinese >= 60 and chinese < 80;

(2) 通过 between … and …

    select * from `grade` where class_name='2003' and chinese between 60 and 80;

5. 多值查询

IN 操作符允许我们在 WHERE 子句中规定多个值。 in操作符允许我们一次性查询多个值

查询 ‘张三’,‘李四’,‘王五’ 三人的成绩

传统多条件写法

SELECT * from `grade` where student_name = '张三' or student_name =  '李四' or  student_name = '王五'

in 写法

SELECT * from `grade` where student_name in ('张三','李四','王五')

6. 排序(升序 降序)

语法
select column_name(列名)  from  `table_name` where column_name 限制条件  order by  column_name  asc/desc

order  by  排序列名   排序方式
排序方式 
    asc  升序(ascend  上升);
    desc  降序(descend 下降);

查询 2003班所有学生语文成绩 语文成绩从高到低 成绩相同时按id大小排序
    SELECT id,class_name,student_name,chinese FROM `grade` where class_name='2003' order by chinese desc,id asc;

6. 数据输出限制

limit m,n 跳过m条数据,显示n条 (主要用来做数据分页)

  语法
select column_name(列名)  from  `table_name` where column_name 限制条件  order by  column_name  asc/desc  limit m,n
  
   SELECT id,class_name,student_name,chinese FROM `grade` where class_name='2003' order by chinese desc,id asc LIMIT 0,10;

7. 拓展新增

– SELECT count(*) FROM grade where class_name=‘2003’; – 满足条件的所有数据的数量
– SELECT sum(chinese) FROM grade where class_name=‘2003’; – 列之和
– SELECT avg(chinese) FROM grade where class_name=‘2003’; – 列之平均值
– SELECT max(chinese) FROM grade where class_name=‘2003’; – 列之最大值
– SELECT min(chinese) FROM grade where class_name=‘2003’; – 列之最小值
– SELECT round(avg(chinese)) FROM grade where class_name=‘2003’; – 四舍五入

二 mysql 的新增

插入语句 返回 受影响的行数 ( row>0 新增成功 )

注意 如果给栏位设置了唯一索引,重复添加同名数据会报错

Duplicate entry 'Tom' for key 'name'   //   关键字“name”的条目“Tom”重复

INSERT INTO 语句用于向表格中插入新的行

INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)
插入单条

insert into `grade`(class_name,student_name,chinese,math,english) VALUE('2003','heihei',25,1,9)

插入单条

insert into `grade`(class_name,student_name,chinese,math,english) VALUES('2003','heihei',25,1,9),('2003',"xixi",85,90,78)

三 mysql 的删除

删除语句 返回 受影响的行数 ( row>0 删除成功 row==0 删除失败 ) 配合条件语句更佳

语法

delete from `表名 where 条件

    delete FROM `grade_copy` where  student_name ='' ;

    delete FROM `grade_copy` where  id=42;

三 mysql 的更新

插入语句 返回 受影响的行数 ( row>0 更新成功 row==0 更新失败-> 数据没有做任何修改 )

语法

update 表名 set 列名= ‘要修改的内容’ where 条件

更新 一列

update `grade_copy` set student_name='星期一' where id = 35

更新 多列

update `grade_copy` set chinese=80,math=70,english=50  where id = 53 

row==0 更新失败-> 数据没有做任何修改 )

语法

update 表名 set 列名= ‘要修改的内容’ where 条件

更新 一列

update `grade_copy` set student_name='星期一' where id = 35

更新 多列

update `grade_copy` set chinese=80,math=70,english=50  where id = 53 

本文地址:https://blog.csdn.net/qq_43806604/article/details/112676446

相关标签: 学习 mysql