SQL 基础语句指南
基本操作概览
CREATE DATABASE IF NOT EXISTS `school`; -- 创建数据库
DROP DATABASE IF EXISTS `school`; -- 删除数据库
USE `school`; -- 使用数据库
SHOW DATABASES; -- 查看所有数据库
创建表的示例:
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pws` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
查看数据库和表的信息:
SHOW CREATE DATABASE `school`;
SHOW CREATE TABLE `student`;
DESC `student`;
例子
查看数据库
SHOW DATABASES;
创建数据库
CREATE DATABASE `school` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
使用数据库
USE `school`;
查看表
SHOW TABLES;
数据类型
数值类型
- TINYINT
- SMALLINT
- MEDIUMINT
- INT
- BIGINT
- FLOAT
- DOUBLE
- DECIMAL(字符串形式的浮点数,金融计算)
字符串类型
- CHAR
- VARCHAR(可变字符串)
- TINYBLOB
- TINYTEXT(微型文本)
- BLOB
- TEXT(文本串)
- MEDIUMBLOB
- MEDIUMTEXT
- LONGBLOB
- LONGTEXT
日期和时间类型
- DATE
- TIME
- YEAR
- DATETIME
- TIMESTAMP
NULL
不要在计算中使用
字段属性
UNSIGNED
无符号的整数,不能为负数
ZEROFILL
不足的位数使用 0 填充
AUTO_INCREMENT
NULL 和 NOT NULL
DEFAULT
COMMENT
数据库操作
CREATE DATABASE IF NOT EXISTS `school`; -- 创建数据库
DROP DATABASE IF EXISTS `school`; -- 删除数据库
USE `school`; -- 使用数据库
SHOW DATABASES; -- 查看所有数据库
表操作
CREATE TABLE IF NOT EXISTS `student` (
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pws` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
存储引擎目前默认为 INNODB
| | INNODB | MYISAM | |---|---|---| | 事务支持 | 支持 | 不支持 | | 数据行锁定 | 支持 | 不支持 | | 外键约束 | 支持 | 不支持 | | 全文索引 | 不支持 | 支持 | | 表空间大小 | 约为 MYISAM 的两倍 | 较小 |