mysql samllint_mysql基础操作

Mysql

mysql就是开放源码的关系数据库管理系统

数据库就是按照数据结构来组织,存储和管理数据的仓库

数据库管理系统:操作和管理数据库的大型软件,用于建立、使用和维护数据库

关系型数据库:关系型数据库使用表来保存数据,使用表和表之间的关系来处理数据 还为数据的安全性、完整性、并发控制和数据恢复提供了保证。

关系型数据库的术语

关系: 一张二维表,每个关系必须有一个关系名,也就是俗称的表名

字段/属性:二维表中的一列

记录/元祖:二维表中的一行

超键(super key):在关系中能唯一标识元祖的属性集称为关系模式的超键

候选键(candidate key):不含有多余属性的超键

主键(primary key):用户选作元祖标标识一个候选键

外键:用于关联两张表

范式:符合某一级别的关系模式的集合,构造数据库的表必须遵循一定的规则

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

1.1.入门语句

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

退出mysql语句: exit

4ec5a1ed6c80ccf24b3f9c5879b55e88.png

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

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

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

9b4e3fb2d5683a639d72f49c3fef896a.png

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

b16dcd6845b2bfd52dd9434f343640b5.png

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

804963e774ec0f63e99d39e3fc2e5572.png

这里删除了数据库sys

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

1.3 简单的表操作

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

c587952196158fc4f49d0d7756c5623f.png

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

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

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

alter table 表名

add   列

e4c2ab23a0107aa8a684cbd17a1062a4.png

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

rename table 旧名 to 新名;

c8bc0fb3b3d74668fa66356382ab123c.png

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

3d6695987b2b29d390c0c0e61fe8c73a.png

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

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

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

e55d1a59a7eee23a1f02266a2bf6c63f.png

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

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

058fb4b0bca1d0603367e4aa4c3866b0.png

清空表数据: truncate 表名;

删除表: drop  table 表名;

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

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

7147108b934049b6134cf1fe3eed0ff1.png

2.1乱码问题

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

cd8c4c9cb2ec13820c03313745213f44.png

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

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

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

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

d90986c24ae76f8ebdfb653b6749f0d7.png

查看一下表的结构

desc 表名;

e1beb4d03dabb99c59d9fa3be313f32c.png

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

例如:

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

下面向表中添加一些数据

220251e9d8bd5f7c1fa57a61d423c4e3.png

70bea73da4e59b1c91632619904d9aa4.png

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

890522199f287351e7e517fc23d023c2.png

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

ef6238bc3e4dd27a4e04b6dee7581f49.png

查看所有行的部分属性

7aa29ca4539060e996bd5eb28fa0bd93.png

改操作

示例

update xinzi

set

name = ‘张飞’,

company = '蜀中集团'

where id = 2;

5803aed32bcfd4a855179f791c633e02.png

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

delete from 表名 where ..;

fc77b9ecc4dbb9fbd03330b17ea92a79.png

528d4a9bee6aef2e0582c85c7d13681c.png

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

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

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    自动取系统当前时间

6fc5c98159ed6f2f8e7b7b6785b2e93d.png

fb8b86b0cb867b76d316f93f1cfb1949.png

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

4.1 增

alter table 表名

add 列名称 列类型 列参数

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

e8c6fb575b5dfe88359b248752668d01.png

a09446f4d41bb3b8e1dd5c8c11d7e23b.png

4.2 删

alter table 表名  drop 列名;

51bf2b1fb038ad1a6217566a141a0e94.png

4.3 改

alter table 表名

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

569bf03ef7b40a770a22f78c7b49223f.png

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)创建一个表,列属性有姓名,班级,成绩

9ec227429a224bd30f6567d9c56aeabb.png

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

8a971abd5cc0e769e9f1380475b2643a.png

71eb9611c7c8db3f5f755a5917a60d14.png

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

f068fefaa34e944ac9496694357df9b4.png

5.3  having  筛选

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

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

30adfaf1b0ea6c1047bda14706ef0380.png

04afd527c077373dab426a27ae8594f0.png

0e6f3b058a3e18ad4721f673c79c74cd.png

5.4 order by  排序

order by desc;  降序

order by asc; 升序

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

a9673654970460ca7d62b6a7027bdc59.png

5.5 limit 限制条数

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

51d6ee1fe0a3b37b61f2f4ee2e4f9d6f.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值