首页
其他
Action
Another action
Something else here
游客
登录系统
16
46小时前
小四
是不是只有我死了 是不是只有我死了 是不是只有我死了 是不是只有我死了 是不是只有我死了
25小时前
二愣子
呵呵
昨天
查看所有消息
16
46小时前
小四
是不是只有我死了 是不是只有我死了 是不是只有我死了 是不是只有我死了 是不是只有我死了
25小时前
二愣子
呵呵
昨天
查看所有消息
16
46小时前
小四
是不是只有我死了 是不是只有我死了 是不是只有我死了 是不是只有我死了 是不是只有我死了
25小时前
二愣子
呵呵
昨天
查看所有消息
发布创作
mysql常用命令及字段类型说明
超级管理员
|
770
|
2021-12-23
### mysql相关 ``` # 查看版本 select version(); # 查看状态: show status; # 查看参数配置: show variables; # 查看指定参数: show variables like 'slow%'; # 临时修改参数值: set global max_connect_errors=200; # mysql重启后失效,需要永久修改编辑/etc/my.cnf配置文件 # 查看消息队列: show processlist; show full processlist; # 使用full可以将查询结果info字段中正在执行的sql语句显示完整 # 查看当前用户: select user(); ``` ---- ### 库相关 ``` # 显示所有库 show databases; # 查看当前所在数据库 select database(); # 创建数据库 create database [db_name] character set utf-8 collate utf8_general_ci;; # 删除数据库 drop database [db_name]; # 切换数据库 use [db_name]; ``` ### 表相关 ``` # 显示库中的表: show tables; # 查看表字段: desc [table_name]; # 查看建表语句(有序显示) show create table [table_name]\G # (表格显示) show create table [table_name]; # 创建表: CREATE TABLE IF NOT EXISTS `user` ( `id` int(10) , `name` varchar(255) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; # 自增属性 AUTO_INCREMENT # 修改自增起始值 alter table [table_name] AUTO_INCREMENT=100; # 删除表 drop table [table_name]; # 修改表名 alter table [table_name] rename [table_name2]; # 增加字段 alter table [table_name] add `[column_name]` [datatype]; # 删除字段 alter table [table_name] drop column `[column_name]`; # 修改字段 alert table [table_name] change `[column_name]` `[column_name]` [datatype] # 增加数据 insert into [table_name] (`[column_name]`, `[column_name2]`) values (0 ,'abc'); # 增加数据,根据主键判断,如果不存在则新增,如果存在则忽略 insert ignore into [table_name] (`[column_name]`, `[column_name2]`) values (0 ,'abc'); # 删除数据 delete from [table_name] where `[column_name]`=1; # 修改数据 update [table_name] set `[column_name]`=2 where `[column_name]`=1; # 累加/减数据 update [table_name] set `[column_name]`=`[column_name]`+(1|-1) where `[column_name]`=1; # UNSIGNED 属性 累减数据 update [table_name] set `[column_name]`= `[column_name]` + case when `[column_name]` > 0 then -1 else 0 end where `[column_name]` in (1, 2); // 单个字段更新累减 update [table_name] set `[column_name]`=`[column_name]`-1 where `[column_name1]`=1 and `[column_name]`>0 # 查询数据 select `[column_name]`, `[column_name2]`|* from [table_name] where `[column_name]`=2 group by `[column_name]` having `[column_name]`>1 --针对group by之后再次筛选 order by `[column_name]` asc|desc limit [start_num], [end_num]; # 存在则更新,不存在则插入 insert into [table_name] (`name`) values (1, 'andy'), (2, 'baby') on duplicate key update `name`='baby'; # 先删后增 replace into [table_name] (`name`) values (1, 'andy'), (2, 'baby'); ``` #### 索引 ``` # 创建索引 create `[index_name]` on `[table_name]` (`[column_name]`); create `[index_name]` on `[table_name]` (`[column_name]`, `[column_name]`); alter `[table_name]` add index `[index_name]` (`[column_name]`); alter `[table_name]` add primary key (`[column_name]`); alter `[table_name]` add unique index `[index_name]` (`[column_name]`); # 删除索引 drop index `[index_name]` on `[table_name]`; alter `[table_name]` drop index `[index_name]`; alter `[table_name]` drop primary key; # 修改索引 alter `[table_name]` drop index `[index_name]` add index `[index_name]` (`[column_name`]); ``` ---- ### 表结构属性 #### 常用数据类型 | 类型 | 说明 | | ------------ | ------------ | | INT | 4比特的整数,有符号的表示范围是-2147483648到2147483647,无符号`unsigned`的表示范围是0到4294967295。 | | VARCHAR | 变长(0-65,535)字符串,最大有效长度取决于最大行大小 | | TEXT | 最多存储 65535(2^16 - 1)字节的文本字段,存储时在内容前使用 2 字节表示内容的字节数 | | DATE | 日期,支持的范围从 1000-01-01 到 9999-12-31 | #### 数字数据类型 | 类型 | 说明 | | ------------ | ------------ | | TINYINT | 1 字节整数,有符号范围从 -128 到 127,无符号`unsigned`范围从 0 到 255 | | SMALLINT | 2 字节整数,有符号范围从 -32768 到 32767,无符号`unsigned`范围从 0 到 65535 | | MEDIUMINT | 3 字节整数,有符号范围从 -8388608 到 8388607,无符号`unsigned`范围从 0 到 16777215 | | INT | 4比特的整数,有符号的表示范围是-2147483648到2147483647,无符号`unsigned`的表示范围是0到4294967295。 | | BIGINT | 8 字节整数,有符号范围从 -9223372036854775808 到 9223372036854775807,无符号`unsigned`范围从 0 到 18446744073709551615 | | DECIMAL | 定点数(M,D)- 整数部分(M)最大为 65(默认 10),小数部分(D)最大为 30(默认 0) | | FLOAT | 单精度浮点数,取值范围从 -3.402823466E+38 到 -1.175494351E-38、0 以及从 1.175494351E-38 到 3.402823466E+38 | | DOUBLE | 双精度浮点数,取值范围从 -1.7976931348623157E+308 到 -2.2250738585072014E-308、0 以及从 2.2250738585072014E-308 到 1.7976931348623157E+308 | | REAL | DOUBLE 的别名(例外:REAL_AS_FLOAT SQL 模式时它是 FLOAT 的别名) | | BIT | 位类型(M),每个值存储 M 位(默认为 1,最大为 64) | | BOOLEAN | TINYINT(1) 的别名,零值表示假,非零值表示真 | | SERIAL | BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE 的别名 | #### 日期与时间数据类型 | 类型 | 说明 | | ------------ | ------------ | | DATE | 日期,支持的范围从 1000-01-01 到 9999-12-31 | | DATETIME | 日期与时间,支持的范围从 1000-01-01 00:00:00 到 9999-12-31 23:59:59 | | TIMESTAMP | 时间戳,范围从 1970-01-01 00:00:01 UTC 到 2038-01-09 03:14:07 UTC,存储为自纪元(1970-01-01 00:00:00 UTC)起的秒数 | | TIME | 时间,范围从 -838:59:59 到 838:59:59 | | YEAR | 四位数(4,默认)或两位数(2)的年份,取值范围从 70(1970)到 69(2069)或从 1901 到 2155 以及 0000 | #### 文本数据类型 | 类型 | 说明 | | ------------ | ------------ | | CHAR | 定长(0-255,默认 1)字符串,存储时会向右边补足空格到指定长度 | | VARCHAR | 变长(0-65,535)字符串,最大有效长度取决于最大行大小 | | TINYTEXT | 最多存储 255(2^8 - 1)字节的文本字段,存储时在内容前使用 1 字节表示内容的字节数 | | TEXT | 最多存储 65535 字节,即 64KB(2^16 - 1)字节的文本字段,存储时在内容前使用 2 字节表示内容的字节数 | | MEDIUMTEXT | 最多存储 16777215 字节,即 16MB(2^24 - 1)字节的文本字段,存储时在内容前使用 3 字节表示内容的字节数 | | LONGTEXT | 最多存储 4294967295 字节,即 4GB(2^32 - 1)的文本字段,存储时在内容前使用 4 字节表示内容的字节数 | | BINARY | 类似于 CHAR 类型,但其存储的是二进制字节串而不是非二进制字符串 | | VARBINARY | 类似于 VARCHAR 类型,但其存储的是二进制字节串而不是非二进制字符串 | | TINYBLOB | 最多存储 255(2^8 - 1)字节的 BLOB 字段,存储时在内容前使用 1 字节表示内容的字节数 | | MEDIUMBLOB | 最多存储 16777215 字节,即 16MB(2^24 - 1)字节的 BLOB 字段,存储时在内容前使用 3 字节表示内容的字节数 | | BLOB | 最多存储 65535(2^16 - 1)字节的 BLOB 字段,存储时在内容前使用 2 字节表示内容的字节数 | | LONGBLOB | 最多存储 4294967295 字节,即 4GB(2^32 - 1)的 BLOB 字段,存储时在内容前使用 4 字节表示内容的字节数 | | ENUM | 枚举,可从最多 65535 个值的列表中选择或特殊的错误值 '' | | SET | 可从最多 64 个成员中选择集合为一个值 | #### 空间数据类型 | 类型 | 说明 | | ------------ | ------------ | | GEOMETRY | 一种能存储任意类型几何体的类型 | | POINT | 二维空间中的点 | | LINESTRING | 点之间的线性插值曲线 | | POLYGON | 多边形 | | MULTIPOINT | 点的集合 | | MULTILINESTRING | 点之间的线性插值曲线的集合 | | MULTIPOLYGON | 多边形的集合 | | GEOMETRYCOLLECTION | 任意类型几何体对象的集合 | #### 字段属性 | 类型 | 说明 | | ------------ | ------------ | | NULL | 空值 | | NOT NULL | 不为空值 | | BINARY | where子句的字符串比较是不区分大小写的,但是可以使用`binary`关键字设定where子句`区分`大小写 | | UNSIGNED | 无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据 | | UNSIGNED ZEROFILL | 宽度小于设定的宽度,则自动填充0。例如 tinyint(2) 存储1,查询结果为01,实际上还是1 | | on update CURRENT_TIMESTAMP | 当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间。| #### 主键 `primary key` ``` # 主键用于唯一标识每一条记录(每个人都有自己唯一的身份证) # 每一张表只能有一个主键。 # 因为唯一标识,所以主键字段的数据不能为空,并且主键字段的数据值不能重复 # 主键也是一种索引,可以提高查找速率。 创建/修改 craete table [table_name] (id int PRIMARY KEY); create table [table_name] (id int, PRIMARY KEY(id)); alter table [table_name] modify `id` int(10) primary key; 删除 alter table [table_name] drop primary key; ``` #### 唯一键 `unique key` ``` # 唯一键的功能与主键有点类型,但不同的是主键只能有一个,唯一键可以有多个,而且唯一键的字段的数据允许为空。 # 唯一键可以约束字段,使得字段的数据不能重复 # 如果唯一键同时也有not null,并且表中没有主键的话,在desc查看表结构中会显示成主键 # 如果唯一键也不允许为空,那么功能与主键相同 唯一键的定义方法可以参考主键的。 删除 alter table [table_name] drop index [键名]; ``` #### 自增长 `auto_increment` ``` # 自增长的功能是可以使某个字段的数据随着记录的插入而进行增长(不给这个字段插入数据的情况下) # 自增长的前提是这个字段必须是一个“索引”,比如主键、唯一键 # 自增长的前提这个字段的数据类型是一个数值型的,(如果给了float,也不会增长成小数,而仅仅是整数) # 一个表只能有一个自增长。 # 只有不给值,或者给null的情况下,才能正确自增长;如果某一次自增长失败了,那么下一次会从当前字段的最大值开始继续自增长。 定义 create table [table_name] (id int primary key auto_increment); 修改 (只能改大,不能变小) alter table [table_name] auto_increment=值; ``` #### 默认值 `default` ``` # 默认值的功能是当我们不给一个字段赋值的时候,使用默认值作为数据 create table [table_name] ( id int primary key auto_increment, age int default `0` ) ``` #### 字段描述 `comment` ``` # 字段描述是用来描述字段的,能在查看数据表创建语句的时候显示出来(不会再select结果中显示出来) create table [table_name] ( id int primary key auto_increment, age int default `0` COMMENT '年龄字段' ) ``` ---- ### 备份相关 ``` # 备份库 $ mysqldump -uroot -p [db_name] > /tmp/[db_name]_bak.sql # 恢复库 $ mysql -uroot -p [db_name] < /tmp/[db_name]_bak.sql # 备份表 $ mysqldump -uroot -p [db_name] [table_name] > /tmp/[db_name]_[table_name]_bak.sql # 恢复表 $ mysql -uroot -p [db_name] < /tmp/[db_name]_[table_name]_bak.sql # 备份所有库 $ mysqldump -uroot -p -A > /tmp/dbs_all_bak.sql # 备份库的表结构 $ mysqldump -uroot -p -d [db_name] > /tmp/[db_name]_bak.sql # 备份库中某表的机构 $ mysqldump -uroot -p -d [db_name] [table_name] > /tmp/[db_name]_[table_name]_bak.sql ```
一克字符 | EchoStr
互联网 ICP 备案:粤ICP备2024297332号
站长邮箱: echostr@163.com