MySQL笔记Word格式文档下载.docx
《MySQL笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MySQL笔记Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
\u当前用户
常用命令:
SELECTVERSION();
//显示当前版本
SELECTNOW();
//显示当前时间
SELECTUSER();
//显示当前用户
MySQL语法:
关键字与函数名全部大写;
数据库名称、表名称、字段名称全部小写;
SQL语句必须以分号结尾。
创建数据库:
CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name[DEFAULT]CHARACTERSET[=]charset_name;
例如:
CREATEDATEBASEdb1;
SHOWWARNINGS;
//查看警告信息
SHOWCREATEDATEBASEdb1;
//查看编码信息
CRETEDATEBASEIFNOTEXSITSdb2CHARACTERSETgbk;
修改数据库:
ALTER{DATABASE|SCHEMA}[db_name][DEFAULT]CHARACTERSET[=]charset_name;
删除数据库:
DROP{DATABASE|SCHEMA}[IFEXISTS]db_name;
二、数据类型和操作数据表
数据类型
整型:
TINYINTSMALLINTMEDIUMINTINTBIGINT
浮点型:
FLOAT[(M,D)]M数字的总位数,D小数点后面的位数
DOUBLE[(M,D)]
日期时间型:
YEARTIMEDATEDATETIMETIMESTAMP(一般时间都用数字型表示)
字符型:
CHAR(M)定长,如果存入字符数不足M,用空格补足
VARCHAR(M)不定长
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
ENUM(‘value1’,’value2’,…)可供选择的,比如性别
SETENUM(‘value1’,’value2’,…)任意组合
操作数据表
1、登录mysql客户端:
mysql-uroot-proot-P3306-h127.0.0.1
用户名密码端口ip地址
2、》SHOWDATABASES;
//查看有哪些数据库
3、》USEtest;
//打开数据库名叫test
4、》CREATETABLE[IFNOTEXISTS]table_name(
Column_namedata_type,
…
);
CREATETABLEtb1(
UsenameVARCHAR(20),
AgeTINYINTUNSIGNED,
Salaryfloat(8,2)UNSIGNED
);
5、SHOWTABLES;
//查看数据表
SHOWTABLES[FROMdb_name];
6、SELECTDATABASE();
//查看当前在哪一个数据库下
7、SHOWCOLUMNSFROMtb_name//查看数据表结构
8、INSERT[INTO]tb_name[(col_name),..]VALUES(VAL,..);
//插入记录,col_name和val一一对应
9、SELECTecpr,…FROMta_name
例:
SELECT*FROMtb1;
空值与非空
NULL字段值可以为空
NOTNULL字段值禁止为空
例:
CREATETABLEStb2(
usernameVARCHAR(20)NOTNULL,
ageTINYINTUNSIGEDNULL
);
自动编号
自动编号(AUTO_INCREMENT),且必须与主键组合使用;
默认情况下,其实值为1,每次增量为1.
主键
主键(PRIMARYKEY)不一定和自动编号一起使用
主键约束
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOTNULL
CREATETABLEtb3(
idTINYINTUNSIGEDAUTO_INCREMENTPRIMARYKEY,
唯一约束
唯一约束(UNIQUEKEY)
唯一约束可以保证记录的唯一性;
唯一约束的字段可以为空值(NULL);
每张数据表可以存在多个唯一约束。
CREATETABLEtb
(
idSMALLINTUNSIGEDAUTO_INCREMENTPRIMARYKEY,
usenameVARCHAR(20)NOTNULLUNIQUEKEY,
ageTINYINTUNSIGED)
;
默认约束
默认约束:
DEFAULT
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
CREATEtb(
idSMALLINTUNSIGEDAUTO_INCREMENTPRIMARYKEY.
sexENUM(‘1’,’2’,’3’)DEFAULT‘3’,
本节总结
数据类型:
字符型
整型
浮点型
日期时间型
数据表操作:
插入记录
查找记录
记录操作:
创建数据表
约束的使用
三、约束以及修改数据表
3.1外键约束的要求解析
3.1.1约束
1、约束保证数据的完整性和一致性;
2、约束分为表级约束和列级约束;
表级约束:
针对两个或两个以上的约束
列级约束:
只针对某一个字段的约束
3、约束类型包括:
NOTNULL(非空约束)
PRIMARYKEY(主键约束)
UNIQUEKEY(唯一约束)
DEFAULT(默认约束)
FOREIGNKEY(外键约束)
外键约束(FOREIGNKEY):
保持数据的一致性,完整性,实现一对一或一对多关系。
3.2外键约束要求
1、父表与子表必须使用相同的存储引擎,而且禁止使用临时表。
子表:
具有外键列的表
父表:
子表参照的表
2、数据表的存储引擎只能为InnoDB。
3、外键列与参照列必须具有相似的数据类型。
其中数字的长度或是否有符号必须相同;
而字符的长度可以不同。
外键列:
加过FOREIGN关键词的那一列
参照列:
外键列参照的那一列
4、外键列与参照列必须创建索引,如果外键列不存在索引的话,mysql将自动创建索引。
CREATETABLEprovinces(
idSMALLNTUNSIGEDNOTNULLAUTO_INCREMENTPRIMARYKEY,
pnameVARCHAR(20)NOTNULL,
CREATETABLEuseers(
pidSMALLINTUNSIGED,
FOREGINKEY(pid)REFERENCEprovinces(id)
3.3外键约束的参照操作
1、CASCADE:
从父表删除或更新且自动删除或更新子表中的匹配行;
2、SETNULL:
从父表删除或更新行,并设置子表中的外键列为NULL。
如果使用该选项,必须保证子表列没有指定NOTNULL;
3、RESTRICT:
拒绝对父表的删除和更新操作;
4、NOACTION:
标准SQL关键字,在MYSQL中和RESTRICT相同。
添加父表:
》CREATETABLEprovinces(
idSMALLINTUNSIGEDPRIMARTKEYAUTO_INCREMENT,
pnameVARCHAR(20)NOTNULL
添加子表带有CASCADE操作
》CREATETABLEuser1(
idSMALLINTUNSIGEDPRIMARYKEYAUTO_INCREMENT,
usenameVARCHAR(20)NOTNULL,
FOREIGNKEY(pid)REFERENCESprovinces(id)ONDELETECASCADE
在两张表中插记录,先在父表中插记录,
》INSERTprovinces(pname)VALUES(‘A’);
》INSERTprovinces(pname)VALUES(‘B’);
》INSERTprovinces(pname)VALUES(‘C’);
SELECT*FROMprovinces;
在子表中插入记录
INSERTuser1(usename,pid)VALUES(‘TOM’,3);
//表示省份对应的名称是C
从父表中删除记录
DELETEFROMprovincesWHEREid=3;
//附表中省份名称为C的那条记录不存在了,则在子表中pid=3的也全部删除了。
3.4表级约束与列级约束
只针对某一个字段的约束
列级约束既可以在列定义时声明,也可以列定义后声明;
表级约束只能在列定义后声明。
3.5修改数据表-添加、删除列
添加单列:
ALTERTABLEtbl_nameADD[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]
添加多列
ALTERTABLEtbl_nameADD[COLUMN](col_namecolumn_definition,…)
删除列
ALTERTABLEtbl_nameDROP[COLUMN]col_name
删除多列:
ALTERTABLEtbl_nameDROP[COLUMN]col_name,DROP[COLUMN]col_name