什么是数据库
数据库(DB,DataBase)
概念
:数据仓库,软件,安装在操作系统之上;SQL,可以存储大量的数据,500万以下,500万以上要做索引优化
作用
:存储数据,管理数据
数据库分类
关系型数据库
:行、列(SQL)
MySQL
、Oracle
、Sql Server
、DB2
、SQLLite
通过表和表之间,行和列之间的关系进行数据的存储
非关系型数据库
:{key:value} (NoSQL:Not Only SQL)
Redis
、MongoDB
对象存储,通过对象的自身属性来决定
DBMS(Database Management System)
MySQL简介
MySQL是一个关系型数据库管理系统
MySQL 连接
使用mysql二进制方式连接
您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。
实例
以下是从命令行中连接mysql服务器的简单实例:
1 2
| [root@host] Enter password:******
|
退出 mysql> 命令提示窗口可以使用 exit 命令,如下所示:
创建数据库
我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
drop 命令删除数据库
选择数据库
创建数据表
以下为创建MySQL数据表的SQL通用语法:
例子:
1 2 3 4 5 6 7
| CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` DATE, PRIMARY KEY ( `runoob_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
实例解析:
如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
删除数据表
以下为删除MySQL数据表的通用语法:
修改表名
增加字段
删除字段
显示所有表
查看表多定义
1 2 3
| [root@host mysql]
[root@host mysql]
|
增删改查
插入数据
1 2 3
| INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
|
如果数据是字符型,必须使用单引号或者双引号,如:”value”。
删除语句
1
| DELETE FROM table_name [ WHERE子句]
|
更新
1 2
| UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
|
查询数据
1 2 3 4
| SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M]
|
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以使用 LIMIT 属性来设定返回的记录数。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
MySQL数据类型
数值类型
类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
TINYINT |
1 Bytes |
(-128,127) |
(0,255) |
小整数值 |
SMALLINT |
2 Bytes |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
MEDIUMINT |
3 Bytes |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
INT或INTEGER |
4 Bytes |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 |
BIGINT |
8 Bytes |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
FLOAT |
4 Bytes |
(-3.402 823 466 E+38,-1.175 494 351 E-38),0, |
(1.175 494 351 E-38,3.402 823 466 351 E+38) 0, (1.175 494 351 E-38,3.402 823 466 E+38) |
单精度 浮点数值 |
DOUBLE |
8 Bytes |
(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308), |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
双精度 浮点数值 |
DECIMAL |
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 |
依赖于M和D的值 |
依赖于M和D的值 |
小数值 |
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个”零”值,当指定不合法的MySQL不能表示的值时使用”零”值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
类型 |
大小( bytes) |
范围 |
格式 |
用途 |
DATE |
3 |
1000-01-01/9999-12-31 |
YYYY-MM-DD |
日期值 |
TIME |
3 |
‘-838:59:59’/‘838:59:59’ |
HH:MM:SS |
时间值或持续时间 |
YEAR |
1 |
1901/2155 |
YYYY |
年份值 |
DATETIME |
8 |
‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ |
YYYY-MM-DD hh:mm:ss |
混合日期和时间值 |
TIMESTAMP |
4 |
‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-19 03:14:07’ UTC 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYY-MM-DD hh:mm:ss |
混合日期和时间值,时间戳 |
字符串类型
字符串类型指CHAR
、VARCHAR
、BINARY
、VARBINARY
、BLOB
、TEXT
、ENUM
和SET
。
类型 |
大小 |
用途 |
CHAR |
0-255 bytes |
定长字符串 |
VARCHAR |
0-65535 bytes |
变长字符串 |
TINYBLOB |
0-255 bytes |
不超过 255 个字符的二进制字符串 |
TINYTEXT |
0-255 bytes |
短文本字符串 |
BLOB |
0-65 535 bytes |
二进制形式的长文本数据 |
TEXT |
0-65 535 bytes |
长文本数据 |
MEDIUMBLOB |
0-16 777 215 bytes |
二进制形式的中等长度文本数据 |
MEDIUMTEXT |
0-16 777 215 bytes |
中等长度文本数据 |
LONGBLOB |
0-4 294 967 295 bytes |
二进制形式的极大文本数据 |
LONGTEXT |
0-4 294 967 295 bytes |
极大文本数据 |
注意:
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
返回 MySql 系列