一、SQL通用语法
1. SQL语句可单行或多行书写,以分号结尾
2. 可使用空格/缩进(不限制个数)增强语句的可读性
3. MySQL数据库的SQL语句不区分大小写,关键字建议用大写
4. 注释
二、SQL分类
三-1、DDL语句-数据库操作
- 查询
查询所有数据库:SHOW DATABASES;
查询当前数据库:SELECT DATABASE();
- 创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE排序规则];
- 删除
DROP DATABASE[IF EXISTS]数据库名;
- 使用
USE 数据库名
关于default charset:字符集不建议设置为utf8,因为其存储长度为3个字节(一个汉字为三个字节),而有的字符可能长达四个字节,所以可以设置为utf8mb4.
三-2、DDL-表操作-查询
- 查询当前数据库所有表(前提是先要使用USE语句,即使用一个数据库)
SHOW TABLES;
- 查询表结构
DESC 表名;
- 查询指定表的建表语句
SHOW CREATE TABLE 表名;
三-3、DDL-表操作-创建
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
......
字段n 字段n类型[COMMENT 字段n注释]/*最后一个字段后面没有逗号*/
);
示例:如果要建一张如下图所示的表格,则语句如下(特别注意标点符号全英文)
create table tb_user(
-> id int comment '编号',
-> name varchar(50) comment '姓名',
-> age int comment '年龄',
-> gender varchar(1) comment '性别'
-> );
使用show tables;查询结果
使用 desc 表名;查询表结构
使用show create table tb_user;查询建表语句
三-4、DDL-表操作-数据类型
MySQL中数据类型主要有数值类型、字符串类型、日期时间类型
与之前学过的c语言数据类型相结合,MySQL的数据类型也不是那么难以理解了
- 数值类型
比如,要设置一个年龄字段,就可以这样写:age TINYINT UNSIGNED
要设置一个分数字段,可以这样写:score DOUBLE(4,1),其中4代表最长的精度100.0,1代表最长的标度1。
- 字符串类型
一般来说,TEXT类型用于存储文本形式的数据,BLOB类型都是用于存储二进制形式的数据(如视频、音频、安装包等),但后者在MySQL中并不常用。
char和varchar的区别在于:
- 前者占用的空间恒等于设置的字符串长度,后者占用的空间视输入字符串长度而定
- 前者性能好,后者性能较差
- 如果是用户名等不定长度的变量,使用varchar更好,但若是性别这种固定字符长度的变量,使用char更好
- 日期类型
一般来说,前四个类型更加常用。
三-5、DDL-表操作-修改&删除
- 修改
1. 添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
可以看到新的字段已经添加成功
2. 修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
3. 修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
4. 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
- 删除
1. 删除字段
ALTER TABLE 表名 DROP 字段名;
2. 删除表
DROP TABLE[IF EXISTS] 表名;
3. 格式化该表
TRUNCATE TABLE 表名;
总结:DDL基本语法主要涵盖数据库操作和表操作,以下是两种操作的基本语句