2018-07-29学习mysql小结

    此前在校学习期间,只是知道数据库很重要,但是并未主动去学习了解。现在的学习过程中学了一遍mysql,就简单的做一个总结吧。

    首先记住三个概念:

    1.数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。   

    2.SQL :结构化查询语言(Structured Query Language)

    3.MySQL:关系型数据库管理系统

    database中存储着各种数据,sql语句用于从database中找出我们需要的数据,mysql是一种应用软件,通过语句对database进行操作。

    MySQL我使用的是5.6版本,通过管理员身份打开cmd后,启用mysql服务为:net start mysql56,关闭服务为:net stop mysql56。登录:mysql -h localhost -u root -p     回车后输入密码:123456(用户名和密码在安装时进行设置)


    下面将会从四个方面进行总结:

    1.数据定义语言(DDL)

    2.数据操作语言(DML)

    3.数据查询语言(DQL)

    4.函数

    本篇小结大部分是语句格式,如果需要代码实现的截图,以及部分额外知识点标注,可以下载安装xmind软件后,下载云盘里的思维导图进行查看。

链接:https://pan.baidu.com/s/18a3gY9Rzu7TOox-Tkgq-_w 密码:qrie

ximd内容如下:

数据定义语言(DDL):

1.建表:

create table 表名(                                                    create table test(

          列名称1 数据类型 ,                                                           id int,

          列名称2 数据类型,                                                            name char(10),

          .........                                                                                    ......

          列名称n 数据类型);                                                       birthday date);

常用的数据类型:整数(int,tinyint,smallint),小数(float,decimal),字符串(char,varchar),时间(date,time)

2.约束:

primary key(主键):约束唯一标识数据库表中的每条记录

foreign key(外键):foreign key就是表与表之间的某种约定的关系,从一个表指向另一个表

unique:约束用于限制加入表的数据的类型

建表时可在数据类型后添加:

create table test(id int primary key);

