MySQL

1.术语
数据库:一些关联表的集合;
表:数据的矩阵;
行:一组相关的数据;
列:一组相同类型的数据;
冗余:存储两倍数据(降低了性能,提高了数据安全性);
主键:唯一(一个数据表最多有一个主键,值具有唯一性);
外键:用于关联两个表;
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引;
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录;
参照完整性:
实体完整性:
MySQL数据库:MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2.语句
创建数据库:CREATE DATABASE test0420

删除数据库:DROP DATABASE test0420

创建表:
CREATE TABLE w_tbl(
w_id INT NOT NULL AUTO_INCREMENT, //自增
w_title VARCHAR(100) NOT NULL,//非空
w_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( w_id ) //声明主键
)ENGINE=InnoDB DEFAULT CHARSET=utf8; //设置引擎和编码

删除表:DROP TABLE w_tbl

插入:INSERT INTO z_tbl (z_id, z_name, z_desc) VALUES (1,'wxe','cute')

查询:
SELECT * FROM table_name
[WHERE Clause] // 查询条件 AND、OR、以及逻辑运算符等
[OFFSET M ] //开始查询的数据偏移量,默认情况下偏移量为0
[LIMIT N] // 设定返回的记录数

更新:UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

删除:DELETE FROM table_name [WHERE Clause]

LIKE子句:%表示任意字符

UNION操作符:
SELECT f1, f2, ... fn FROM tables1 [WHERE conditions1]
UNION [ALL | DISTINCT] //默认是DISTINCT去重,ALL不去重
SELECT e1, e2, ... en FROM tables2 [WHERE conditions2];

ORDER BY排序: [ASC [DESC]] 默认是ASC升序,DESC为降序

GROUP BY分组:
1)语法:
SELECT column_name, function(column_name) //可以是COUNT, SUM, AVG等函数
FROM table_name
WHERE column_name operator value
GROUP BY column_name // 按照某一列进行分组
WITH ROLLUP; //在以该列分组上在进行统计(COUNT, SUM, AVG等操作)
2)示例:


数据表.png

按name分组,统计每个用户的记录数:
SELECT name,COUNT(*) as user_count FROM employee_tbl GROUP BY name;


结果1.png

按name分组,统计每个用户的登录数:
SELECT name,SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
结果2.png

其中记录 NULL 表示所有人的登录次数。
可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:
select coalesce(a,b,c);
参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
SELECT COALESCE(name,'总数') as user_name,SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
结果3.png

Join连接
1)INNER JOIN ON(内连接,等值连接,默认的JOIN方式):获取两个表中字段匹配关系的记录;

1.png

例:select a.id, a.name,b.describe from t_one a inner join t_two b on a.name = b.name;
等同于:select a.id, a.name,b.describe from t_one a, t_two b where a.name = b.name;
2)LEFT JOIN ON(左连接):获取左表所有记录,即使右表没有对应匹配的记录;

2.png

3)RIGHT JOIN ON(右连接):反之2);

3.png

MySQL事务
1)在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
2)事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
3)事务用来管理 insert,update,delete 语句。
事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
例子:
MYSQL 事务处理主要有两种方法:
1、用 BEGIN, ROLLBACK, COMMIT来实现
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交

ALTER 修改数据库表名或者字段
1)删除表字段:alter table t_one drop title;
2)添加表字段:
alter table t_one add title varchar; 添加vcarchar类型的title字段到尾部
alter table t_one add title varchar first; 添加varchar类型的title字段到首位
alter table t_one add title varchar after name;添加varchar类型的title字段到name字段后边;
3)修改字段类型或名称:
alter table t_one modify name CHAR(10);修改那么字段的类型
4)修改表明:
ALTER TABLE t_one RENAME TO t_two;

INDEX索引
索引分为单列索引和组合索引;
索引其实已是一张表,里面包含了主键与索引字段,并指向实体表的记录;
优缺点:
虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件;
建立索引会占用磁盘空间的索引文件。

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

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,028评论 0 19
  • 1、MySQL启动和关闭(安装及配置请参照百度经验,这里不再记录。MySQL默认端口号:3306;默认数据类型格式...
    强壮de西兰花阅读 632评论 0 1
  • 1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop dat...
    codeSirCao阅读 433评论 0 2
  • 喜欢台湾的文艺片,因为对台湾这座岛屿的向往,还有它所流露出的清新感觉。有时想到它干净的海岸线,还有那长长的公路,...
    盛世回首阅读 202评论 0 0
  • 故事简介|唐,开元十四年,夜,宵禁。一阵风吹过街道,然后随着风的,一盏盏灯笼从一个个小巷子亮起,飘过…… 灯笼在朱...
    遛遛心情的溜妈阅读 1,350评论 3 13