SQL通用语法
SQL语句可以单行或多行书写,以分号结尾
SQL语句可以使用空格或缩进来增强语句的可读性
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
注释:单行注释 --注释内容 或 #注释内容(MySQL特有)
多行注释 /* 注释内容 */
SQL分类
DDL–数据库操作
查询
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
创建
CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集 ] [ COLLATE 排序规则 ];
删除
DROP DATABASE [ IF EXISTS ] 数据库名;
使用
USE 数据库名;
DDL–表操作
查询
查询当前数据库所有表
SHOW TABLES;
查询表结构
DESC 表名;
查询指定表的建表语句
SHOW CREATE TABLE 表名;
创建
CREATE TABLE 表名 ( 字段1 字段1类型 [ COMMENT 字段1注释 ], 字段2 字段2类型 [ COMMENT 字段2注释 ], 字段3 字段3类型 [ COMMENT 字段3注释 ], ... 字段n 字段n类型 [ COMMENT 字段n注释 ] )[ COMMENT 表注释 ];
最后一个字段不用逗号
数据类型
MySQL中的数据类型主要分为三类:
数值类型、字符串类型、日期时间类型
数值类型:
double(共有几位数,小数的位数)
decimal(精度,标度)
精度 数的位数;标度 小数的位数
字符串类型:
char 定长,性能高
varchar 不定长,性能较差
char设定好字符串的长度,不足会用空格补充;varchar会根据字符串的长度分配空间,由于要计算需要多少空间,所以性能较差
日期时间类型:
案例:
CREATE TABLE emp ( id INT COMMENT'编号', num VARCHAR(10) COMMENT'员工编号', `name` VARCHAR(10) COMMENT'员工姓名', gender CHAR(1) COMMENT'性别', age TINYINT UNSIGNED COMMENT'年龄', `no` CHAR(18) COMMENT'身份证号', ·time· DATE COMMENT'入职时间' ) COMMENT'员工信息表';
修改
添加字段:
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
为emp表添加字段‘nickname’ varchar(20)
ALTER TABLE emp ADD nickname VARCHAR(20);
修改数据类型:
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
nickname 数据类型改为 VARCHAR(10);
ALTER TABLE emp MODIFY nickname VARCHAR(10);
修改字段名和字段类型:
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
nickname 数据类型改为 VARCHAR(20);
ALTER TABLE emp CHANGE nickname username VARCHAR(20);
删除字段:
ALTER TABLE 表名 DROP 字段名;
删除新的字段
ALTER TABLE emp DROP username;
修改表名:
ALTER TABLE 表名 RENAME TO 新表名;
emp表名改为employee
ALTER TABLE emp RENAME TO employee;
删除表:
DROP TABLE [IF EXISTS] 表名;
删除表并重新创建该表:
truncate table 表名
注意:在删除表时表中的数据也会全被删除