mysql基本操作

这篇博客详细介绍了MySQL的基本操作,包括SQL语言规范、数据类型、管理数据库的命令以及数据表的操作,如创建、删除、更新和查询。此外,还讨论了各种数据类型的特性,如整数型、浮点型和字符串,并提供了实际操作示例,如创建和删除数据库、表以及查询数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 SQL分类

·数据库:database

·表:table,行:row 列:column

·索引:index

·视图:view

·存储过程:procedure

·存储函数:function

·触发器:trigger

·事件调度器:event scheduler,任务计划

·用户:user

·权限:privilege

二、SQL 语言规范

在数据库系统中,SQL 语句不区分大小写,建议用大写

SQL语句可单行或多行书写,默认以 " ; " 结尾

关键词不能跨多行或简写

用空格和TAB 缩进来提高语句的可读性

子句通常位于独立行,便于编辑,提高可读性

数据库对象和命名

数据库的组件(对象):

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

命名规则:

必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)

不要使用MySQL的保留字,tabble select show databases

 SQL语句分类

  • DDL: Data Defination Language 数据定义语言

创建,删除,更改

  • DML: Data Manipulation Language 数据操纵语言

插入,删除,更新

软件开发:CRUD

  • DQL:Data Query Language 数据查询语言

选择

  • DCL:Data Control Language 数据控制语言

授予,撤销

  • TCL:Transaction Control Language 事务控制语言

提交,回滚,保存点

三、查看类基本命令

1、 查看帮助信息

2、查看支持的字符集、查看表,使用表

 

四、管理数据库

 

1、创建数据库

 

 

2、修改数据库

3、删除数据库

 

4、查看数据库列表

 

五、 数据类型

MySQL支持多种内置数据类型

数值类型

日期/时间类型

字符串(字符)类型

数据类型参考链接:

MySQL :: MySQL 8.0 Reference Manual :: 11 Data Types

选择正确的数据类型对于获得高性能至关重要,三大原则:

1.更小的通常更好,尽量使用可正确存储数据的最小数据类型

2.简单就好,简单数据类型的操作通常需要更少的CPU周期

3.尽量避免NULL,包含为NULL的列,对MySQL更难优化

1、整数型

tinyint(m) 1个字节 范围(-128~127)

smallint(m) 2个字节 范围(-32768~32767)

mediumint(m) 3个字节 范围(-8388608~8388607)

int(m) 4个字节 范围(-2147483648~2147483647)

bigint(m) 8个字节 范围(+-9.22*10的18次方)

上述数据类型,如果加修饰符unsigned后,则最大值翻倍

如:tinyint unsigned的取值范围为(0~255)

2、浮点型(float和double),近似值

float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位, 注意: 小数点不占用总个数

double(m,d) 双精度浮点型16位精度(8字节) m总个数,d小数位, 注意: 小数点不占用总个数

设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以

实际为准,即6位

3、定点数

在数据库中存放的是精确值,存为十进制 decimal(5.2) 100.01 - 999.99

格式 decimal(m,d) 表示 最多 m 位数字,其中 d 个小数,小数点不算在长度内

比如: DECIMAL(6,2) 总共能存6位数字,末尾2位是小数,字段最大值 9999.99 (小数点不算在长度内)

参数m<65 是总个数,d<30且 d<m 是小数位

MySQL5.0和更高版本将数字打包保存到一个二进制字符串中(每4个字节存9个数字)。

例如: decimal(18,9)小数点两边将各存储9个数字,一共使用9个字节:其中,小数点前的9个数字用4个

字节,小数点后的9个数字用4个字节,小数点本身占1个字节

浮点类型在存储同样范围的值时,通常比decimal使用更少的空间。float使用4个字节存储。double占用

8个字节

因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时

4、字符串(char,varchar,text)

char(n) 固定长度,最多255个字符,注意不是字节

varchar(n) 可变长度,最多65535个字符

tinytext 可变长度,最多255个字符

text 可变长度,最多65535个字符

