MySQL数据库命令窗口建表笔记
一.先建库:smart
CREATE DATABASE [库名];
//建一个名为[库名]的库
show databases;
//查看现在都有哪些库(看看建库成功没)
DROP DATABASE [表名];
//删除[库名]这个库
USE [库名];
//使用[库名]这个库,Database changed
是在使用MySQL或其他数据库管理系统时的一条常见响应信息。
二.再建表
1.建表的语法
CREATE TABLE [表名](
[`列名`] [列的具体定义] [`注释`]//数据类型分为三大类:数值/字符串/时间;
)ENGINE =[存储引擎,默认InnoDB,MyISAM便于数据迁移] DEFAULT CHARSET=[字符集,常用UTF8];//[表的属性信息]
SHOW ENGINES\G
查看有哪些存储引擎的命令
例如:
我要在 MySQL 数据库中建立一个名为 smarthome_user的表,表的内容是:
用户ID (user_id): 主键,自增的整数。
用户名 (username): 字符串。
密码 (password): 字符串,建议使用哈希存储。
邮箱 (email): 字符串。
手机号 (phone_number): 字符串。
注册日期 (registration_date):年月日时分秒的日期时间。
CREATE TABLE `smarthome_user` (
`user_id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL UNIQUE,
`phone_number` VARCHAR(20) NOT NULL,
`registration_date` DATETIME NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
show tables;
命令查看有哪些表
DROP TABLE [表名];
命令删除表
2.数据的类型
数值(int)
整数类型:
TINYINT
1字节 -128 127 255
SMALLUNT
2字节 -32768 32767 65535
MEDIUMINT
3字节
INTEGER
4字节
BIGINT
8字节
INT
精确的数据类型:通常用来存储价格,精确范围1~65位,小数点的位数最大的长度是三十位。小数点不计入长度中。
DECIMAL
NUMERIC
FLOAT
DOUBLE
字符串(char)
CHAR
长度固定255
VARCHAR
BINARY
保存二进制的数据
VARBINARY
保存二进制的数据
BLOB
TEXT
MEDIUMTEXT
LONGBLOB
LONGTEXT
ENUM
SET
时间类型(DATE)
DATE
年月日
TIME
时分秒
DATETIME
年月日时分秒
TIMESTAMP
时间戳
YEAR
年份
3.查询表的结构
要查询表的数据结构,即表的列名、数据类型、是否允许为空、键信息等,你可以使用 SQL 的 DESCRIBE
命令或者 SHOW COLUMNS
命令。这些命令会返回表的列信息,包括每列的名称、数据类型、是否允许 NULL 值、键信息(如主键、唯一键等)、默认值以及其他可能的列属性。
下面是使用这些命令的示例:
使用 DESCRIBE
命令
sql复制代码
DESCRIBE 表名;
或者简写为:
sql复制代码
DESC 表名;
例如,要查询名为 smarthome_USER
的表的数据结构,你可以执行:
sql复制代码
DESCRIBE smarthome_USER;
使用 SHOW COLUMNS
命令
sql复制代码
SHOW COLUMNS FROM 表名;
例如:
sql复制代码
SHOW COLUMNS FROM smarthome_USER;
这两个命令通常会返回类似下面的结果集:
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| user_id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(255) | NO | | NULL | |
| password | varchar(255) | NO | | NULL | |
| phone_number| varchar(20) | YES | | NULL | |
| email | varchar(255) | YES | UNI | NULL | |
| registration_date | date | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
在这个结果集中:
Field
列显示了列名。Type
列显示了该列的数据类型。Null
列显示该列是否允许 NULL 值。‘NO’ 表示不允许,‘YES’ 表示允许。Key
列显示该列是否是某种键(如 PRIMARY、UNIQUE、INDEX 等)。Default
列显示该列的默认值。Extra
列显示该列的额外信息,如auto_increment
表示该列是自增的。
这些信息对于了解表的结构以及如何进行数据操作非常有用。
我本次学习的目的是为我的毕业设计建表
数据库名:smarthome
内涵表名:
自习室用户表(smarthome_user)结构:
自习室座位表(smarthome_seat)结构:
自习室信息表( smarthome_information)结构:
自习室使用日志表(smarthome_history)结构: