SQL数据库

2018-03-01  本文已影响0人  慧玲说

SQL-what
1.结构化查询语言
2.ANSI标准计算机语言
3.访问数据库
区别:
关系型数据库系统,oracle,mysql,sql server等都是增加自定义语句

作用:
CRUD
create,drop,update

创建数据库;
库中创建新表;
库中创建存储过程;
库中创建视图;
设置表、存储过程和视图的权限;

SQL数据库体系结构

基本表

关系模式(模式),Excel表格行列,多个实体+实体属性形成的表

存储文件

内模式(存储模式),数据存放的物理文件

视图

子模式(外模式),视图,
用户角度:查看数据库中的数据:表
数据库系统内部:虚拟表,使用查询语句构成的表

一条记录,元组,实体

属性,字段,实体人-属性(名字等)

-- 可以在视图或表的基础上建立新视图,导出新的视图。

SQL语言从功能上可以分为数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)四部分,具体介绍如下:

-- 修改结构,DDL,重新定义
-- 创建呢,DML,uid ,update,insert,delete

create 数据库的语法

1.window 少于24个字符,特殊字符不可创建 /,<>,符合文件夹名称
2.mysql 不区分大小写,
3.character set 字符集,可省略,使用默认
4.collate指的是校验规则,可省略,使用默认
5.show databases 展示当前all的数据库
6.show create database <数据库名 db_name> 查看该数据库的信息
show create database studentinfo ;查看数据库studentinfo的信息
例如:

修改数据库ALERT

修改名称

修改字符集和校验规则

删除数据库

DROP database if exists db_name;

create database if no exists studentinfo character set big5;
show create database studentinfo;
alert database studentinfo character gbk;
drop database studentinfo;

数据库的数据类型

各个字段的类型:

整数类型

其中,占用字节数最小的是TINYINT0(0-255无符号,-128~127有符号),最大的是BIGINT

M > D ,字节数M+2,
M <=D,字节数D+2,
总结大的数D/M+2

(1) 优先选择最小的可用类型,如果该字段的值不会超过127,则使用TINYINT比INT效果好。

(2) 在无小数点时,可以选择整数类型,比如年龄。

(3) 浮点类型用于包含小数部分的数,比如学生成绩。

(4) 在需要表示 金额 等货币类型时,优先选择DECIMAL数据类型。另外:DEC和DECIMAL这两个定点数类型是同名词。

时间和日期数据类型被广泛使用,MySQL主要支持DATE、TIME, YEAR、DATATIME和TIMESTAMP5种类型。

DATE表示日期,默认格式为’YYYY-MM-DD’;
TIME表示时间,默认格式为’HH: ii: ss’;
YEAR表示年份;
DATETIME是日期和时间的混合类型,默认格式为’YYYY-MM-DD HH: ii: ss’。

  1. DATE 类型

DATE 类型用于表示日期值,不包含时间部分。可以使用以下4种格式指定 DATE 类型的值:

(1)以‘YYYY-MM-DD’或者‘YYYYMMDD’字符串格式表示。

     例如,输入‘2014-01-21’或‘20140121’,插入数据库的日期都为 2014-01-21。 

(2)以‘YY-MM-DD’或者‘YYMMDD’字符串格式表示。

      YY 表示的是年,范围为‘00’~‘99’,其中‘00’~‘69’范围的值会被转换为 2000~2069 范围的值,‘70’~‘99’范围的值会被转换为              1970~1999范围的值。例如,输入‘14-01-21’或‘140121’,插入数据库的日期都为 2014-01-21。

(3)以 YY-MM-DD 或者 YYMMDD 数字格式表示。

      例如,输入 14-01-21 或 140121,插入数据库的日期都为 2014-01-21。

(4)使用 CURRENT_DATE 或者 NOW()表示当前系统日期。

  1. TIME 类型

TIME 类型用于表示时间值,它的显示形式一般为 HH:MM:SS,其中,HH 表示小时,MM 表示分,SS 表示秒。可以使用以下3种格式指定 TIME 类型的值。

(1)以‘D HH:MM:SS’字符串格式表示。其中,D 表示日,可以取 0~34 之间的值,插入数据时,小时的值等于(D*24+HH)。 例如,输入‘2 11:30:50’,插入数据库的日期为 59:30:50。

(2)以‘HHMMSS’字符串格式或者 HHMMSS 数字格式表示。例如,输入‘345454’或 345454,插入数据库的日期为 34:54:54。

(3)使用 CURRENT_TIME 或 NOW()输入当前系统时间。

  1. YEAR 类型

YEAR 类型用于表示年份,可以使用以下3种格式指定 YEAR 类型的值。

(1)使用 4 位字符串或数字表示,范围为‘1901’~‘2155’或 1901~2155。

      例如,输入‘2014’或 2014,插入到数据库的值均为 2014。 

(2)使用 2 位字符串表示,范围为‘00’‘99’,其中,‘00’‘69’范围的值会被转换为 2000~2069

      范围的 YEAR 值,‘70’~‘99’范围的值会被转换为 1970~1999 范围的 YEAR 值。例如,输入‘14’,插入到数据库的值为 2014。 

(3)使用 2 位数字表示,范围为 199,其中,169 范围的值会被转换为 2001~2069 范围的 YEAR 值, 70~99 范围的值会被转换为 1970~1999 范围的 YEAR 值。例如,输入 14,插入到数据库的值为2014。

注意:使用 YEAR 类型时,一定要区分‘0’和 0。因为字符串格式的‘0’表示的是 YEAR 值是 2000,而数字格式的 0 表示的 YEAR 值是 0000。

  1. DATETIME 类型

DATETIME 类型用于表示日期和时间,它的显示形式为‘YYYY-MM-DD HH:MM:SS’,其中,YYYY表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分,SS 表示秒。可以使用以下4种格式指定 DATETIME 类型的值:。

(1)以‘YYYY-MM-DD HH:MM:SS’或者‘YYYYMMDDHHMMSS’字符串格式表示的日期和时间,取值范围为‘1000-01-01 00:00:00’~‘9999-12-3 23:59:59’。

     例如,输入‘2014-01-22 09:01:23’或20140122090123,插入数据库的DATETIME值都为2014-01-22 09:01:23。

(2)以'YY-MM-DD HH:MM:SS’或者‘YYMMDDHHMMS S’字符串格式表示的日期和时间,其中YY表示年,取值范围 为‘00’一‘99'。与DATE类型中的YY相同,‘00’一‘69’范围的值会被转换为2000~2069范围的值,’70’一‘99’范围的值会被转换为 1970~1999范围的值。

(3)以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示的日期和时间。例如,插入20140122090123或者 140122090123,插入数据库的DATETIME值都为2014-01-22 09:01:23。

(4)使用NOW来输入当前系统的日期和时间。

5、TIMESTAMP 类型

TIMESTAMP 类型用于表示日期和时间,它的显示形式与 DATETIME 相同,但取值范围比 DATETIME小。下面介绍3种 TIMESTAMP 类型与 DATATIME 类型不同的形式,具体如下:

(1)使用 CURRENT_TIMESTAMP 来输入系统当前日期和时间。

(2)输入 NULL 时,系统会输入系统当前日期和时间。

(3)无任何输入时,系统会输入系统当前日期和时间。

字符串

字符串类型的数据分为普通的文本字符串类型(CHAR和VARCHAR)和可变类型(TEXT和BLOB)。

BLOB 二进制长文本

  1. CHAR和VARCHAR

CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式,CHAR把这个大小视为值的准确大小(用空格填补比较短的值),而VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。所以,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短 )。

varchar (len=实际大小+长度一字节)

  1. TEXT和BLOB

TEXT和BLOB类型,大小可以改变。其中TEXT类型适合存储长文本,而BLOB类型适合存储二进制数据,支持任何数据,如文本、声音和图像等。BLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。

3.字符串类型的选取原则

在创建表时,使用字符串类型时应遵循以下原则:

(1) 从速度方面考虑,要选择固定的列,可以使用CHAR类型。

(2) 要节省空间,使用动态的列,可以使用VARCHAR类型。

(3) 如果要搜索的内容不区分大小写,可以使用TEXT类型。

(4) 如果要搜索的内容区分大小写,可以使用BLOB类型。

字符串_1.png
上一篇下一篇

猜你喜欢

热点阅读