数据库基础指令总结(包含空白练习)

about-BY-gentle.jpg

管理服务
启动:
停止:
重启:
mysql服务状态:

远程连接。授权root用户可以从任何地点登录
登录系统:
授权root用户:
刷新权限:
退出命令行:

数据库
创建数据库:
查看数据库:
创建指定字符集的数据库:
创建数据库前进行判断是否存在:
选择数据:
查看当前所在数据库:
查看当前数据库编程格式:

修改数据库(修改其参数):
删除数据库:

引擎
查看mysql支持的引擎:
查看默认引擎:
修改默认存储引擎:


创建表:
查看表:
查看表详情信息:
产看表结构 全部:
产看表结构 列:
设置默认值:
更新表(能更新不推荐):
添加新字段:
修改字段名:
删除字段名:
修改表名:
重命名表:
删除表:
复制表(注意顺序):

表内容操作

插入完整行 完全插入:
查询插入行:
不完全插入:
多行插入:
一个表插入到另一个表:
删除
删除一行:
删除所有:

改单列:
改多列:
删除某个列的值,可以设置这个列的值为空:

MYSQL检索数据
检索单列:
检索多列:
检索所有列:
检索不同的行,去重:
使用完全限定的表名(同时使用表名和列名):
完全限定名使用场景:如果只在自己内部使用,那么完全限定名基本上是不用的,这种情况太简单了。那么什么时候去使用呢?比如村里有两家分别叫王a和王b,并且两家都有个孩子叫王小三,这两个王小三并且在一个班级学习上课,那么老师叫王小三,这两个孩子就不知道叫谁了。说王a家王小三,那么王a家王小三就会知道是他。所以当在单表内查询时一般不用完全限定名,只有多个表涉及到相同的列名时,才会使用到完全限定名。比如用户表有个列叫name,商品表有个字段叫name,当查询时只使用name,那么数据库是不知道叫用户的name,还是商品的name,此时完全限定名就可以体现出来。使用完全限定名的作用就是防止歧义的发生!
= 等于:
<> 不等于:
!= 不等于:
< 小于 (一般情况下后面会跟数字):
<= 小于等于:
> 大于:
>= 大于等于:
BETWEEN .. AND ..在指定的两个值之间:
空值检查(IS NULL):
组合WHERE子句
AND:
OR:
IN:
NOT:

通配符:
%:
_:

mysql正则:

排序
单列
升序:
降序:
多列
升序:
降序:
条件排序:
限制查询
指定返回行数:
指定从几行起,返回几行:
order by和limit的组合使用
取最大值:
取最小值:

聚合函数
返回某列平均值:
返回某列行数:
返回某列最大值:
返回某列最小值:
返回某列之和:
聚集不同值:
组合聚集函数:

分组
分组(单独用无意义)+聚合函数:
group by + groupconcat():
增加显示字段分组结果
group by + group
concat+聚合函数:
group by + group_with rollup

HAVING
组合
分组和排序:
分组和排序、限定查询:


管理服务

启动:service mysql start;
停止:service mysql stop;
重启:service mysql reset;
mysql服务状态: service mysql status:

远程连接。授权root用户可以从任何地点登录
登录系统: mysql -h lockip -u root -p:
授权root用户:
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
刷新权限:
FLUSH PRIVILEGES;
退出命令行:exit

数据库

创建数据库:create database name;
查看数据库:show datables;
创建指定字符集的数据库:create database name charset=utf-8;
创建数据库前进行判断是否存在:create database if not **exists **name cahrset=8;
选择数据:use name;
查看当前所在数据库:select database();
查看当前数据库编码格式:show variable like 'character_set_database';

修改数据库(修改其参数):alter databale name charset =utf8;
删除数据库:drop datable name;

引擎

三大引擎 Innodb MYSIAM(二者硬盘存储) MEMARY(基于显存 内存存储)
查看mysql支持的引擎:show engines;
查看默认引擎:show variables like 'default_storang_engines'
修改默认存储引擎:

