导航
SQL语法
创建数据库
数据查询御酒
数据操纵语言
C API
一、SQL语言
数据定义(DDL) :用户定义、删除和修改数据模式
数据查询(DQL) :用于查询数据
数据操纵(DML) :用于增、删、改数据
数据控制(DCL) :用于控制数据访问权限
SQL的语法很像自然语言。每个语句都是一一个祈使句,以动词开头,表示所要做的动作。
SQL由命令组成,每个命令以分号(;)结束,例如
1.1 数字类型
有三种:字符串常量、数据常量和二进制常量
1.1.1 整型
1.1.2 浮点型
整型、浮点型、定点型
浮点型:float(M, D); double(M, D)
D表示浮点型数据小数点之后的精度,假如超过D位则四舍五入,即1.233四舍五入为1.23, 1.237四舍五入为1.24
M表示浮点型数据总共的位数,D-2则表示总共支持五位,即小数点前只支持三位数
create table test_float{ num float(5, 2) }; -- engine = innodb charset = utf8; insert into test_float values(1.233) insert into test_float values(1.237) insert into test_float values(10.233) insert into test_float values(100.233) insert into test_float values(1000.233)
1.1.3 定点型
定点型(金融行业)decimal
decmal在不指定M. D时默认为decmal(10,0)
create table test_decimal{ float_num float(10, 2), double_num double(20, 2), decimal_num decimal(20, 2) }; insert into test_decimal values(123546565.23112, 16000000.33, 66666666.12) insert into test_decimal values(1235465655.23112, 1600000000.33, 6665566666.12)
1.1.4 浮点型和定点型
浮点型VSdecimal
float、double类型存在精度丢失问题,即写入数据库的数据未必是插入数据库的数据
decimal无论写入数据中的数据是多少,都不会存在精度丢失问题,decimal类型常见于银行系统、互联网金融系统等对小数点后的数字比较敏感的系统中
1.2 日期类型
create table test_time{ date_value date, time_value time, year_value datetime, datetime_value datetime, timestamp_value timestamp } insert into test_time values(now(), now(), now(), now(), now());
1.3 字符串类型
CHAR和VARCHAR
char是固定长度字符串,其长度范围为0~255且与编码方式无关,无论字符实际长度是多少,都会按照指定长度存储,不够的用空格补足
varchar为可变长度字符串(用的最多),在utf8编码的数据库中其长度范围为0~21844,如:1024
char实际占用的字节数即存储的字符所古用的字节数,varchar实际占用的字 节数为存储的字符+1或+2或+3
MySQL处理char类型数据时会将结尾的所有空格处理掉而varchar类型数据则不会
SQL 7
BINARY和VARBINARY(用不到)
BLOB和TEXT
二、SQLite 存储类
SQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。
可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。
2.1 Boolean 数据类型
SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)
2.2 Date 与 Time 数据类型