一。MySQL的常用数据类型
1.日期和时间类型
类型 | 大小(bytes) | 格式 | 用途 |
---|---|---|---|
DATE | 3 | YYYY-MM-DD | 日期值 |
TIME | 3 | HH:MM:SS | 时间值或者持续时间 |
YEAR | 1 | YYYY | 年份值 |
DATETIME | 8 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
2.数值类型
类型 | 大小(bytes) | 范围 | 用途 |
---|---|---|---|
TINYINT | 1 | (0,255) | 小整数值 |
SMALLINT | 2 | (0,65 535) | 大整数值 |
MEDIUMINT | 3 | (0,16 777 215) | 大整数值 |
INT | 4 | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度浮点数值 |
DOUBLE | 8 | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度浮点数值 |
DECIMAL | 依赖于M和D的值 | 小数值 |
3.字符串类型
类型 | 大小(bytes) | 用途 |
---|---|---|
CHAR | 0-255 | 定长字符串 |
VARCHAR | 0-65535 | 变长字符串 |
TINYBLOB | 0-255 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 | 短文本字符串 |
BLOB | 0-65 535 | 二进制形式的长文本数据 |
TEXT | 0-65 535 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 | 极大文本数据 |
二。SQL语言
SQL语言根据语句结构分为以下语句类型
DDL:数据定义语言
CREAT 创建数据库和表等对象
DROP 删除数据库和表等对象
ALTER 修改数据库和表等对象的结构
DML数据操纵语言
INSERT 向表中插入新数据 (增)
DELETE 删除表中数据 (删)
SELECT 查询表中的数据 (查)
UPDATE 更新表中数据 (改)
WHERE 数据过滤
DCL数据控制语言
COMMIT 将SQL语句的执行结果写入数据库表中
ROLLBACK 撤销SQL语句的执行结果
DDL:
mysql>SHOW DATABASES; #显示所有数据库
mysql>CREATE DATABASE 库名; #创建一个数据库并命名
mysql>USE 库名; #使用这个数据库
mysql>DROP 库名; #删除这个数据库
DML:
mysql>SELECT 列名 FROM 表名; #从这张表中查询这一列(可以多列查询)
mysql>SELECT * FROM 表名; #查询所有列(相当于查询整张表)
mysql>SELECT 列名 AS 别名 FROM 表名 AS 别名; #AS后面跟新取的别名
mysql>SELECT 列名,CONCAT(列名,列名) AS 别名 FROM 表名; #CONTACT相当于把两个列的内容合在一起
mysql>SELECT * FROM 表名 ORDER BY 列名 ASC; #按照该列排序(ASC升序,DESC降序)
mysql>SELECT * FROM 表名 WHERE 过滤子句; #根据指定条件过滤数据
##WHERE后面的过滤子句可以使用运算符号(+-*/<>!=)
##可以使用逻辑运算符(AND/OR/NOT/组合操作),相邻条件句在用逻辑运算符连接时加括号(),NOT不能单独使用
##可以使用固定语句(BETWEEN...AND.../... IS NULL/... IS NOT NULL)
##可以使用IN (值1,值2,...)来表示明确但不连续的取值
mysql>SELECT * FROM 表名 WHERE 列名 LIKE 过滤条件; #like模糊查询,可使用通配符(下划线_:替代单个任何字符,百分号%:替代任意数目字符)
mysql>COUNT(*)/(1) #确定表中行的数目,可以加条件。(COUNT(COL)只作用于非空行;COUNT(DISTINCT col)对行去重计数)
增删改部分:
INSERT INTO 表名(列名) VALUE(插入值);
#eg:INSERT INTO person_sc(id,name,score) VALUE("01","张三","658");
SET 字段 = 值;
#不过多解释
UPDATE 表名;
#eg:UODATE person_sc;
DELETE FROM 表名 WHERE 过滤条件;
#只删除特定数据
TRUNCATE TABLE 表名;
#清空表(表中数据清空,但是表还存在)
提醒:在对表进行更新操作(UPDATE/INSERT INTO/DELETE)之前,请务必先用SELETE进行测试,以防过滤错误。