创建表:create table if not exists table(id int not null auto_increment,age int not null default 0,primary key(id));
查看表:show tables;
查看表详情信息(具体的表):show create table name;
产看表结构 全部:DESC name;
产看表结构 列:DESC name age;
更新表(能更新不推荐):alter table;
添加新字段:alter table name add(id,int);
修改字段名:alter table name change name name1 int;
删除字段名:alter table name drop age;
修改表名: alter table bm name as bm1;
重命名表: alter table name bm to bm1;
删除表: drop table name;
复制表(注意顺序):create table name like name1;

表内容操作

插入完整行 完全插入:insert into name values(id,age);
查询插入行:select * from name;
不完全插入:insert into name(age,num) values(18,88)
多行插入:insert into name(age,num) values(77,66),(33,11)
一个表插入到另一个表:insert into name (age,num) select age,num from name1 ;
删除
删除指定一行:delete from name where id=11;
删除所有:delete from name;

改单列:update name set age=22 where id =1;
改多列:update name set age=22,name=''xx where id =3;
删除某个列的值,可以设置这个列的值为空:
update name set age=null where id =5;

MYSQL检索数据
检索单列:select age from name;
检索多列:select age,num from name;
检索所有列:select * from name;
检索不同的行,去重:select distinct(age) from name;
使用完全限定的表名(同时使用表名和列名):select name.age from name;
完全限定名使用场景:如果只在自己内部使用,那么完全限定名基本上是不用的,这种情况太简单了。那么什么时候去使用呢?比如村里有两家分别叫王a和王b,并且两家都有个孩子叫王小三,这两个王小三并且在一个班级学习上课,那么老师叫王小三,这两个孩子就不知道叫谁了。说王a家王小三,那么王a家王小三就会知道是他。所以当在单表内查询时一般不用完全限定名,只有多个表涉及到相同的列名时,才会使用到完全限定名。比如用户表有个列叫name,商品表有个字段叫name,当查询时只使用name,那么数据库是不知道叫用户的name,还是商品的name,此时完全限定名就可以体现出来。使用完全限定名的作用就是防止歧义的发生!
= 等于:select * from name where age=10;
<> 不等于:select * from name where age<>10;
!= 不等于:select * from name where age!=10;
< 小于 (一般情况下后面会跟数字):select * from name where age<10;
<= 小于等于:select * from name where age<=10;
> 大于:select * from name where age>10;
>= 大于等于:select * from name where age>=10;
BETWEEN .. AND ..在指定的两个值之间:select * from name where age between 10 and 20;
空值检查(IS NULL):select * from name where age is null;
组合WHERE子句
AND:select * from name age=10 and num=1;
OR:select * from name where age=10 or num=2;
IN:select * from name where age in(10,20);
NOT:select * from name where age not in (10,20);

通配符:
%:select * from bm where name like '李%';
:select name from bm where name like '_';

mysql正则:select * from bm where name regexp '^李'

排序
单列
升序:select age from bm order by age asc;
降序:select age from bm order by age desc;
多列
升序:select age,num from bm order by age asc,num asc;
降序:select age,num from bm order by age desc,num desc;
条件排序:
限制查询
指定返回行数:select age from bm limit 1;
指定从几行起,返回几行:select age from bm limit 1,5;
order by和limit的组合使用
取最小值:select age from bm order by age asc limit 1;
取最大值:select age from bm order by age desc limit 1;

聚合函数
返回某列平均值:avg
返回某列行数:count
返回某列最大值:max
返回某列最小值:min
返回某列之和:sum
聚集不同值:select sum(disdinct age) from bm ;
组合聚集函数:select sun(age),min(nun) from bm;

分组
分组(单独用无意义)+聚合函数:select count()age from bm group by age ;
group by + group_concat():select count(
)age,group_concat(num) from bm group by age ;
增加显示字段分组结果
group by + groupconcat+聚合函数:select count(*)age,group_concat(num) from bm group by age
group by + group
with rollup:
select count(*)age from bm group by age with rollup;

HAVING
组合
分组和排序:select count()age from bm where age>1 group by age having age>2 order by age desc;
分组和排序、限定查询:select count(
)age from bm where age>1 group by age** having age>1** order by age desc  limit 2;

image
image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335