特别提示 本说明中的mysql 是基于windwos平台下的5.5 版本
安装完成后 请到mysql中设置配置文件
链接分享:链接:https://pan.baidu.com/s/1tv4ulZW1iUVl0ukn5WtV6w
提取码:rso9
(永久有效)
本篇教程的主要目的为 好记性不如烂笔头 增加自身今后学习的备忘录
学习之前 对几个关键性的关键字(语义同单词) !!! 熟记 !!!
alter 修改
insert 插入
create 创建
delete 删除
update 更新
select 查询
drop 移除 / 停止
add 增加
show 显示
IF 如果
table 表
database 数据库
from 从某某某.. / 对.某某某..
set 设置
on 多张表的连接操作
学习命令笔记:
windwos下的 cls 清屏命令
mysql 登录命令 mysql-u账户 -p密码 --prompt参数
--prompt 是进行提示符 修改
DELIMITER 修改结束符
可在登录时进行此修改
亦可通过进入mysql后修改 prompt 参数
参数
描述
\D
完整的日期
\d
当前数据库
\h
服务器名称
\u
当前用户
数据库
创建数据库 create database 数据库名称 character set=编码方式;
修改数据库alter database 数据库名称 character set =编码方式;
删除数据库drop database数据库名称;
显示所有数据库 show databases;
打开数据库USE数据库名称;
查询当前打开的数据库SELECT DATABASE();
查询当前数据库的详细信息 SHOWCREATE DATABASE 数据库名称;
数据表数据操作
创建表 CREATE TABLE 表名【IF NOT EXISTS】(列名称 列类型,....);
查看数据库所有表 SHOW TABLES[FROM 表名] [LIKE '条件' | WHIERE expr]; 也可查询关于某一数据库下的表
查看表结构 SHOW COLUMNSFROM表名;
查看表 的索引 SHOW INDEXESFROM 表名【\G】;[\G]表示以网格形式出现
插入记录1:INSERT [INTO] 表名 [(列名,...)] VALUES(值域,...),(值域,....); 如果省略掉列名 就要为所有的列赋值 且NOT NULL的值一定要赋值
插入记录2: 可用于子查询INSERT [INTO] 表名 SET 列名= { 值 | DEFAULT },列名 ={值 | DEFAULT}.....
插入记录3: 将查询的结果写入数据表INSERT [INTO] 表名 [( 列名,列名,... )] SELECT...
删除记录(单表)DELETE FROM 表名 WHERE条件;
更新记录(单表)UPDATE 表名 SET 列名 = { 值 | DEFAULT },列名1 = { 值 | DEFAULT },列名2 = { 值 | DEFAULT }... WHERE条件;
查询记录SELECT 表达式 [列名,...] FROM 表名 WHERE 条件 ; * 为字段过滤
查询记录的别名的使用
原名 as 别名
修改数据表
增加列 ALTER TABLE 数据表 ADD 列名 约束 【FIRST |AFTER】 列名;
默认插入到所有列名后 可通过 FIRST|AFTER 修饰
FIRST 将插入到所有列名前
AFTER 插入到指定列名后 如果不指定列名 插入到所有列名后
添加多列 添加多列不能指定位置关系ALTER TABLE 数据表 ADD(列名 类型 约束 ,列名 类型 约束,......)
删除列ALTER TABLE 数据表 DROP列名 ;
删除多列ALTER TABLE 数据表 DROP 列名 , DROP列名 ;
如果像同时操作删除或者添加 只需要用, 分隔
例:ALTER TABLE 数据表 add 列名 类型 约束 , drop列名;
允许新增多列的时候 进行删除操作
例:ALTER TABLE users ADD (a1 TINYINT not null,a2 TINYINT NOT NULL) ,drop m;
修改列定义
可修改类型 也可添加位置关键字 如果不填 将保持当前位置
修改类型时:将大类型改到小类型有可能造成数据丢失
AFTERTABLE 表名 MODIFY [column] 列名 类型 【first | AFTER 列名】;
修改列名称
原理同 修改列定义ALTER TABLE 表名 CHANGE [COLUMN] 待修改列名称 列新名称 类型 【 FIRST | AFTER 列名】;
数据表更名
方法1:
AFTERTABLE数据表名称 RENAME 新名称;
方法2:
可同时修改多个
RENAMETABLE 数据表名称 TO 新名称 【,数据表名称 TO 新名称,数据表名称 TO 新名称......】
约束
NULL为空NOT NULL 不能为空 设置为空时 应在字段类型后设置 如: alter table 表名 add 列名 类型 NOT NULL....
AUTO_INCREMENT 自动编号 必须和主键配合使用 其实值为1 每次增量为1 每次插入记录时 可在值域内 写NULL 或DEFAULT主键约束
每张表 只能存在一个主键
主键保证记录的唯一性
主键自动为NOTNULL
PRIMARY KEY唯一约束
唯一约束保证记录的唯一性
唯一约束的字段可以为NULL
每张表可以存在多个唯一约束UNIQUE KEY默认约束DEFAULT 插入记录时 如果没有为字段赋值 则使用默认值
索引关键字 FOREIGN KEY(列名) REFERENCES 参照表 (参照表的列名)
外键约束条件 :(存在外键列的为子表 参照列为父表)1、父表和子表必须使用相同的INNODB数据引擎2、如果外键约束列为数字 则必须类型和符号位都相同 如果是字符 则不要求长度相同3、外键列和参照列必须创建索引 主键会自动创建索引4、如果外键列不存在索引的话 将自动创建索引5、外键约束参照操作CASCADE父表删除将影响字表SET NULL 从父表删除将设置字表为NULL 且字表不能是NOT NULL约束RESTRICT拒绝父表更新
NO ACTION 拒绝父表更新 同RESTRICT 此为标准sql 关键字
修改约束
添加主键约束
AFTERTABLE 表名 ADD [CONSTRAINT [ 名称] ] PRIMARY KEY [索引](列名);
删除主键约束
AFTERTABLE 表名 DROP PRIMARY KEY;
添加唯一约束
可同时添加多行
AFTERTABLE 表名 ADD [CONSTRAINT [ 名称] ] UNIQUE [INDEX / KEY](列名,列名,列名....);
删除唯一约束
AFTERTABLE 表名 DROP {INDEX | KEY} 列名;
添加外键约束
AFTERTABLE 表名 ADD [CONSTRAINT [ 名称] ] FOREIGN KEY(列名,列名....)REFERENCES参照表名 (参照表列名,....)
删除外键约束
AFTERTABLE 表名 DROP FOREIGN KEY列名;
添加/删除默认索引
AFTERTABLE 表名 ALTER 列名 { SET DEFAULT 值 | DROP DEFAULT };
函数
CREATE FUNCTION 函数名称( [函数参数] ) RETURNS返回类型[BEGIN]
RETURN执行语句[NED]
说明:
如果有多个语句可使用BIGIN - END 组合复合语句 在待返回的语句前加RETURN 以返回值
在BIGIN - END 前加RETURN 会报错!!!
整型
数据类型 (整型)
存储范围
TINYINT
1字节
SMALLINT
2
MEDIUMINT
3
INT
4
BIGINT
8
TINY
SMALL
MEDIUM
BIG
UNSIGEND 无符号类型
浮点型
数据类型(浮点型)
存储范围
float 【(M,D)】
可保留大约七位小数
double【(M,D)】
M表示 总位数 D表示小数位数
日期时间型
类型
存储要求
YEAR
1 年份 1970~2069
TIME
3 时间类型 -8385959~8385959
DATE
3 日期 1000年1月1日~9999年的12月31日
DATETIME
8 日期时间 10000年1月1日0点~9999年的12月31号59分59秒
TIMESTAMP
4 时间戳 1970年1月1日0点~2037年
字符型
类型
存储需求
CHAR(M)
定长 M个字节 0<=M<=55
VARCHAR(M)
变长 0<=M<=65535
TINYTEXT
L+1个字节 L<28
TEXT
L+2个字节 L<216
MEDIUMTEXT
L+3个字节 L<224
LONGTEXT
L+4个字节 L<232
ENUM('',''...)
1或者2个字节 取决于枚举的个数 枚举
SET('','',...)
1、2、3、4、8个字节 取决于SET成员的数目 最多64个成员 集合