create table test(id int,primary key(id);

或者建表时未添加,后面需要时再添加:

alter table test add primary key(id);

删除主键:alter table test drop primary key;

unique的用法与primary key 相同。

外键的用法:

create table t1(id int primary key,name char(10));

create table t2(id int primary key,pri_id int,name char(10),

constraint i foreign key(pri_id) references t1(id));

意思为:把t2中的pri_id 作为外键,指向t1中的主键id

删除外键:constraint i,把外键命名成i,方便了我们删除外键

alter table t2 drop foreign key i; 

3.字段属性

1.unsigned(无符号型),只能用在数值型字段

2.zerofill(自动补零),只能用在数值型字段,前导零,同时该字段自动式UNSIGNED

3.AUTO_INCREMENT(自动增长),寄生于主键

4.NOT NULL:强制约束列不守NULL值,即不添加数值就无法插入数据

5.缺省值(default):给数据一个默认值(系统默认值是NULL),不能与auto_increment同时用于一个字段上

写法均为:create table test(id int 字段属性);



DML(数据操作语言):

1.索引:

创建:create index 索引名 on 表名(字段);            create index i on test(id);

删除:drop index 索引名;                                        drop index i;

2.对数据操作:

insert(插入):

插入单独数据:insert into 表名 字段1、字段2... values(值1、值2...);

插入默认数据:insert inro 表名 values(值1、值2...);

insert into test(id,name) values(008,'周星星');

update(修改、更新):修改(更新)数据:update 表名 set 字段=新值 where 列名称=某值

update test set name='詹姆斯' where id=008;

修改多条数据:

update test set name=case id

when 001 then 'qwe'

when 002 then 'asd'

end

where id in(001,002)

replace(批量更新数据)(也可用于数据添加):replace into 表名(字段1、字段2...) values(值1、值2...)

replace into test(id,name) values(002,'777');

未添加的数据会默认为null

批量更新(通过update):

insert into test(id,name) values(001,'i am 001'),(002,'i am 002')

on duplicate key update

id=values(id),name=values(name);

delete删除数据(一条):delete from 表名 where 条件

delete from test where id=001;

3.对表操作

修改表名:alter table 旧表名 rename as 新表名;

alter table test rename as father;

修改字段的数据类型:alter table 表名 modify 字段名 数据类型

alter table test modify id char(10);

修改字段名:alter table 表名 change 字段名 新字段名 数据类型;

alter table test change name address char(50);

增加字段:alter table 表名 add 字段名1 数据类型

alter table test add address char(30);

删除字段:alter table 表名 drop 字段名;

alter table test drop address;



DQL(数据查询语句insert):

1.交叉查询:select 表1.字段,表2.字段 from 表1,表2;

多表联合查询:select 表1.字段,表2.字段 from 表1,表2 where 表1.id=表2.id;

select * from t1,t2 where t1.id=t2.id;

2.查询不重复的数据:select distinct 字段 from 表名;

select distinct id from test;

3.取别名alias:select * from 表名 as 别名;

自连接:select b.* from shop as a,shop as b where a.name='包子' and a.price

把shop表取别名为a,b,通过a和b进行自己数据的对比

4.limit(偏移量):

查询前n条数据:select *from 表名 limit n;

查询前n条数据后的i条数据:select *from 表名 limit n,i;

5.in(在where后规定多个值):select 字段 from 表名 where 字段 in(值1,值2);

select * from test where id in(1,2,3);

6.like(用于where子句中搜索列中的指定模式):select 字段 from 表名 where 字段 like 表达式;

例如搜索王姓青年:

select *from test where name like'王%';

%:表示0~多个字符

_:表示一个字符

7.order by(排序):select 字段 from 表名 order by 字段(排序方式) [desc](使用倒序排列)

select * from test order by id desc;

表示通过id从大到小进行排序显示

8.join连接:

inner jor(内连接),left join(左连接),right join(右连接)

full join(全连接)(mysql不支持全连接)

格式都相同:select 字段 from 表1 inner/left/right join 表2 on 表1.字段=表2.字段;

9.union(联合查询):select *from 表1 union select *from 表2;



函数:

1.合集函数:操作面向一系列的值,并返回一个单一的值

写法都相同:

查询某列的平均值:select avg(字段) from 表名;

返回某列的行数:select count(字段) from 表名;

查询某列最大值:select max(字段) from 表名;

查询某列最小值:select min(字段) from 表名;

返回某列总和:select sum(字段) from 表名;

分组显示总和:select sum(字段) from 表名 group by 字段;

2.标量函数:操作面向某个单一的值,并返回基于输入值的一个单一的值

写法也都相同:

ucase(把字段的值转换为大写):select ucase(字段) from 表名;

lcase(把字段的值转换为小写):select lcase(字段) from 表名;

mid(提取字符):mid(字段,起始,结束):

select mid(name,2,3) from test;

表示从name列的第二个数据开始,每个数据只显示3位

len(返回文本长度):select length(字段) from 表名;

round(把数值四舍五入,并保留相应小数位):select round(字段,数字) from 表名;

now()(查询当前时间):select now() from 表名;(有几个数据就出现几个)



    此文章虽然是自己的学习小结,而且还是身为初学者的我写的,但也希望更多的朋友能看到我的文章,如果有不足之处或疑问,欢迎到留言区留言。

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

推荐阅读更多精彩内容

  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,140评论 0 33
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,724评论 5 116
  • 上车等了一会儿,刚好有个男孩下车,就顺势坐在了他的位置上。 目光在四周游离了会儿,就停留在了眼前的姑娘。 那是一个...
    ShellydeDiary阅读 246评论 1 1
  • 世界上有一种感情,虽为异性,但以兄弟相称。 我和韩雪高二才相识,只因为文理分科,我们有幸分到了同一个班级。我以文综...
    大梦秋凉阅读 441评论 0 0
  • 最近有篇文火了,我又后知后觉(奇怪,为什么用又?)。抱着拜读的心理在网上搜,结果评论比原文多得多,大多数是反对的声...
    昼間夢想阅读 200评论 0 1