一、数据类型
- 1.日期和时间类型
类型 | 大小 | 范围 | 格式 | 用途 |
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:00/2037年 | YYYYMMDDHHMMSS | 混合日期和时间值时间戳 |
- 2.字符串类型
类型 | 大小 | 用途 |
char | 0-255字节 | 定长字符串 |
varchar | 0-65535字节 | 变长字符串 |
tinyblob | 0-255字节 | 不超过255个字符的二进制字符串 |
tinytext | 0-255字节 | 短文本字符串 |
blob | 0-65535字节 | 二进制形式的长文本数据 |
text | 0-65535字节 | 长文本数据 |
mediumblob | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
mediumtext | 0-16 777 215字节 | 中等长度文本数据 |
longblob | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
longtext | 0-4 294 967 296字节 | 极大文本数据 |
- 3.整型
类型 | 占用字节 | 无符号范围 | 有符号范围 | 数据库长度 |
tinyint | 1 | 0-255 | -128-127 | 4 |
smalint | 2 | 0-65535 | -32768-32767 | 6 |
mediumint | 3 | 0-16 777 215 | -8388608-8388607 | 9 |
int | 4 | 0-4294967295 | -2147483648-2147483647 | 11 |
bigint | 8 | 0-18446744073709551615 | -9223372036854755808-9223372036854775807 | 20 |
- 4.浮点型
类型 | 大小 | 有符号范围 | 无符号范围 | 用途 |
float | 4字节 | 单精度浮点数值 | ||
double | 8字节 | 双精度浮点数值 | ||
decimal | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
- 5.字符型
类型 | 字节数和范围 |
CHAR(M) | M字节,1<=m<=255 |
VARCHAR(M) | L+1字节,在此 L<=M和1<=M<=255 |
TINYBLOB,TINYTEXT | L+1字节,在此L<2^8 |
BLOB,TEXT | L+2字节,在此L<2^16 |
MEDIUMBLOB,MEDIUMTEXT | L+3字节,在此L<2^24 |
LONGBLOB,LONGTEXT | L+4字节,在此L<2^32 |
ENUM(‘value1‘,'value2',....) | 1或2个字节,取决于枚举值的数目(最大值65535) |
SET('value1','value2',....) |
1,2,3,4或8个字节,取决于集合成员的数量(最多64个成员) |
二、常用SQL语句
1、select命令
使用select命令查看mysql数据库系统信息: -- 打印当前的日期和时间 select now(); -- 打印当前的日期 select curdate(); -- 打印当前的时间 select curtime(); -- 打印当前数据库 select database(); -- 打印MySQL版本 select version(); -- 打印当前用户 select user(); --查看系统信息 show variables; #显示变量 show global variables; #显示全局变量 show global variables like '%version%'; show variables like '%storage_engine%'; #默认的存储引擎 like和”_”模糊搜索还可用户where字句。 MySQL提供两个通配符,用于与LIKE运算符一起使用,它们分别是:百分比符号 %和下划线 _。 百分比(%)表示通配符允许匹配任何字符串的零个或多个字符。 下划线(_)表示通配符允许匹配任何单个字符。
2、建表用表插入数据查询数据
mysql> mysql> create database zmedu; Query OK, 1 row affected (0.00 sec) mysql> use zmedu Database changed mysql> create table students(id int(11),stname char(20)); Query OK, 0 rows affected (0.01 sec) mysql> insert into students values(1,'liuyong'),(1,'zhangru'),(3,'laowang'),(4,'tongtong'); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0
3、查看系统运行状态
查看系统运行状态信息: mysql> show status; #查看运行状态 mysql> show global status like 'Thread%'; #显示全局状态
4、逻辑运算
and or not and 且 or 或 not 非
5、查询导入的数据
mysql> select bName,publishing,price from books where price=30 or
price=40 or price=50 or price=60;
mysql> select bName,price from books where price in (50,60,70);
6、算数运算符
= 等于 <> 不等于 != > 大于 < 小于 = 大于等于 <= 小于等于
7、排序
升序:order by “排序的字段” asc 默认 降序:oredr by “排序的字段” desc
mysql> select bName,price from books where price in (50,60,70) order by price asc;
8、范围运算
[not]between …and…
Between and 可以使用大于小于的方式来代替,并且使用大于小于意义表述更明确
实例:
查找价格不在30到60之间的书名和价格
mysql> select bName,price from books where price not between 30 and 60 order by price desc;
9、模糊匹配
实例: mysql> select bName from books where bName like '%程序%';
10、MySQL子查询
概念:在select 的where条件中又出现了select,查询中嵌套着查询
mysql> select bName,bTypeId from books where bTypeId=(select bTypeId from category where bTypeName='网络技术');
11、limit限定显示条目
Format:SELECT * FROM table LIMIT [offset,] rows
偏移量 行数
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
比如select * from table limit m,n语句
表示其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
查出category表中第2条到第6行的记录。
首先2到6行有2,3,4,5,6总共有5个数字,从2开始,偏移量为1
mysql> select * from category limit 1,5;