SQL在数据分析中有重要的地位,而MySQL 是一个高性能且相对简单的数据库系统,没有用户数的限制,多个客户机可同时使用同一个数据库,可利用几个输入查询并查看结果的界面来交互式地访问 MySQL。在此总结SQL常用命令,也是自己回顾的过程。
-
语法规范
大写:关键字 函数名称
小写:数据库名称 表名称 字段名称
sql语句箭头为分行 用;结尾 -
mysql支持的数据类型
整型:TINYINT—SMALLINT—MEDIUMINT—INT—BIGINT
浮点型:FLOAT—DOUBLE—DECIMAL(定点数,以字符串形式,精度高)
字符串型:CHAR(定长)–VARCHAR(不定长)–TEXT(只能存储文本字符,无默认值)–ENUM(枚举型,保存序号而非值)–SET(集合)
效率:CHAR>VARCHAR>TEXT
日期时间类型:TIME—DATE—DATETIME—TIMESTAMP—YEAR(最常用,其他可以用INT保存时间戳,方便计算)
PS.对数据范围不清楚可使用help在线查询,很方便 -
数据库相关操作
1.创建数据库
CREATE DATABASE db_name(数据库名称);
2.显示当前已有数据库
SHOW DATABASES;
3.查看指定数据库定义
SHOW CREATE DATABASE db_name;
4.创建数据库并设定指定编码方式
CREATE DATABASE IF NOT EXISTS db_name SET ‘GBK’
5.修改编码方式
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8
6.打开指定数据库
USE db_name;
7.当前打开数据库名称
SELECT DATABASE();
8.删除指定数据库
DROP DATABASE 名称;
4. 数据表相关操作
数据表是存储数据的数据结构,是包含了特定实体类型的数据。
-
创建表(完整语句见后)
CREATE TABLE 表名称(num1,num2…); -
查看表结构
DESC / DESCRIBE / SHOW COLUMNS +表名称;
括号里的数为显示位数,只有当加上ZEROFILL后才有意义,仅为美观 -
向表中插入记录
INSERT 表名称 VALUES(); -
查询表中所有记录
SELECT * FROM 表名称; -
修改表名称ALTER
ALTER TABLE 原表名 RENAME TO/AS/省略 新表名;或者
RENAME TABLE 原表名 TO 新表名; -
添加/删除字段 ADD/DROP
添加:ALTER TABLE 表名 ADD 字段名称 字段类型 [完整性约束条件] [位置(FIRST/AFTER 字段名);
删除:ALTER TABLE 表名 DROP 字段名称; -
修改字段属性/位置MODIFY
ALTER TABLE 表名 MODIFY 字段名及属性;
ALTER TABLE 表名 MODIFY 字段及新位置; -
修改字段名称CHANGE
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 属性;
Ps.change也可以修改字段属性/位置,只要名字不变即可 -
添加/删除默认值
ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 默认值;
ALTER TABLE 表名 ALTER 字段名 DROP DEFAULT ; -
添加/删除主键ADD
ALTER TABLE 表名 ADD PRIMARY KEY(字段1,2…);
ALTER TABLE 表名 DROP PRIMARY KEY;
Ps.对自增长的主键不可直接删除,要先MODIFY自增长,再删除主键 -
添加/删除唯一索引
ALTER TABLE 表名 ADD UNIQUE (字段名);
默认的索引名就是字段名,若要修改索引名称:
ALTER TABLE 表名 ADD CONSTRAINT symbol UNIQUE KEY 字段名(索引名);
删除:ALTER TABLE 表名 DROP KEY/INDEX 索引值 -
修改存储引擎
ALTER TABLE 表名 ENGINE=新引擎; -
修改自增长值
ALTER TABLE 表名 AUTO_INCREMENT=值; -
删除表
DROP TABLE 表名;
创建表完整语句:
CREATE TABLE [IF NOT EXISTS] 表名称(字段名称 字段类型 [UNSIGNED|ZEROFILL] [NOT NULL] [DEFAULT 默认值] [[PRIMARY] KEY|UNIQUE [KEY]] [AUTO_INCREMENT] ); ENGINE=INNODB CHARSET=UTF8 AUTO_INCREMENT=100;
其中,UNSIGNED为无符号,ZEROFILL为零填充(常用于美观),后面括号内均为完整性约束条件,包括:
1.主键 PRIMARY KEY,不能重复,自动非空
2.自增长AUTO_INCREMENT,一定是主键,必须是整数型(字符串不可以)
3. 非空约束NOT NULL,要求某项为必填项
4. 默认值DEFAULT,一般和非空配合使用,非空后给定默认值
5. 唯一性约束UNIQUE KEY,不可以重复,可以为NULL
ENGINE为引擎,常用引擎及特点如下:
InnoDB:提供事物 回滚 修复能力 多版本并发控制的事物安全 ;读写效率低 占用空间大
MyISAM: 支持静态型 动态型 压缩型 插入读取的处理速度快,空间小;不支持事物
MEMORY:数据存放在内存中 提高表的处理效率;一般一次性使用
后续笔记会继续更新~