mysql基础操作

Mysql 

  • mysql就是开放源码的关系数据库管理系统
    • 数据库就是按照数据结构来组织,存储和管理数据的仓库
    • 数据库管理系统:操作和管理数据库的大型软件,用于建立、使用和维护数据库
    • 关系型数据库:关系型数据库使用表来保存数据,使用表和表之间的关系来处理数据 还为数据的安全性、完整性、并发控制和数据恢复提供了保证。
  • 关系型数据库的术语
    • 关系: 一张二维表,每个关系必须有一个关系名,也就是俗称的表名
    • 字段/属性:二维表中的一列
    • 记录/元祖:二维表中的一行
    • 超键(super key):在关系中能唯一标识元祖的属性集称为关系模式的超键
    • 候选键(candidate key):不含有多余属性的超键
    • 主键(primary key):用户选作元祖标标识一个候选键
    • 外键:用于关联两张表
    • 范式:符合某一级别的关系模式的集合,构造数据库的表必须遵循一定的规则

在学习或复习下面的知识点的时候,默认已安装了MySQL,如果没有安装的请参照下面这篇文章进行安装,MySQL的安装还是比较麻烦的,但是并不难。

https://www.jb51.net/article/179335.htm

1.1.入门语句 

连接MySQL : 在cmd(管理员身份)下 运行:  mysql  -uroot -p   然后输入密码 ,即可进入MySQL

退出mysql语句: exit

1.2 当我们连接上服务器时,首先面对的是库,库有一个或者多个,可以使用  show databases; 查看我们有哪一些库,没有的话,可以创建数据库,

创建数据库语句: create database  数据库名  charset 字符集;  字符集建议使用 utf8。 有了数据库,我们便可以对数据库进行操作了,首先选库,

选库语句: use 库名;   删除数据库: drop database 数据库名; (慎用,笑)

 这里面我之前创建了几个库玩。

这里新创建了一个数据库demo01

 这里删除了数据库sys

对于数据库来说,我们可不可以给数据库改名呢,答案是不可以的,所以你在创建数据库的时候命名时候要注意一些。但是表是可以改名的。

1.3 简单的表操作

建表语句,创建一个叫做stu的表,首先你要先选库,才能建表

 

 建表语句的主体就是  create table 表名( ......)engine myisam charset utf8;

其中engine是表引擎,和性能相关,括号中的就是属性,下面会细讲

修改表,向表内增加新的属性

alter table 表名

add   列

建表完毕后,我们可以给表进行改名操作

rename table 旧名 to 新名;

 显示数据库中存在多少表 show tables;

向表内插入数据,下面是一个简单的示例,插入了三条数据

insert into 表名 values (key,value),(key,value),......,(key,value);

当然增删改查的增操作肯定不可能如上边这条语句一样死板,还有许多变化,下面会讲

 下面查看我们向这张表中填充的所有数据,使用select语句

select * from 表名;  *是指所有数据的意思

清空表数据: truncate 表名;  

删除表: drop  table 表名;

truncate相当于删除表再重建一张同样结构的表,操作后得到一张全新的表

delete是从删除数据行的层面进行操作

2.1乱码问题

命令行(cmd)使用的是GBK字符集,而我们数据库存放的是utf8,所以要告诉服务器,客户端使用GBK编码  set names gbk;

2.2 增删改查(这是针对表来说的)

首先创建一个薪资表    sex:性别         salary:薪资          fanbu :饭补

varchar(),  char(), decimal(), smallint()这些都是数据类型,下面会讲

not_null表示非空,default'' 表示设置默认值

查看一下表的结构

desc 表名;

  增  

insert into 表名(...........向哪一些属性添加数据..........)  values (.....),(.......),......,(.......);

例如:

insert into xinzi(id,name,sex,company,salary,fanbu)  values (1,"张三",'男', '百度', 8000.00,200);

下面向表中添加一些数据

 

 查 

select * from xinzi; 查看所有行所有列

 查看某一行的所有属性或部分属性

查看所有行的部分属性

改操作

示例

update xinzi

set

name = ‘张飞’,

company = '蜀中集团'

where id = 2;

删 这里的删并不是删除数据表,而是删除整行数据

delete from 表名 where ..;

 

至此,一个表的最简单的增删改查就已经学习过了

下面是对建表时的知识点 列类型的学习  , 重点是学习列类型的 存储范围  和 占据的字节关系

3.1  整型

tinyint  占据空间 1个字节 即8位    0-65535

samllint   2个字节  

mediuint   3个字节

int        4个字节

bigint   8个字节

3.2 浮点数型

float(m,d)

decimal(m,d)

m代表总位数,d代表小数点后的位数

3.3 字符串类型

char   如char(6) 表示定长字符串

varchar  如 varchar(20) 表示变长字符串

text  文本类型  可以存储大的文本段  text 不用加 默认值

blob  是二进制类型,用来存储图像,音频,视频等二进制信息    (对于图像,视频如何以二进制保存,可以去B站或其他地方去看一下科普视频,简直是太有趣了)

 3.4 时间类型

date  日期          格式: YYYY-MM-DD

time  时间      格式: HH-MM-SS

datetime  日期时间   格式   YYYY-MM-DD HH-MM-SS

year  年份类型    格式: YYYY

timestamp    自动取系统当前时间

 

4 重新补充一下对于表的属性的增删改查

4.1 增

alter table 表名

add 列名称 列类型 列参数

下面创建一个teacher表,包含属性姓名,年龄属性,现在向其新增一个课程属性

 

 4.2 删

 alter table 表名  drop 列名;

 4.3 改

alter table 表名

change  旧列名  新列名  新属性 新参数

5 查 select  的5种字句

5.1 where  :条件查询

where常用的运算符

在某集合内:  <  <=  > >=  = !=  in

在某范围内:  between

逻辑非: not 或 !         逻辑或:  or 或 ||      逻辑与: and或&&

这里要介绍一个方法,模糊查询 , 这里假设我们有一个商品表,表内有一个属性叫做商品名称goods_name,要求查询所有华为开头的商品。

select  列名

from   表名

where   goods_name  like   '华为%';

其中,%能匹配任何的字符     _匹配单一字符

5.2 group by  分组

group by 的常用用法是配合聚合函数    max()  min()  sum()  avg()  count()

test: 创建一个班级表,查询出班级中的成绩最高者

(1)创建一个表,列属性有姓名,班级,成绩

 (2) 然后向其添加一些数据

 

(3)查询各班成绩最好的学生

5.3  having  筛选

还是定义一个学生表,内含属性name    chinese(语文成绩)   math(数学成绩)   (english)英语成绩 

然后向其添加一些数据,查询出总分大于200的 学生

 

 

5.4 order by  排序

order by desc;  降序

order by asc; 升序

上面的学生表,按语文成绩的升序排序

5.5 limit 限制条数

向上面的查询只查后面语文成绩最低的两名

原文地址:https://www.cnblogs.com/zysfx/p/12608278.html