MySql教程

Mysql基础命令

本文主要是介绍Mysql基础命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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基础命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!