MySQL数据库基本操作语句之库表管理

160 阅读6分钟

一、MySQL里的数据类型

类型含义
tinyint(n)1个字节,范围(-128~127)
smallint(n)2个字节,范围(-32768~32767)
mediumint(n)3个字节,范围(-8388608~8388607)
int(n)4个字节(32个比特位),整数型,范围(-2147483648~2147483647)
bigint(n)8个字节,整数型,范围(+-9.22*10的18次方)
float(m,d)单精度浮点,8位精度,4字节32位。m数字总个数,d小数位
double(m,d)双精度浮点,16位精度,8字节64位 。m总个数,d小数位
char固定长度的字符类型
varchar可变长度的字符类型
text文本
image图片
decimal(5,2)5个有效长度数字,小数点后面有2位(例如123.56)

char与varchar

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

下表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:

CHAR(4)存储需求VARCHAR(4)存储需求
''' '4个字节''1个字节
'ab''ab '4个字节'ab '3个字节
'abcd''abcd'4个字节'abcd'5个字节
'abcdefgh''abcd'4个字节'abcd'5个字节

字节大小:

  • char无论是否有值,都会占用固定长度的字节大小,保存在磁盘上都是4字节。
  • varchar在保存字符时,默认会加一个隐藏的结束符,因此结束符会多算一个字节。

优劣比较:

  • varchar比char节省磁盘空间。
  • 但varchar类型的数据读写速度比char慢,因为char是连续的磁盘空间,e而varchar在多次增删改查中会产生一些磁盘空间碎片。

int(N)

int(N)中的N不是限制字段取值范围的,int的取值范围是固定的(0至4294967295)或(-2147483648至2147483647)。N这个值是为了zerofill在字段中的值不够时补零的。

int默认是signed(有符号),取值范围(-2147483648至2147483647)。如果加了unsigned( 无符号)参数那么取值范围就为(0至4294967295)。

float(m,d)

设一个字段定义为float(6,3),表示6个有效长度数字,小数点后面有3位。如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。如果插入数12.123456,存储的是12.123,如果插入12.12,存储的是12.120。

整数部分最大是3位,如果插入1234.56,会插入失败。

二、SQL语句

关系型数据库,都是使用SQL语句来管理数据库中的数据。

SQL,即结构化查询语言(Structured Query Language) 。

SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

1、SQL中的名词介绍

  • 数据库:database
  • 表:table,行:row 列:column
  • 索引:index
  • 视图:view
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler,任务计划
  • 用户:user
  • 权限:privilege

2、SQL语言规范

  • 在数据库系统中,SQL 语句不区分大小写,建议用大写。
  • SQL语句可单行或多行书写,默认以 " ; " 结尾。
  • 关键词不能跨多行或简写。
  • 用空格和TAB 缩进来提高语句的可读性。
  • 子句通常位于独立行,便于编辑,提高可读性。

数据库对象和命名:

数据库的组件(对象):

  • 数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等。

命名规则:

  • 必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)
  • 不要使用MySQL的保留字,如table、select、show、databases。
  • 数据库名、表名、用户名区分大小写

3 SQL语言分类

1、DDL:数据定义语言(Data Definition Language),用于创建数据库对象,如库、表、索引等。

例如:CREATE,DROP,ALTER 等。

2、DML:数据操纵语言(Data Manipulation Language),用于对表中的数据进行管理。

例如: SELECT、UPDATE、INSERT、DELETE 等。

3、DQL:数据查询语言( Data Query Languag ),用于从数据表中查找符合条件的数据记录。

例如: SELECT

4、DCL:数据控制语言(Data Control Language),用于设置或者更改数据库用户或角色权限

例如: GRANT,REVOKE

5、TCL:事务控制语言(Transaction Control Language),用于管理数据库中的事务。 TCL经常被用于快速原型开发、脚本编程、GUI和测试等方面。

例如: COMMIT,ROLLBACK,SAVEPOINT

三、数据库信息管理

1、访问MySQL数据库

mysql -u root -p

image.png

2、查看当前服务器中包含的库

show databases;

image.png

3、创建新的数据库

CREATE DATABASE 数据库名;

image.png

4、查看当前使用的库中包含的表

use 库名 切换到使用的库

show tables

image.png

5.查看表的结构

describe 表名;

image.png

6、创建新的表

CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

primary key也可以直接放在需要设置的主键位置后,如下图所示 image.png

7、删除数据表

drop table 表名

image.png

8.删除数据库

drop database 库名

image.png

9、插入数据记录

INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);

image.png

10、查询数据记录

SELECT 字段名1,字段名2[,...] FROM 表名[WHERE 条件表达式];

“*” 通配符表示任意字段

select name from zzz\G  	    #以列表方式竖向显示
select * from info limit 2;   	    #只显示头2行
select * from info limit 2,3;       #显示第2行后的前3行

image.png

image.png

11、修改数据记录

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];

image.png

12、删除数据记录

DELETE FROM 表名 [WHERE 条件表达式];

image.png

13、克隆数据表

create table yyy2 like yyy;    #复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into yyy2 select * from yyy;      #备份内容

image.png

四、总结

1、数据库由数据库机器他数据对象组成

2、经典数据库模型有网状模型,层次模型和关系模型。

3、主键由一个或多个字段组成,其值具有唯一性,而且不允许取空值(null)。一个表只能有一个主键。

4、一个关系数据库通常包含多个表,可以通过外键将这些表关联起来。

5、MySQL是一个开源的sql数据库软件,默认使用tcp3306端口提供服务,配置文件是/etc/my.cnf。

6、MySQL的基本管理操作包括查看数据库结构、创建及删除表和库,管理表中的数据记录。