MySQL操作入门第一节

1.MySQL的结构

  1. 先有数据库(多个库)-表(多个表)-再有数据(行-列)

  2. MySQL系统的数据库容许用户自己创建多个数据库

1)操作流程 #查询所有的数据库 SHOW databases;

#创建数据库 CREATE DATABASE demo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

#删除数据库 DROP DATABASE demo;

#使用工具来增删数据库更简单,但我们也要知道要怎么使用SQL来完成

CREATE DATABASE demo DEFAULT CHARACTER SET utf8; CREATE DATABASE demo1 DEFAULT CHARACTER SET utf8;

#通过SQL或者工具来完成数据库的字符串集修改 ALTER DATABASE demo DEFAULT CHARACTER SET gbk;

#通过use来选择使用不同的数据库,也可以使用工具直接默认操作选中的数据库 USE demo; SELECT * FROM abc;

USE demo1; SELECT * FROM abc;

2.字符集

什么是字符集? 计算机底层只能存二进制,01000001,如果将abc等等存到计算机的话,得到对应的二进制编码规则,二进制编码规则就是字符集,有很多个,但目前来看,对于中国的用户来说,中英文数字特殊字符,我们有我们对应的也有字符集,gbk,utf-8,目前使用最多的是utf-8,这个字符集对中文的支持最好

3.表的概念

数据库最终都要落到表上 举例: 如果想要把公司所有员工都存到数据库

1). 需要有一个表来保存员工信息,给表一个名字,这个表在当前在当前数据库下是唯一的,一般表的命名要有含义,首选英文名称,一般如员工表叫employer

2). 给表定义要存什么,员工是一个概念,对应要员工的什么(信息)进行一个分解,根据实际情况分解,如id、姓名、性别、身份证号码、部门

3).表存数据要以行的形式进行存储,一个行数据就是一个完成的概念,对应employer表来说,它的一行数据就是一个员工

4).在步骤2,我们又知道员工的整体概念被分解成一个个单独的信息(id...)这些被称为一行的多个列,正是这些多个列的信息构成一行完整的数据

5).被分解的一个个单独信息(id...),我们称之为字段(属性的意思)

6).表名--字段名的关系,具体到我们现在员工表的例子,就是员工有哪些字段(属性),这个就通过表名--字段名这样的形式,就把employer描述清楚了

7). 字段名和表名也一样,最好都有意义,首选英文名称

4.字段(列/属性)的数据类型

数据要存到数据库中的表中,要明确字段的一个数据类型,如年龄就是数字类型、姓名是字符串类型,身份证号是字符串类型,年龄是日期类型单独

4.1整型(存整数的)

tinyint、smallint、mediumint、int、bigint

4.2 浮点型(float和double)(存小数的、使用时看需要多大的精度,即有效数字)

1个数字是1个字符、浮点型存储近似值,不适合存储精确数值,例如金钱 float(m,d)是单精度的,8位精度(4字节) m总个数,d小数位

double(m,d)是双精度的,16位精度(8字节)m总个数,d小数位

4.3定点数

存储精确的数值

decimal(m,d)m代表有效数字的个数,在1~65之间;d代表小数位,在0 ~ 30之间。

浮点数和定点数,都有有效数字位数m和小数位数d的定义。有效数字的位数是指一个数从左开始非零位置向右计数,如2.34的两位有效数字为2.3,如果对于0.123的两位有效数字为0.12。

float(4,2),如2.340不符合规定,20.34就符合

4.4字符串

char(n)、varchar(n)、tinytext、text、mediumtext、longtest 根据字符串的大小来定义

4.5二进制数据

保存图片、压缩包、视频... 如果要将这些保存到数据库,需要转化成二进制数据,再保存到数据库。

这个不太常用的数据类型

TINYBLOB(最多256个字符串)、BLOB、MEDIUMBLOB、LONGBLOB

4.6 日期时间类型

date(2021-10-14)、time(20:20:21)、datetime(2021-10-14 20:20:46)、timestamp(自动保存记录修改的时间)

datatime和timestamp不同点: 1.两者存储方式不一致 datetime是原样输入和输出,而timestamp是把客户端插入的时间从当前时区转化为世界标准时间进行存储,查询时,又转化为当前时区进行输出。

2.存储时间范围不同 datetime从1000-01-01 00:00:00.000000到9999-12-31 23:59:59.999999,而timestamp所能存储的时间是1970-01-01 00:00:00.000000到2038-01-19 03:14:07.999999 timestamp和datatime除了存储形式之外没什么其它太大差距,对于跨时区的业务,timestamp更合适

5.管理表

注意mysql的关键字不区分大小写

5.1 创建并查看当前数据库的所有表

查看当前所有操作的数据库有哪些表

创建表 格式:

CREATE TABLE 表名(

字段名 字段类型[NOT NULL]

[AUTO_INCREMENT],

[字段名 字段类型,]

......

[字段名 字段类型,]

[PRIMARY KEY(字段名)]

)

5.2 修改表

1). 给表添加一个字段