手记

MySQL数据库基本命令

一、概述

数据库结构

数据库–>数据表–>行(记录):用来描述一个对象的信息
              列(字段):用来描述对象的一个属性


补充

char 最多能存放字符个数255个,char 如果存入数据的实际长度比指定长度要小,会补空格至指定长度;如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错。

char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了


varchar存储规则:

4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)

5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节。


二、查看数据库结构

查看当前服务器中的数据库

SHOW DATABASES; #不区分大小写,分号“;”表示结束

查看数据库中包含的表

USE 数据库名;
SHOW TABLES;

查看表的结构(字段)

方法1
USE 数据库名;
可缩写成:DESC 表名;
方法2
DESCRIBE  数据库名.表名;

三、SQL语句介绍

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

四、创建及删除数据库和表(DDL)

创建新的数据库

CREATE DATABASE 数据库名;
例如:create database arts;

创建新的表

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


#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。

例:

create database arts;

use arts;

create table star (id int not null,name char(20) not null,sex char(2),primary key (id));

desc star;



删除指定数据表

如不用USE进入库中,则需加上数据库名
DROP TABLE 数据库名.表名;
进入数据库,则直接加表名drop table 表名

删除指定的数据库

DROP DATABASE 数据库名;

五、管理表中数据记录(DML)

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

补充密码加密

查询数据记录

以列表方式竖向显示

显示第2行后的前3行

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

DELETE FROM 表名 [WHERE 条件表达式];
例:delete from star where id=6;
select * from star;

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

方法一:记录ID未删除

delete from test1;
#DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;
如果表中有自增长字段,使用DELETE FROM删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。

方法二:删除记录ID

truncate table test2;#TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录。

创建临时表

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

创建外键约束,保证数据的完整性和一致性

外键的定义:如果同一个属性字段X在表一中是主键,而在表二中不是主键,则字段X称为表二的外键。


主键表和外键表的理解:

以公共关键字作主键的表为主键表(父表、主表)

以公共关键字作外键的表为外键表(从表、外表)


注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

格式

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

#-------------------------------参数解释---------------------------------------------------------------------------

权限列表:  用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

          

数据库名.表名:  用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“test.*”表示授权操作的对象为 test数据库中的所有表。

              

'用户名'@'来源地址':  用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.test.com”、“192.168.19.%”等。


IDENTIFIED BY: 用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。


例如:

#允许用户 lili 在本地查询 kky 数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。

GRANT select ON kky.* TO 'lili'@'localhost' IDENTIFIED BY 'abc123';


flush privileges;

quit;


mysql -u lili -pabc123

use kky;

show tables;

select * from info;


其他授权例子:

#允许用户 pp 在所有终端远程连接 mysql ,并拥有所有权限。

GRANT ALL PRIVILEGES(可不写) ON *.* TO 'pp'@'%' IDENTIFIED BY '123456';



————————————————

版权声明:本文为CSDN博主「Zmac111」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zmac111/article/details/118108765


0人推荐
随时随地看视频
慕课网APP