# 数据库常用命令
使用命令操作(开启,关闭,查看状态)数据库:
开启:
sudo /usr/local/mysql/support-files/mysql.server start
查看状态:
sudo /usr/local/mysql/support-files/mysql.server status
关闭:
sudo /usr/local/mysql/support-files/mysql.server stop
创建数据库:
使用具体用户登录之后:
create database 数据库名称;
假如数据库不存在,则创建数据库
create database if not exists 数据库名称;
用户没有登录,直接使用 mysqladmin 创建数据库
mysqladmin -u root -p create RUNOOB
显示所有的数据库:
show databases;
删除数据库:
使用具体用户登录之后:
drop database 数据库名称;
用户没有登录,直接使用 mysqladmin 删除数据库
mysqladmin -u root -p drop 数据库名称
查询当前正在使用的数据库:
select database();
创建表:
create table if not exists 表名(
字段名称1 字段类型1,
字段名称2 字段类型2,
...
字段名称n 字段类型n,
primary key("字段名称")
)engine=InnoDB default charset=utf8;
删除表:
drop table 表名
显示当前数据库中所有表:
show tables;
添加数据:
insert into 表名
(字段名称1, 字段名称2, ..., 字段名称n)
values
(值1, 值2, ..., 值n);
查询数据:
select * from 表名
select * from 表名 where 条件
select * from 表名 where 条件1 and/or 条件2
更新数据:
update 表名 set 字段1=值1, 字段2=值2, ..., 字段n=值n where 条件;
删除数据:
delete from 表名 条件
like :
like 可以达到 条件模糊匹配
select * from 表名 where 字段 like "%关键词%";
union:
联合查询:
select * from table1 where 条件
union all/distinct
select * from table2 where 条件;
all:返回所有的结果集,包含重复数据
distinct:删除结果集中重复的数据,默认情况下采用这种
order by:
按照某个字段排序
select * from 表名 where 字段名 like "%关键词%" order by 字段名 asc/desc;
asc:升序(默认)
desc:降序
查看表的信息:
desc 表名;
show create table 表名;
对于空值的处理方式:
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
正则表达式:
select * from 表名 where 字段名称 regexp "正则表达式";
修改数据表名或者字段:
alter
删除字段
alter table 表名 drop 字段名称;
添加字段
alter table 表名 add 字段名称 first;
alter table 表名 add 字段名称 after 另一个字段(已经存在);
修改字段类型
alter table 表名 modify 字段名称 字段类型;
修改字段的名称
alter table 表名 change 原字段名 最终字段名 字段类型;
对于空值和默认值
alter table 表名 modify 字段名称 字段类型 not null default 值;
修改字段默认值
alter table 表名 alter 字段名 set default 值;
修改字段无符(正负)
alter table 表名 modify 字段名 字段类型 unsigned;
修改字段的编码格式(字符串,文本)
alter table 表名 modify 字段名 字段类型 charset utf8;
修改表名:
alter table 原表名 rename to 最终表名;
来源:oschina
链接:https://my.oschina.net/u/4409676/blog/4109452