Linux下mysql使用知识收录分享

(自己用于记录,网友不用看)

http://blog.csdn.net/a672489861/article/details/17314959

http://www.cnblogs.com/feichexia/p/MysqlDataBackup.html

http://jingyan.baidu.com/article/948f5924259516d80ef5f95e.html

-------------2016-9-6---------------

exists用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。not exists 则相反处理。select name from student where sex = 'm' and mark exists(select 1 from grade where ...)
exists 与 in 最大的区别在于 in引导的子句只能返回一个字段,in子句返回了三个字段,这是不正确的,exists子句是允许的,但in只允许有一个字段返回,在1,2,3中随便去了两个字段即可。

-------------------2016-9-4--------------------------

UNION 运算符

union:联合的意思,即把两次或多次查询结果合并起来。
要求:两次查询的列数必须一致
推荐:列的类型可以不一样,但推荐查询的每一列,想对应的类型以一样
可以来自多张表的数据:多次sql语句取出的列名可以不一致,此时以第一个sql语句的列名为准。
如果不同的语句中取出的行,有完全相同(这里表示的是每个列的值都相同),那么union会将相同的行合并,最终只保留一行。也可以这样理解,union会去掉重复的行。
如果不想去掉重复的行,可以使用union all。
如果子句中有order by,limit,需用括号()包起来。推荐放到所有子句之后,即对最终合并的结果来排序或筛选。

EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语法,几乎所有的数据库系统都支持通过关键字 AS 来指定别名。

关于内连接和外连接,较为基础的两篇文章:
http://blog.sina.com.cn/s/blog_3d48dbb70100hyz4.html
http://www.cnblogs.com/youzhangjin/archive/2009/05/22/1486982.html
full join在使用的时候,会出现问题,后续补充。

between用法
between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2

备份数据库中一个表结构,并不备份数据
mysqldump -u root -p -d dbname tableName > back.sql
备份数据库中表结构,也备份数据
mysqldump -u root -p dbname tableName> back.sql


haing语句
我们在写sql语句的时候,经常会使用where语句,很少会用到having,其实在mysql中having子句也是设定条件的语句与where有相似之处但也有区别。having子句在查询过程中慢于聚合语句(sum,min,max,avg,count).而where子句在查询过程中则快于聚合语句(sum,min,max,avg,count)
基础参考文章:
http://www.2cto.com/database/201308/238648.html


-------------------2016-9-1--------------------------

创建表的另一种方式:
create table newName like oldTable;
查看创建表的sql语句:
show create table tablename;(表是已经创建好的)
对sql语句进行分析:
explain select * from student;
修改数据库或表的默认字符集:
alter database dbname default character set utf8;
alter table tablename default character set utf8;
添加、删除主键:
alter table student add primary key(ID);(保证ID里面没有重复值,才可以创建成功)
alter table student drop primary key;


-------------------2016-8-29--------------------------

备份数据库:(在bash命令行中输入)

备份数据库中表结构,并不备份数据
mysqldump -u root -p -d dbname > back.sql
备份数据库中表结构,也备份数据
mysqldump -u root -p dbname > back.sql
首先create创建数据库,然后用source命令进行表和数据的导入。
导入的方法:


-------------------2016-8-28--------------------------

查看列:desc 表名;

修改表名:alter table 表名 rename new表名;

添加列:alter table 表名 add column name varchar(15) not null;
 
删除列:alter table 表名 drop column name;

修改列名MySQL:alter table 表名 change column name newName varchar(20) not null;
 
修改列属性:alter table 表名 modify name char(20);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值