1. SQL 的组成
数据查询
数据定义
数据操作
数据控制
2. 数据定义语言
CREATE 创建数据库或数据库对象
创建数据库
- ~~~
- CREATE {
- DATABASE | SCHEMA
- } [IF NOT EXISTS] db_name [DEFAULT] CHARSET SET utf8 [DEFAULT] COLLATE utf8_general_ci
- ~~~
创建表
- ~~~
- #创建表并设置主键和索引
- CREATE TABLE table_name (id int not null AUTO_INCREMENT,name char(50) not null default "",age int null,PRIMARY KEY(id),INDEX index_age(age));
- ~~~
查看数据库
- ~~~
- #可以根据正则匹配或者 where 从句来获取想看到的数据库
- SHOW {DATABASES | SCHEMAS} [LIKE'pattern' | WHERE expr]
- ~~~
ALTER 对数据库或数据库对象进行修改
修改数据库
ALTER DATABASE db_name DEFAULT CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
更新表
在表中添加一个字段, 并在原表的 sex 字段之后
- ALTER TABLE table_name
- ADD COLUMN city char(50) not null default "" after sex;
修改表中的列名或数据类型
- # 修改表 table_name 中的字段 c_name 为 name, 并设置字段类型
- ALTER TABLE table_name
- CHANGE COLUMN c_name name char(50) not null default "";
修改或删除指定列的默认值
- ALTER TABLE table_name
- ALTER COLUMN [drop default | set default "" ]
只修改指定列的数据类型, 不会干涉它的列名
- #first 将此列设为表的第一列
- ALTER TABLE table_name
- MODIFY COLUMN name char(25) not null first;
删除表中多余的字段
- ALTER TABLE table_name
- DROP COLUMN name;
为表重新命名
- ALTER TABLE table_name
- RENAME TO back_table_name;
- RENAME TABLE table_name TO back_name;
DROP 删除数据库或数据库对象
删除数据库
DROP{DATABASE|SCHEMA}[IF EXISTS]db_name
删除表
DROP TABLE [IF EXISTS] table_name [,table_name2]
查看表
- SHOW [FULL] COLUMNS {FROM | IN} tbl_name[{FROM | IN} db_name]
- [LIKE'pattern' | WHERE expr]
- {DESCRIBE | DESC} tbl_name [col_name | wild]
3. 数据操纵语言
SELECT 从表中或视图中检索数据 (查)
INSERT 将数据插入插入到表或视图中 (增)
UPDATE 修改表或视图中的数据 (改)
DELETE 删除表或视图中的数据 (删)
4. 数据控制语言
GRANT 授予权限
REVOKE 收回权限
5. 索引定义
索引是提高数据文件访问效率的有效方法
弊端:
索引是以文件的形式存储的, 如果有大量的索引, 索引文件可能比数据文件更快达到最大的文件尺寸;
索引在提高查询速度的同时, 会降低更新表的速度.
索引类型
普通索引 (INDEX 或 KEY)
唯一性索引 (UNIQUE)
主键 (PRIMARY KEY)
创建索引 (CREATE INDEX 不能创建主键索引)
- # 在 table_name 表上的 column 字段上创建唯一索引 index_name, 可设置长度和升序降序
- CREATE [UNIQUE] INDEX index_name ON table_name (column [(length)][ASC | DESC])
- # 为表 table_name 添加索引 index_name
- ALTER TABLE table_name ADD INDEX index_name(name);
查看索引
SHOW {INDEX | INDEXES | KEYS} {FROM | IN} table_name [{FROM | IN} db_name] [WHERE expr]
删除索引
- DROP INDEX index_name ON table_name
- ALTER TABLE table_name DROP PRIMARY KEY,DROP INDEX index_name;
6. MySQL 内置函数
函数 | 描述 | 示例 |
---|---|---|
CURDATE() | 返回当前日期 | SELECT CURDATE()---- 2018-09-19 |
ABS(X) | 返回 X 的绝对值 | select ABS(-5) --- 返回 5 |
AVG(expression) | 返回表达式的平均值 | 返回一个班年龄的平均值 ---SELECT AVG(age) from class |
COUNT(expression) | 返回记录数量 | 返回 A 表中的数据量 ---SELECT COUNT(*) from A |
MAX(expression) | 返回字段中的最大值 | 返回一个班中最大的年龄 ---SELECT MAX(age) from class |
MIN(expression) | 返回字段中的最小值 | 返回一个班中最小的年龄 ---SELECT MIN(age) from class |
SUM(expression) | 返回指定字段的总和 | 返回一个班的分数总和 ---SELECT SUM(fraction) from class |
来源: https://www.cnblogs.com/SunArmy/p/11386547.html