目录
一、MYSQL常用类型(int、bigint、double、decimal、varchar、datetime...)
一、MYSQL常用类型(int、bigint、double、decimal、varchar、datetime...)
1、整型
数据类型 大小(说明) 对应类型
BIT[ (M) ] M指定位 数,默认 为1
二进制数,M范围从1到64, 存储数值范围从0到2^M-1
常用Boolean对应BIT,此时 默认是1位,即只能存0和1
TINYINT 1字节 Byte
SMALLINT 2字节 Short
INT 4字节 Integer
BIGINT 8字节 Long
2、浮点型
FLOAT(M, D) 4字节(单精度,M指定长度,D指定 小数位数。会发生精度丢失) Float
DOUBLE(M, D) 8字节 Double
DECIMAL(M, D) M/D最大 值+2(双精度,M指定长度,D表示 小数点位数。精确数值) BigDecimal
NUMERIC(M, D) M/D最大 值+2 和DECIMAL一样 BigDecimal
注:DECIMAL相当于通过字符串的方式来表示浮点数。优势就是能够精确表示,精确计算。但是劣势就是计算时候消耗的时间更多,存储空间也更多。所以我们除非是特别需要,才考虑使用DECIMAL。
3、字符串类型
VARCHAR (SIZE) 0-65,535字节(可变长度字符串) String
TEXT 0-65,535字节(长文本数据) String
MEDIUMTEXT 0-16 777 215字节(中等长度文本数据) String
BLOB 0-65,535字节(二进制形式的长文本数据) byte[]
注意:
- varchar(20),表示这个字段最多存20个字符,注意是字符不是字节
- 表格中上面三个存的是文本数据,而BLOB存的是二进制数
4、日期类型
DATETIME 8 字 节(范围从1000到9999年,不会进行时区的 检索及转换。)
java.util.Date、 java.sql.Timestamp
TIMESTAMP 4 字 节(范围从1970到2038年,自动检索当前时 区并进行转换。)
java.util.Date、 java.sql.Timestamp
时间戳:以1970年1月1日0时0分0秒作为基准时刻,计算当前时刻和基准时刻的秒数之差。
二、MySql常用命令
终端进入Mysql命令:
开启服务:net start mysql
进入数据库:mysql -h localhost -u root -p 【-h后跟服务器名(可省略),-u后跟用户名】
输入密码进入MySQL后,不可清屏,只能退出用终端清屏命令:cls
1、查看所有数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydatabase |
| mysql |
| performance_schema |
| sakila |
| sys |
| test |
| world |
+--------------------+
8 rows in set (0.00 sec)
2、 创建一个新的数据库:
mysql> create database test;
Query OK, 1 row affected (0.01 sec)
3、删除一个数据库:
mysql> drop database test;
Query OK, 0 rows affected (0.04 sec)
4、选中一个数据库:
mysql> use test;
Database changed
5、创建表
mysql> create table student(ID int,Name varchar(20));
Query OK, 0 rows affected (0.07 sec)
6、查看表
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student |
+----------------+
1 row in set (0.01 sec)
7、查看表结构(描述)
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID | int | YES | | NULL | |
| Name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)
8、查看当前数据库字符集(可通过配置文件my.ini修改字符集设置)
mysql> show variables like 'character%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | D:\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+-------------------------------------------+
8 rows in set, 1 warning (0.02 sec)
9、删除表
mysql> drop table student;
Query OK, 0 rows affected (0.02 sec)
10、增加元素
mysql> insert into student value(1,"张三");
Query OK, 1 row affected (0.01 sec)
11.指定列插入元素(未指定列默认为null)
mysql> insert student(Name) values('lisi');
Query OK, 1 row affected (0.01 sec)
12、插入多条数据
mysql> insert student values(2,'zhangsan'),(3,'xiaohong');
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
13、查询全部
mysql> select * from student;
+------+----------+
| ID | Name |
+------+----------+
| 1 | 张三 |
| NULL | lisi |
| 2 | zhangsan |
| 3 | xiaohong |
+------+----------+
4 rows in set (0.01 sec)
14、指定列查询
mysql> select ID from student;
+------+
| ID |
+------+
| 1 |
| NULL |
| 2 |
| 3 |
+------+
4 rows in set (0.00 sec)
15、查询时起别名
mysql> select ID as num from student;
+------+
| num |
+------+
| 1 |
| NULL |
| 2 |
| 3 |
+------+
4 rows in set (0.00 sec)
16、去重查询
mysql> select distinct ID from student;
+------+
| ID |
+------+
| 1 |
| NULL |
| 2 |
| 3 |
+------+
4 rows in set (0.01 sec)
17、排序查询
mysql> select * from student order by ID;
+------+----------+
| ID | Name |
+------+----------+
| NULL | lisi |
| 1 | 张三 |
| 2 | zhangsan |
| 2 | xiaosi |
| 3 | xiaohong |
+------+----------+
5 rows in set (0.00 sec)
18、条件查询
select * from 表名 where 条件;
常用运算符:
>, >=, <, <= 大于,大于等于,小于,小于等于
= 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=> 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <> 不等于
BETWEEN a0 AND a1 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, …) 如果是 option 中的任意一个,返回 TRUE(1)
IS NULL 是 NULL
IS NOT NULL 不是 NULL
LIKE 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字 符
注意:SQL中 ‘ = ’ 号可不是赋值了,就是等于
AND 多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR 任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT 条件为 TRUE(1),结果为 FALSE(0
19、分页查询
mysql> select * from student limit n;从0也开始查询到n页
mysql> select * from student limit s,n;从s页开始查询到n页
mysql> select * from student limit n offset s;同上
20、修改数据(更新)
update 表名 set 列名 = 值,列名 = 值...[WHERE ...] [ORDER BY ...] [LIMIT ...]
mysql> update student set ID=5,Name='西奥' where Name='xiaosi';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
21、删除元素
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
mysql> delete from student where Name='lisi';
Query OK, 1 row affected (0.01 sec)
22、查看警告内容
mysql> show warnings;
Empty set (0.01 sec)
借鉴自:https://blog.csdn.net/m0_67401228/article/details/126066941