MySQL

第1章 初设mysql

  • SQL,指结构化查询语言,全称是 Structured Query Language。

  • RDBMS
    RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。

命令行启动/停止MySQL服务

net start mysql
net stop mysql

发生系统错误 5.
以管理员身份运行

清屏:cls

  • -V输出版本信息并退出

  • -u用户名

  • -p密码

  • -P端口号3306

  • -h服务器名称(本地127.0.0.1)

mysql -uroot -p123456 -P3306 -h127.0.0.1

exit 退出

  • 修改mysql提示符
  1. mysql -uroot -p123456 --prompt 提示符
  2. prompt mysql>
\D完整的日期
\d当前数据库
\h服务器名称
\u当前用户

select version();显示当前服务器版本
select now();显示当前日期时间
select user();显示当前用户

  • 关键字与函数名称全部大写
  • 数据库名称、表名称、字段名称全部小写。
  • SQL语句必须与分号结尾。
创建数据库
CREATE DATABASE [IF NOT EXISTS] t1;
查看服务器下的数据库
SHOW DATABASES;
查看警告信息
SHOW WARNINGS;
查看创建数据库时的参数
SHOW CREATE DATABASE t1;
创建数据库的时候指定编码方式
CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk;
创建了以后再修改编码方式
ALTER DATABASE t2 CHARACTER SET=utf8;
删除数据库
DROP DATABASE t1;

第2章 数据类型与操作数据表

  • 数据类型之整形
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
  • 数据类型之浮点型
FLOAT(M,D)
DOUBLE(M,D)

M是所有的位数。D是小数点之后的位数。

  • 数据类型之日期时间型
YEAR
TIME
DATE
DATETIME
TIMESTAMP 时间戳
  • 数据类型之字符型
CHAR(M)
VARCHAR(M)
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
ENUM('value1','value2',''...) 枚举类型
SET('value1','value2',''...) 在集合中做随意的排列组合
  • 创建数据表
    打开数据库
USE 数据库名称;

显示当前打开的数据库select都会带括号

SELECT DATABASE();

创建数据表

CREATE TABLE(IF NOT EXISTS) table_name(
column_name data_type
)
  • 查看数据表
SHOW TABLES;
SHOW TABLES FROM mysql;

查看数据表结构

SHOW COLUMNS FROM tb1;
  • 记录的插入与查找
    插入记录
INSERT [INTO] tbl_name [(col_name,...)] values(val,...)
INSERT tb1(username,salary) VALUES('John',4500.69)

记录查找

SELECT * FROM tb1;
  • 空值与非空
NULL,字段值可以为空
NOT NULL,字段值禁止为空
  • 自动编号
AUTO_INCREMENT

必须与主键组合使用
默认情况下,起始值为1,每次的增量为1

  • 初涉主键约束
PRIMARY KEY

每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
主键可以不和自动编号一起使用。反之不行。
主键的编号不能重复

  • 初涉唯一约束

唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL)
每张数据表可以存在多个唯一约束

UNIQUE KEY
  • 初涉默认约束
sex ENUM('1','2','3') DEFAULT '3'

第3章 约束以及修改数据表

  • 外键约束的要求解析

约束分为表级约束和列级约束
保持数据一致性完整性
实现一对一或一对多关系
父表和子表必须使用相同的存储引擎
数据表的存储引擎只能是InnoDB
外键列和参照列必须具有相同的数据类型。其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同。
外键列和参照列必须创建索引。如果参照列不存在索引的话,MySQL将自动创建索引

pid BIGINT,
FOREIGN KEY(pid) REFERENCES provinces(id)
SHOW INDEXES FROM provinces;

\G 换一种方式显示

  • 外键约束的参照操作
ON DELETE CASCADE 从父表删除或更新且自动删除或更新子表中匹配的行。
SET NULL 从父表删除或更新行,并设置子表中的外键列为NULL。
RESTRICT 拒绝对父表的删除或更新操作
NO ACTION 标准SQL的关键字,在MySQL中与RESTRICT相同
一般使用逻辑外键而不是物理外键。即不用foreign关键字
delete from provinces where id=3;
  • 对多个数据列建立的约束称为表级约束。
    列级约束既可以在列定义时说明,也可以在列定义后说明。表级约束只能在列定义后说明。

  • 修改数据表,添加删除列
    添加单列

ALTER TABLE user1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;

添加多列,不能指定位置关系
删除列,用逗号做分割

ALTER TABLR user1 DROP truename
  • 修改数据表,添加约束(主键的名字)
ALTER TABLE users2 ADD ID SMALLINT UNSIGNED
ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY(id)
ALTER TABLE users2 ALTER age SET DEFAULT 15;
ALTER TABLE users2 ALTER age DROP DEFAULT;
  • 修改数据表,删除约束
ALTER TABLE users2  DROP PRIMARY KEY;

一张表可以有多个唯一约束,删除约束而不是字段

ALTER TABLE user2 DROP INDEX username

显示索引,以网格的形式展现

SHOW INDEXES FROM users2\G;

删除外键约束

ALTER TABLE users2 DROP FOREIGN KEY 外键的名字
  • 修改数据表,修改列定义和更名数据表
    修改列定义(放在最前面)
ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;

修改列名称(CHANGE 功能大于 MODIFY)

ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL

修改表的名称

ALTER TABLE users2 RENAME users3;
RENAME TABLE user3 to user2

第4章 操作数据表中的记录

回顾和概述

约束:表级约束、列级约束

插入记录INSERT
  • 给自动编号的赋值。两种方法:NULL或DEFAULT
  • 赋值除了数值,还可以是表达式
  • 字段存在默认值的话,既可以赋值原来的默认值,也可以赋值DEFAULT
  • 一次性插入多条记录
INSERT tb VALUES(),()
插入记录INSERT SET-SELECT
  • INSERT SET与第一种方式的区别在于,此方法可以使用子查询(SubQuery)
INSERT tb1_name SET col_name={expr|DEFAULT} 
INSERT users SET username='ben',password='456';
表单更新记录UPDATE
  • 单表更新,多表更新
UPDATE users SET age=age+5;
UPDATE users SET age=age-id,sex=0;
SELECT * FROM users;
UPDATE users SET age=age+10 WHERE id%2=0;
单表删除记录DELETE
DELETE FROM users WHERE id=6;
INSERT users values();

把记录删掉以后。再添加纪录,id号不会补充原有删除的id号。

查询表达式解析
  • 查找记录,查询表达式的顺序影响结果的顺序
SELECT VERSION();
SELECT NOW();
SELECT user();
SELECT * FROM users;
SELECT columns FROM users;
SELECT id,username FROM users;
SELECT users.id,users.username FROM users;

不依附于任何表,就是一个表达式

SELECT 3+5;

为字段赋予别名,影响结果的输出

SELECT id as userid,username as uname FROM users;
WHERE 语句进行条件查询
  • 条件表达式
GROUP BY 对查询结果进行分组
SELECT * FROM users;
SELECT sex FROM users GROUP BY sex;
SELECT sex FROM users GROUP BY 1; 字段的第一个是1
having 语句设置分组条件(某一部分记录进行分组)
SELECT sex FROM users GROUP BY 1 HAVING age>35;
ORDER BY 对查询结果进行排序
SELECT * FROM users;
SELECT * FROM users ORDER  BY 1 HAVING age>35;
LIMIT限制查询数量
SELECT * FROM users LIMIT 2;
SELECT * FROM users LIMIT 2,2;
第三个开始,查询两个
INSERT test(username) SELECT username FROM users WHERE age>=30;

第5章 子查询与连接

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

推荐阅读更多精彩内容