@wangyupu
2020-08-03T06:52:11.000000Z
字数 3845
阅读 23
mysql
数据库(Database,简称DB)
概念长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库"
作用
保存、管理数据
数据表与自身进行连接
口
■从一个包含栏目ID,栏目名称和父栏目ID的表中,查询
示例
父栏目名称和其子栏目名称,表结构如下:
#表结构语句
CREATE TABLE IF NOT EXISTS category(
categoryld int(10) auto_ increment primary key,
categoryName varchar(32) not null,
pid int(10)
);
关系型数据库(SQL)
MySQL、Oracle、 SQL Server、SQLite、 DB2
非关系型数据库(NOSQL)
Redis、 MongoDB
数据库管理系统(Database Management System'数据管理软件,科学组织和存储数据、高效地获取和维护数据
##概念
是现流行的开源、免费的关系型数据库
##特点
免费、开源数据库
小巧、功能齐全
使用便捷
可运行于Windows或Linux操作系统
可适用于中小型甚至大型网站应用
端口号3306 记好自己的端口号忘了也没
连接数据库
打开MySQL命令窗口
在DOS命令行窗口(cmd.exe)
在窗口中进入安装目录\mysgl\bin
可设置环境变量
连接数据库语句
mysql -h服务器主机地址-u用户名-p用户密码
名称 | 解释 | 命令 |
---|---|---|
DDL(数据定义语言) | 定义和管理数据对象,如数据库,数据表等, | CREATE、DROP、ALTER |
DML(数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 用于查询数据库数据 | SELECT |
DCL(数据控制语言) | 用来管理数据库的语言,包括管理权限及数据更改 | GRANT、COMMIT、ROLLBACK |
创建数据库
CREATE DATABASE[IF NOTEXISTS]数据库名;
删除数据库
DROP DTABAE m DITT教据库名;
查看数据库
SHOW DATABASES;
使用数据库
USE数据库名;
创建数据表
属于DDL的一种
CRAETE TABLE[if NOT existe] '表名'(
`字段名1` 列类型[属性][索引][注释],
`字段名2` 列类型[属性][索引][注释],
·······
`字段名n`列类型[属性][注释]
)[表类型][表字符集][注释];
CREATE TABLE [ IF NOT EXISTS]`表名` (
语法
`字段名1`列类型[ 属性] [索引] [注释],
`字段名2`列类型[属性] [索引] [注释],
... ...
`字段名n`列类型[属性] [ 索引] [注释]
)[表类型][表字符集] [注释];
规定数据库中该列存放的数据类型
分为
数值类型.
字符串类型
日期和时间型数值类型
NULL值
列类型分类4-1
类型 | 说明 | 取值范围 | 存储需求 |
---|---|---|---|
tinyint | 非常小的数据 | 有符值: -27~27-1无符号值: 0~ 28.1 | 1字节 |
smallint | 较小的数据有符值: -215 ~ 215-1无符号值:0~ 216-1 | 2字节 | |
mediumint | 中等大小的数据有符值:-223 ~ 23-1无符号值:0~ 224-.1 | 3字节 | |
int | 标准整数 | 有符值: -231 ~ 231-1无符号值: 0~ 232.1 | 4字节 |
bigint | 较大的整数 | 有符值: -263 ~263_1无符号值: 0 ~264-1 | 8字节 |
float | 单精度浮点数 | +1.1754351e -38 | 4字节 |
double | 双精度浮点数 | +2.2250738585072014e -308 | 8字节 |
decimal | 字符串形式的浮点数 | decimal(mn, d) | m个字节 |
类型 | 说明 | 最大长度 |
---|---|---|
char[(M)] | 固定长字符串,检索快但费空间,0<= M <=255 | M字符 |
varchar[(M)] | 可变字符串0<= M <= 65535 | 变长度 |
tinytext | 微型文本串 | 28 1字节 |
text | 文本串 | 216 -1字节 |
日期和时间型数值类型
类型 | 说明 | 取值范围 |
---|---|---|
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
TIME | Hh:mm:ss,时间格式 | -838:59:59~838:59:59 |
DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00至9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 | 19701 0101000000~2037年的某个时刻 |
YEAR | YYYY格式的年份值 | 1901~2155 |
理解为“没有值”或“未知值”
不要用NULL进行算术运算,结果仍为NULL
选择数据类型
整数和浮点
日期类型
char和varchar
数据字段属性
表列类型设置
CREATE TABLE [IF NOT EXISTS]表名(
语法.
`字段名1`列类型[属性][索引][注释],
`字段名2`列类型[属性] [索引] [注释] ,
.. ..
`字段名n`列类型[属性] [索引] [注释]
) [表类型][表字符集] [注释];
无符号的.
声明该数据列不允许负数
0填充的
不足位数的用0来填充,如int(3),5则为005
自动增长的,每添加-条数据,自动在上一个记录数上加1通常用于设置主键, 且为整数类型
可定义起始值和步长
默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
默认的
用于设置默认值
例如,性别字段,默认为"男”,
否则为“女”;若无指
定该列的值,则默认为“男” 的值
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名1` 列类型[属性][索引][注释],
`字段名2` 列类型[属性] [索引] [注释],
`字段名n` 列类型[属性][索引][注释]
) [表类型][表字符集][注释];
CREATE TABLE表名(
#省略一-些代码
) ENGINE = InnoDB
CREATE TABLE [IF NOT EXISTS]`表名`(
`字段名1`列类型[属性][索引][注释],
`字段名2`列类型[属性][索引][注释],
.. ..
`字段名n`列类型[属性][索引][注释]
) [表类型][表字符集] [注释];
可为数据库、数据表、数据列设定不同的字符集
设定方法
创建时通过命令来设置,如
CREATE TABLE表名(
#省略一些代码
)CHARSET = utf8;
如无设定, 则根据MySQL数据库配置文件my.ini
(Windows系统)中的参数设定
如: character-set-sever = utf8
外键管理
外键作用
创建外键
建表时指定外键约束
建表后修改
删除外键
删除外键、删除表
索引
CREATE TABLE [IF NOT EXISTS] `表名 `(
`字段名1`列类型 [属性] [索引][注释],
`字段名2`列类型[属性] [索引] [注释],
... ...
`字段名n`列类型[属性][索引][注释]
)[表类型][表字符集][注释];
实例
CREATE TABLE `Student`(
`s_id` VARCHAR(20),
`s_name` VARCHAR(20) NOT NULL DEFAULT '',
`s_birth` VARCHAR(20) NOT NULL DEFAULT '',
`s_sex` VARCHAR(10) NOT NULL DEFAULT '',
PRIMARY KEY(`s_id`)
);
包括表文件、数据文件以及数据库的选项文件
位置: MySQL安装目录\data下存放数据表。目录名对
应数据库名,该目录下文件名对应数据表
修改表(ALTER TABLE)
修改表名
语法
ALTER TABLE旧表名RENAME AS新表名
添加字段
ALTER TABLE表名ADD 字段名列类型[属性]|
修改字段
ALTER TABLE表名MODIFY 字段名列类型[属性]
ALTER TABLE表名CHANGE 旧字段名新字段名列类型[属性]
删除字段
ALTER TABLE表名DROP 字段名
DROP TABLE [IF EXISTS]
表名
IF EXISTS为可选,判断是否存在该数据表
如删除不存在的数据表会抛出错误
在:我的电脑→管理→服务→找到mysql并停止
开始菜单→控制面板→程序和功能
位置:删除 C盘→programData->mysql文件夹,programData文件夹为隐藏文件夹//这一步很重要
打开注册表:regedit
删除HKEY_LOCAL_MACHIN->ControlSet001->SYSTEM-> service->MySQL;
删除HKEY_LOCAL_MACHINE->ControlSet002-> SYSTEM-> services->MySQL;
删除HKEY_LOCAL_MACHINE->CurrentControlSet-> SYSTEM-> services->MySQL