MySQL数据类型及库和表的操作大全
一、MySQL数据类型
1. 数值类型
TINYINT:非常小的整数,占1字节,有符号范围是-128到127,无符号范围是0到255。
SMALLINT:小的整数,占2字节,有符号范围是-32768到32767,无符号范围是0到65535。
MEDIUMINT:中等大小的整数,占3字节,有符号范围是-8388608到8388607,无符号范围是0到16777215。
INT:普通大小的整数,占4字节,有符号范围是-2147483648到2147483647,无符号范围是0到4294967295。
BIGINT:大整数,占8字节,有符号范围是-9223372036854775808到9223372036854775807,无符号范围是0到18446744073709551615。
FLOAT:单精度浮点数,占4字节。
DOUBLE:双精度浮点数,占8字节。
DECIMAL(M,D):精确小数,M是总位数,D是小数点后的位数。
2. 日期和时间类型
DATE:日期,格式为'YYYY-MM-DD',范围从'1000-01-01'到'9999-12-31'。
TIME:时间,格式为'HH:MM:SS',范围从'-838:59:59'到'838:59:59'。
DATETIME:日期和时间,格式为'YYYY-MM-DD HH:MM:SS',范围从'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
TIMESTAMP:时间戳,格式为'YYYY-MM-DD HH:MM:SS',范围从'1970-01-01 00:00:01' UTC到'2038-01-19 03:14:07' UTC。
YEAR:年份,格式为'YYYY',范围从1901到2155。
3. 字符串类型
CHAR(M):固定长度字符串,M表示长度,范围为0到255。
VARCHAR(M):可变长度字符串,M表示最大长度,范围为0到65535。
TEXT:长文本数据,最大长度为65535个字符。
LONGTEXT:极大文本数据,最大长度为4294967295个字符。
BLOB:二进制大对象,用于存储二进制数据,最大长度为65535字节。
LONGBLOB:极大二进制对象,最大长度为4294967295字节。
二、数据库操作
1. 创建数据库
语法:CREATE DATABASE [IF NOT EXISTS] database_name [CHARACTER SET charset_name] [COLLATE collation_name];
示例:创建一个名为test_db的数据库,字符集为utf8mb4,排序规则为utf8mb4_unicode_ci。
CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 查看数据库
语法:SHOW DATABASES;
示例:查看当前MySQL服务器中的所有数据库。
SHOW DATABASES;
3. 选择数据库
语法:USE database_name;
示例:选择使用test_db数据库。
USE test_db;
4. 修改数据库
语法:ALTER DATABASE database_name [CHARACTER SET charset_name] [COLLATE collation_name];
示例:修改test_db数据库的字符集为gbk。
ALTER DATABASE test_db CHARACTER SET gbk;
5. 删除数据库
语法:DROP DATABASE [IF EXISTS] database_name;
示例:删除test_db数据库。
DROP DATABASE IF EXISTS test_db;
三、表操作
1. 创建表
语法:CREATE TABLE [IF NOT EXISTS] table_name (column_definition1, column_definition2, ...);
示例:在test_db数据库中创建一个名为students的表,包含id、name、age、birthday字段。
USE test_db; CREATE TABLE IF NOT EXISTS students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age TINYINT UNSIGNED, birthday DATE );
2. 查看表结构
语法:DESCRIBE table_name; 或 SHOW COLUMNS FROM table_name;
示例:查看students表的结构。
DESCRIBE students;
3. 修改表
可以添加列、修改列、删除列、重命名表等操作。
示例1:给students表添加一个gender字段。
ALTER TABLE students
ADD COLUMN gender ENUM('男', '女') DEFAULT '男';示例2:修改students表的age字段类型为SMALLINT。
ALTER TABLE students MODIFY COLUMN age SMALLINT UNSIGNED;
示例3:删除students表的gender字段。
ALTER TABLE students DROP COLUMN gender;
示例4:将students表重命名为pupils。
RENAME TABLE students TO pupils;
4. 删除表
语法:DROP TABLE [IF EXISTS] table_name;
示例:删除pupils表。
DROP TABLE IF EXISTS pupils;
四、总结
本文详细介绍了MySQL的数据类型以及数据库和表的基本操作。掌握这些知识是使用MySQL进行数据存储和管理的基础。在实际应用中,需要根据具体的业务需求选择合适的数据类型和设计合理的表结构,以确保数据的完整性和高效性。