mediumtext 可变长度,最多2的24次方-1个字符

longtext 可变长度,最多2的32次方-1个字符

BINARY(M) 固定长度,可存二进制或字符,长度为0-M字节

VARBINARY(M) 可变长度,可存二进制或字符,允许长度为0-M字节

内建类型:ENUM枚举, SET集合

char和varchar的比较:

参考: MySQL :: MySQL 8.0 Reference Manual :: 11.3.2 The CHAR and VARCHAR Types

附:常用的数据类型

int:整型                                                用于定义整数类型的数据

float:单精度浮点4字节32位                准确表示到小数点后六位                

double:双精度浮点8字节64位

char:固定长度的字符类型                用于定义字符类型数据。

varchar:可变长度的字符类型                

text:文本

image:图片

decimal(5,2):5个有效长度数字,小数点后面有2位                指定长度数组

注:Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度

注:如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

六、实际操作

 

1、SQL语句

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

 

 

增删改“查”

 

SQL语言分类:

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

DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据(insert drop delete update )

DQL:数据查询语言,用于从数据表中查找符合条件的数据记录(select )

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

(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

 

1、查看数据库列表

SHOW DATABASES;

2、删除数据库

 

  

 

3、创建数据库

 

4、查看数据库中包含的表

use 数据库名

use mysql;

选择数据库,切换库类似于cd

show tables;

show tables in mysql;

 

 

5、查看表结构(字段)

格式:describe [数据库名.]表名;

desc user;

desc servers;#查看表结构

desc mysql.servers;#不想先使用use进入数据库查看表可以使用上面的

6、创建及删除数据库和表

(1)创建新的数据库

create database(数据库名);

(2)创建新的表

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

主键一般选择代表唯一性的字段不允许为空值(null),且一个表只能有一个主键

 

 

(3)管理表中的数据

①向数据表中插入新的数据记录

insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);

注:注意字符串要用引号引起来

也可以直接使用表名添加记录

(4)查询数据记录

select NAME,NUMBER from INFO #查看指定字段字段

格式:select 字段1,字段2 from 表名 [where 条件表达式]

可以使用where来写条件表达式

加入条件后

加上limit选项可以看前几行

而如果想看第二行之后的前三行可以加上23

 

(5)修改、更新数据表中的数据记录

update 表名 set 字段名1=修改字段值1 ,字段名2=修改的字段值2 [where 条件表达式]update 表名 set 字段名1=修改字段值1 ,字段名2=修改的字段值2 [where 条件表达式]

附:不加条件就是全部修改

 

(6)在数据表中删除指定的数据记录

delete from 表名 [where 条件表达式]

delete from 表名

将整个表中的数据整个删除

7、修改表名和表结构

(1)修改表名

alter table 旧表名 rename 新表名;

(2)扩展表结构(增加字段)

alter table 表名 add address varchar(50) default '居无定所';

 

(3)修改字段(列)名,添加唯一键

alter table 表名 change 旧列名 新列名 数据类型 [unique key];

unique key 唯一键,可以为多个

(4)删除字段

alter table lgy drop newaddress;

alter table 表名  drop 字段名;

(5)删除表

Drop table ky15.qjw

 

(6)案列扩展

use school;

create table if not exists qjw (id int(4) zerofill primary key auto_increment,    name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建

#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001

#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;

自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且

添加失败也会自动递增一次

#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键

#not null:表示此字段不允许为NULL

 

8、数据表高级操作

(1)克隆表

create table fsh like lgy;#复制格式,通过LIKE方法,复制lgy表结构生成fsh表

insert into fsh select * from lgy;#备份内容

 

(2)清空表,删除表内的所有数据

①delete from yyy3;

#DELETE清空表后,返回的结果内有删除的记录条目;

DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除

所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。

②truncate table test01;

#TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,

因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,

ID会从1开始重新记录

(3)创建临时表

临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。如果在退出连接之前,也可以可执行增删改查等操作,比如使用DROP TABLE语句手动直接删除临时表。

注:无法创建外键

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值