目录
一般格式
select <目标列表达式>
from <表名或视图名>
where <条件>
group by <列名> [having<>]
order by <列名> [asc | desc]
创建数据库
CREATE database 数据库名;
创建表
CREATE TABLE 表名(列名1 数据类型,列名2类型.....);
CREATE TABLE emp(id int,name VARCHAR(15));
创建伪表
SELECT 1+1,3*2
FROM DUAL;
查询所有表
show tables;
删除表
drop table <表名> [restrict | cascade];
#restrict:有条件限制的删除,不能被其他表的约束引用
#cascade:强制删除,没有限制
表的基本操作
1.插入字段
INSERT INTO table_name(
id,
name
)VALUES
(1005,'miss wang'),
... ;
#values 中的内容与列名相对应
2.更新字段
update 表名
set 字段名= , ...
where 过滤条件
3.删除字段
delete from 表名
where 条件;
修改基本表(alter独秀)
1.添加索引
#添加新列于指定位置
Alter table tableName ADD 列名 数据类型 after 列名 [完整约束]
#唯一索引
Alter table tableName ADD UNIQUE INDEX <列名>
#全文索引
Alter table tableName ADD FULLTEXT INDEX <列名>
#普通索引
Alter table tableName ADD INDEX <列名>
2.删除索引
alter table 表名 drop constraint 完整约束名 [restrict | cascade]
#该句用于删除指定的完整约束条件
drop index <含索引的列名>
3.添加列
alter table <tableName> add <column> <数据类型> [索引]
[first|after <column>] #指定位置
以下是在
MySQL
中常用的约束。
NOT NULL
约束:确保某列不能有NULL
值。
DEFAULT
约束:当某列没有指定值时,为该列提供默认值。
UNIQUE
约束:确保某列中的所有值是不同的。
PRIMARY Key
约束:唯一标识数据库表中的各行/记录。
CHECK
约束:CHECK
约束确保某列中的所有值满足一定条件。
4.修改列位置
#指定位置
alter table tableName modify 字段(列) first|after 字段2;
#第一个字段
alter table tableName modify 字段 float first;
5.删除列
alter table 表名 drop 列名 [cascade | restrict]
#cascade:自动删除引用了该列的其他对象如视图;restrict:如果该列被引用,则拒绝删除
6.重命名
# 重命名表
alter table [表名] rename (to) [新表名]
# 重命名列
alter table [表名] rename column [列名] to [新列名]
#重命名含索引名的列名
alter index <旧索引名> rename to <新索引名>
显示表结构
DESCRIBE 表名
DESCRIBE employees;
DESC employees;
显示详细的字段信息
简写 DESC
表的别名
SELECT 列名1 别名1,列名2 AS 别名2,列名3 "别名3"
FROM 表名;
三种表示用法
当别名中有空格时,需要用" "形式
冷门使用方法:列名 AS "别名"
列名 '别名'
去除重复行
SELECT DISTINCT 列名
from 表名;
当列每行的数据出现重复时只显示一条,缓解行数过大导致的不便
也可限制不止一列
SELECT DISTINCT 列1 , 列2
from 表名;
错误使用方法:
SELECT 列1 , DISTINCT 列2
from 表名;
(列1未去重,列2去重导致的行不对齐)
空值null
null空值参与的任何运算结果都是null,不论是加减乘除还是比较大小
有时在实践中部分数据因为未填或其他原因显示为null
为了便于计算,可以通过将计算中null所在列名更改格式为 IFNULL(含null的列名,0) 将null赋值为0或其他数值
或者用
COALESCE(column_name, 0)
#该函数会判断column_name是否为null,如是则返回0,否则返回原数