继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MySQL数据库基本命令

慕田峪4524236
关注TA
已关注
手记 204
粉丝 19
获赞 51

一、概述

数据库结构

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


http://img1.mukewang.com/60ec6b2f0001395411620497.jpg

补充

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; #不区分大小写,分号“;”表示结束

http://img4.mukewang.com/60ec6b570001b8de03230253.jpg

查看数据库中包含的表

USE 数据库名;
SHOW TABLES;

http://img1.mukewang.com/60ec6b83000180c206570643.jpg

查看表的结构(字段)

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

http://img1.mukewang.com/60ec6bcc00017db808260573.jpg

三、SQL语句介绍

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

http://img.mukewang.com/60ec6bee0001432e10740234.jpg

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

创建新的数据库

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

http://img2.mukewang.com/60ec6c1200019b3605970339.jpg

创建新的表

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;


http://img2.mukewang.com/60ec6c2e0001e6c610310332.jpg


删除指定数据表

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

http://img3.mukewang.com/60ec6c5a00016dee05720326.jpg

删除指定的数据库

DROP DATABASE 数据库名;

http://img.mukewang.com/60ec6c7100011d5204790566.jpg

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

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

http://img3.mukewang.com/60ec6c8d0001234d11920310.jpg

http://img3.mukewang.com/60ec6c990001f66e10530703.jpg

补充密码加密

http://img2.mukewang.com/60ec6cb20001d6d809210223.jpg

查询数据记录

http://img4.mukewang.com/60ec6cca000189f207660150.jpg

http://img3.mukewang.com/60ec6cd50001cf5707530392.jpg

以列表方式竖向显示

http://img2.mukewang.com/60ec6ce700011b1d06490551.jpg

http://img4.mukewang.com/60ec771f0001ff0a09700276.jpg

显示第2行后的前3行

http://img4.mukewang.com/60ec773c00019edc07540629.jpg

http://img1.mukewang.com/60ec774e0001599b10820218.jpg

http://img4.mukewang.com/60ec775a0001d57107290643.jpg

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

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

http://img4.mukewang.com/60ec778b00013f2907330540.jpg

http://img4.mukewang.com/60ec77990001d96f08440239.jpg

http://img.mukewang.com/60ec77a70001ea3b04430374.jpg

http://img2.mukewang.com/60ec77b50001e02309290225.jpg

http://img.mukewang.com/60ec77c00001bc3908670553.jpg

http://img3.mukewang.com/60ec77cc00010d8d07750224.jpg

http://img4.mukewang.com/60ec77d80001bb9d08710532.jpg

http://img.mukewang.com/60ec77e40001b4c405250159.jpg

http://img2.mukewang.com/60ec77f00001e29d09100535.jpg

http://img3.mukewang.com/60ec78170001815d09960261.jpg

http://img2.mukewang.com/60ec78290001cffb07700680.jpg

http://img4.mukewang.com/60ec783600018bfa08880181.jpg

http://img2.mukewang.com/60ec78420001fea305740433.jpg

http://img4.mukewang.com/60ec784a0001ea5f06860616.jpg

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

方法一:记录ID未删除

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

http://img.mukewang.com/60ec78a70001dc8707470487.jpg

方法二:删除记录ID

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

http://img4.mukewang.com/60ec78e400015ddf07270483.jpg

创建临时表

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

http://img.mukewang.com/60ec78ff000118a410410448.jpg

http://img.mukewang.com/60ec790a000187a806140670.jpg

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

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


主键表和外键表的理解:

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

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


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

http://img3.mukewang.com/60ec792600011d7d11020376.jpg

http://img1.mukewang.com/60ec793000015ea110240675.jpg

http://img1.mukewang.com/60ec793e00018cab06450134.jpg

http://img.mukewang.com/60ec7951000162b710750444.jpg

http://img1.mukewang.com/60ec79620001cda310140350.jpg

http://img3.mukewang.com/60ec79730001947d07910185.jpg

http://img2.mukewang.com/60ec79800001340706580723.jpg

http://img3.mukewang.com/60ec79910001053907540254.jpg

http://img1.mukewang.com/60ec79a10001a32611430539.jpg

http://img2.mukewang.com/60ec79ad00018b6210660352.jpg

http://img3.mukewang.com/60ec79ba0001f85708020160.jpg

http://img.mukewang.com/60ec79c500010e4908300405.jpg

http://img3.mukewang.com/60ec79d000019b8e07690103.jpg

http://img3.mukewang.com/60ec79da00012b8108660654.jpg

http://img3.mukewang.com/60ec79e50001ee5906800118.jpg

http://img3.mukewang.com/60ec79ef000195d308390627.jpg

http://img3.mukewang.com/60ec79fa0001336a07000155.jpg

http://img3.mukewang.com/60ec7a04000157a107580441.jpg

http://img2.mukewang.com/60ec7a0f000188d107380108.jpg

http://img.mukewang.com/60ec7a1900017f0f08210611.jpg

http://img3.mukewang.com/60ec7a250001dbb609520331.jpg

http://img2.mukewang.com/60ec7a2f00017d5e07770475.jpg

http://img1.mukewang.com/60ec7a380001cd7e08560326.jpg

http://img.mukewang.com/60ec7a4300011c6d09740303.jpg

http://img3.mukewang.com/60ec7a4c000170ae10000526.jpg

http://img2.mukewang.com/60ec7a570001f23d06100233.jpg

格式

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';


http://img3.mukewang.com/60ec7a9f0001943109420496.jpg

http://img3.mukewang.com/60ec7aa80001af3c05960647.jpg

http://img1.mukewang.com/60ec7ab90001254210130465.jpg

http://img3.mukewang.com/60ec7ac700015b0409880295.jpg

http://img4.mukewang.com/60ec7ad20001249206080651.jpg


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

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

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP