MySQL笔记.docx

上传人:b****4 文档编号:3768878 上传时间:2022-11-25 格式:DOCX 页数:8 大小:17.76KB
下载 相关 举报
MySQL笔记.docx_第1页
第1页 / 共8页
MySQL笔记.docx_第2页
第2页 / 共8页
MySQL笔记.docx_第3页
第3页 / 共8页
MySQL笔记.docx_第4页
第4页 / 共8页
MySQL笔记.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

MySQL笔记.docx

《MySQL笔记.docx》由会员分享,可在线阅读,更多相关《MySQL笔记.docx(8页珍藏版)》请在冰豆网上搜索。

MySQL笔记.docx

MySQL笔记

一、初涉数据库

启动关闭MySQL服务:

打开cmd输入:

》netstartmysql//所有Windows服务都可以通过这种方式启动和关闭

》netstopmysql

登入和退出MySQL:

》mysql-uusename-ppassword-h服务器名(ip)-P端口号

>exit;

>quit;

>\q;

修改提示符:

先登入,再设置提示符

》prompt提示符

》prompt\u@\h\d>

//提示符可以为:

\D完整日期

\d当前数据库

\h服务器名称

\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,

>usernameVARCHAR(20)NOTNULL,

>);

唯一约束

唯一约束(UNIQUEKEY)

唯一约束可以保证记录的唯一性;

唯一约束的字段可以为空值(NULL);

每张数据表可以存在多个唯一约束。

>CREATETABLEtb

>(

>idSMALLINTUNSIGEDAUTO_INCREMENTPRIMARYKEY,

>usenameVARCHAR(20)NOTNULLUNIQUEKEY,

>ageTINYINTUNSIGED)

>;

默认约束

默认约束:

DEFAULT

当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

>CREATEtb(

>idSMALLINTUNSIGEDAUTO_INCREMENTPRIMARYKEY.

>usenameVARCHAR(20)NOTNULLUNIQUEKEY,

>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(

>idTINYINTUNSIGEDAUTO_INCREMENTPRIMARYKEY,

>usernameVARCHAR(20)NOTNULL,

>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,

pidSMALLINTUNSIGED,

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1