ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql基础命令

2021-09-20 23:37:04  阅读:150  来源: 互联网

标签:基础 数据库 Mysql bytes 查询 命令 表名 where select


Mysql登录

#mysql -uroot -p12345678

-u mysql用户 -p 密码 (这里可以先不输入密码,回车后输入密码,安全)

数据库管理

创建数据库

进入到mysql> 环境下,先创建一个数据库。当然mysql支持多库管理,也可以创建多个数据库

#create database 数据库;

4Jtg61.png

查看数据库

创建完数据库,使用该命令进行查看。这里是databases 不是database哦!

#show databases;

4JNK39.png

删除数据库

当删除该库时,其中所有的表,记录等数据全部会被删除。

#drop database 数据库;

4JNMcR.png

数据表管理

创建数据表

当有了库这个容器,就要有表,表中包含字段,字段下有数据记录。看下图就容易理解了。

4JN1nx.png

#use 数据库名; //进入数据库
#create table 表名( //创建表
字段名 类型(长度),
字段名 类型(长度)
);

创建表明时,每个字段之间需要用 “,” 隔开。最后一个字段不需要 “,”。

查看数据表

#show tables; //查看都有哪些数据表
#describe 库名.表名; //查看某个表的具体结构

修改数据表

#alter table 旧表明 rename 新表名; //修改数据表名称

字段的修改

#alter table 表名 change 旧属性名 新属性名 新数据类型; //修改字段名称
#alter table 表名 modify 属性名 数据类型; //修改字段类型
#alter table 表名 add 属性名 数据类型; //增加字段
#alter table 表名 drop 属性名;//删除字段

例:

#alter table mingdan change name names_ text(8);
#alter table mingdan modify sex char(2);
#alter table mingdan add tall int(3);
#alter table mingdan drop tall;

删除数据表

方法1:

#use 数据库名;
#drop 表名;

方法2:

#drop table 数据库名.表名;

mysql用户管理

创建用户

#create user 'username'@'host' identified by 'password';

username:创建用户的名称

host:指定该用户在哪个平台主机上登录。如果是本地可以用localhost。如果是远程可以用通配符"%"。

password:表示用户的登录密码。可以为空

例:

#create user 'user1'@'localhost' identified by '12345678';

创建一个id为user1的用户,只能在本地登录,密码为 12345678。

删除用户

用户名后面需要带上登录形式哦!

#drop user 'username'@'host';

授予/回收用户权限

授予权限

#grant 操作权限 On 数据库名.表名 to 'username'@'host';

操作权限:select,insert,update等。如果要给全部权限用all

数据库名.表名:如果要授权全部数据库和表名,可以用“.”。同理,liao1.* liao1库下全部表

例:

#grant all on menu.* to 'user1'@'localhost';

给予本地登录的user1用户,menu库所有表的全部权限

回收权限

#revoke 操作权限 on 数据库名.表名 from 'username'@'host';

设置与更改用户密码

#set password for 'username'@'host' = password('新密码');

例:

#set password for 'user1'@'localhost' = password('liao118235');

设置本地登录的user1用户的密码为:liao118235

Mysql基本数据类型

数据类型

类型大小范围(有符号)范围(无符号)用途
TINYINT 1 byte (-128,127) (0,255) 小整数值
SMALLINT 2 bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

时间和日期类型

类型大小 ( bytes)范围格式用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2038 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符串类型

类型大小用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

Enum枚举类型

SET 能存储0-64个成员。存储空间1-8kb。

数据插入

前面创建了库和表,还没搞数据呢!现在就开始插入数据。

#insert into 表名 values (值1,值2......);

注意,这里表名中有多少字段,后面就输入多少个值。也可以指定字段添加。那些没添加值的字段,数据为null,也就是空!空 != 0;

#insert into 表名(列1,列2....) values(值1,值2......),(值1,值2......),(值1,值2......);

当然,也可以指定表名的某几列进行插入指定值,以“,”隔开,也能一次添加多个。

数据修改

#update 表名 set 列名 = 新值 where 列名 = 某值。

列名=新值:是要修改的数值。当然,数据难免会出现重复的现象,所以以该列的某个字段进行对比修改。就能极大的避免这个情况。

在name为liao的记录中,money的数值改为2500。

#update 表1,表2, ... set 表1.列1, 表2.列2 ... where 条件;

当然也可以多个命令同时修改!

数据删除

#delete from 表名 where 列名 = 值; //删除单个
#delete 表1,表2..... from 表1,表2.... where 条件; //删除多个记录

img

数据查询

常规查询

#select 字段 from 表名;

查询表的全部字段和部分字段。

img

条件查询

where注意事项

where语句是用来定义查询条件的,有几个注意事项

  • where可以指定任何条件

  • where的条件可以是多个,用and和or连接。and是和,是全部符合条件,也就是&&。or是或者,满足一个即可,也就是||。

  • 所以where有点类似if条件语句,比较运算符都可以使用!!!

#select 字段 from 表名 wherer 条件;

查询mingdan表中,age=17的数据。

联合查询

用于合并两个或多个查询语句,有时候我们要查询的表不止一个,但是要查的数据类型都是一样的。所以我们可以使用union。

union。查询时会删除重复的结果记录。

#select 条件 from 表1
#union
#select 条件 from 表2;

union all。查询时则不会删除

#select 条件 from 表1
#union all
#select 条件 from 表2;

不重复查询

单个查询时的不重复查询。重复的则不显示。

#select distinct 字段 form 表名;

模糊查询

有时候,我们可能知道某个数据中有某个值,但是不知道它的完整数值。

#select 字段 from 表名 where 字段 like 值;

查询name里带有7的数据

%:关键词查找。%123%,%芜湖~% :匹配查找。__a:查找四位,并且第三位为a的数据。

排序查询

类似查成绩,工资一些数字类型的数据。需要进行排序。

#select 字段 from 表名 where 条件 order by 记录1 desc/asc, 记录2 desc/asc,....;

desc:降序 asc:升序 注意:条件语句是可加可不加的!不要迷了

查询mingdan表下,money的降序,年龄的升序排列。品一品其中的排序方式和优先级!

限制查询

有时候需要返回前后几条或者中间的某几行数据。

#select 字段 limit 起始偏移量,行数;

查询mingdan表中以money的降序排列的2到4个数据

注意这里是以0开头的哦!

聚合

#select 字段 聚合函数 from 表名 where 条件 group by 记录1,记录2 .... with rollup having 条件;

group by :需要聚合的字段 with rollup:是否对分类聚合进行汇总。这个是可选的

查询mingdan表中,最大的money数值。

查询mingdan表中,以age字段查询(第二个age),age小于20的数据(第三个age),只显示age(第一个age)。

连接

内连接

创建了个新的表,id对应的是年龄。

查询mingdan的name字段和jobs的working字段,条件是 mingdan的age = jobs的id。

也就是,将age数据和id数据相同的,列出来。

 

左连接

以左边表的数据为基准,去匹配右边表的数据。

右连接

事务

 

 

标签:基础,数据库,Mysql,bytes,查询,命令,表名,where,select
来源: https://www.cnblogs.com/liao118/p/15315693.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有