一、数据库操作
创建数据库
语法:
CREATE DATABASE database_name;
删除数据库
删除数据库务必谨慎!因为执行删除命令后,所有数据将消失。
语法:
DROP DATABASE database_name;
选择数据库
语法:
USE database_name;
二、数据表操作
数据类型
数值类型
类型
大小
用途
TINYINT
1 byte
小整数值
SMALLINT
2 bytes
大整数值
MEDIUMINT
3 bytes
大整数值
INT或INTGEGER
4 bytes
大整数值
BIGINT
8 bytes
极大整数值
FLOAT
4 bytes
单精度浮点数值
DOUBLE
8 bytes
双精度浮点数值
DECIMA
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2
小数值
日期和时间类型
类型
大小
范围
格式
用途
DATE
3 bytes
1000-01-01/9999-12-31
YYYY-MM-DD
日期值
TIME
3 bytes
‘-838:59:59‘/‘838:59:59‘
HH-MM-SS
时间值
YEAR
1 byte
1901/2155
YYYY
年份值
DATETIME
8 bytes
1000-01-01 00:00:00/9999-12-31 23:59:59
YYYY-MM-DD HH:MM:SS
混合日期
TIMESTAMP
4 bytes
1970-01-01 00:00:00 2038
YYYY-MM-DD HH:MM:SS
混合日期
字符串类型
类型
大小
用途
CHAR
0-255 bytes
定长字符串
VARCHAR
0-65 535 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 类型,可存储的最大长度不同,可根据实际情况选择。
创建数据表
语法:
CREATE TABLE table_name ( column_name column_type);
示例:
CREATE TABLE IF NOT EXISTS t_student( stu_id INT NOT NULL AUTO_INCREMENT, stu_name VARCHAR(100) NOT NULL, stu_email VARCHAR(200), PRIMARY KEY (stu_id));
结果:
删除数据表
语法:
DROP TABLE table_name;
插入数据
语法:
INSERT INTO table_name( field1, field2, ... fieldN) VALUES( value1, value2, ... valueN);#插入多条数据INSERT INTO table_name( field1, field2, ... fieldN) VALUES( valueA1, valueA2, ... valueAN) VALUES( valueB1, valueB2, ... valueBN);
示例:
INSERT INTO t_student( stu_id, stu_name, stu_email) VALUE ( 10001, 'Tom', '10001@qq.com');
结果:
查询数据
语法:
SELECT field1, field2 ...FROM table_name[WHERE Clause][LIMIT N][OFFSET N]
- 查询语句中可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 可以使用 WHERE 语句来包含任何条件。
- 可以使用 LIMIT 属性来设定返回的记录数。
- 可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0
WHERE 子句
语法:
SELECT field1, field2, ... field2 FROM table_name1, table_name2[WHERE condition1 [AND [OR]]] condition2 ...
- 查询语句中可以使用一个或者多个表,表之间使用逗号**,** 分割,并使用WHERE语句来设定查询条件。
- 可以在 WHERE 子句中指定任何条件。
- 可以使用 AND 或者 OR 指定一个或多个条件。
- WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
- WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
UPDATE 更新
语法:
UPDATE table_name SET field1 = new_value1, field2 = new_value2[WHERE Clause]
- 可以同时更新一个或多个字段。
- 可以在 WHERE 子句中指定任何条件。
- 可以在一个单独表中同时更新数据。
- UPDATE 语句必须加 WHERE 条件,否则将更新所有记录
DELETE 语句
语法: