创建表
格式:
CREATE TABLE tabke_name
(
field1 datatype,
field2 datatype,
field3 datatype
)character set 字符集 collate 校对规则 engine 引擎
field:列名
datatype:列类型
character set:如果不指定则为所在数据库字段集
collate:如果不指定则为所在数据库校对规则
engine: 引擎
修改表
使用ALTER TABLE 语句追加、修改或删除列的语法
修改表结构:
查看表的结构:
desc 表名;
修改表名:
rename table 表名 to 新表名
修改表字符集:
alter table 表名 character set 字符集;
修改表中的列:
添加列:
ALTER TABLE tablename
ADD (
column datatype [DEFAULT expr]
[, colume datatype] ......);
修改列:
ALTER TABLE tablename
MODIFY (
column datatype [DEFAULT expr]
[, column datatype] ...);
删除列:
ALTER TABLE tablename
DROP (column);
修改列名:
ALTER TABLE tablename
change column new datatype [DEFAULT expr] [, column datatype] ...
添加数据
格式:
INSERT INTO table_name [(column [, column...])]
VALUES (value [, value...]);
注意:
1.插入的数据应与字段的数据类型相同(可以自动尝试强转)
2.数据的长度应在列的规定范围内
3.在values中列出的数据位置必须与被加入的列的排列位置相对应
4.字符和日期型数据应包含在单引号中
5.列可以插入空值(前提该字段允许为空,默认允许为空)insert into table value(null)
6.insert into tab_name(列名...) values (), (), () ;形式添加多条记录
7.如果是给表中的所有子段添加数据,可以不学前面的字段名称
8.默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
修改数据
格式:
UPDATE 表名
SET 列1=值1 [,列2=值2...]
[WHERE 条件]
注意:
1.UPDATE语法可以用新值更新原有表行中的各列
2.SET子句指示要修改哪些列和要给予哪些值
3.WHERE子句指定应更新哪些行,没有where语句是对所有行修改
4.如果需要修改多个字段,可以通过set 字段1=值1,字段2=值2...
删除数据
格式:
DELETE FROM 表名
[WHERE 条件]
注意:
1.如果不使用where子句,将删除表中所有数据
2.delete语句不能删除某一列的值(可使用update设为null或者'')
3.使用delete语句仅删除记录,不删除表本身,如要删除表,使用drop table语句。drop table 表名
查询数据
格式:
SELECT [DISTINCT] * | {column1,column2,column3...}
FROM 表名;
DISTINCT :取消重复
使用表达式对查询的列进行计算
SELECT * | {column1 | 表达式,column2 | 表达式,...}
FROM 表名;
在select语句中可使用as语句
SELECT column_name as 别名 from 表名;
where子句中经常使用的运算符
比较运算符 | >, <, <=, >=,=,<>,!= | 大于,小于,小于等于,大于等于,不等于 |
BETWEEN...AND... | 显示在某一区间的值(闭区间) | |
IN(set) | 显示在in列表中的值 | |
LIKE ' ' | 模糊查询 | |
NOT LIKE ' ' | 模糊查询 | |
IS NULL | 判断是否为空 | |
逻辑运算符 | and | 多个条件同时成立 |
or | 多个条件任一成立 | |
not | 不成立 |
LIKE '王%' :‘%’表示0或多个字符,‘_’表示0或1个字符。
使用order by 子句排序查询结果
SELECT 列1, 列2, 列3...
FROM 表名;
order by 列名 asc|desc,...
注意:
1.order by 指定排序的列,排序的列既可以是表中的列名,也可以是select语句指定的列名。
2.asc升序(默认),desc降序
3.order by 子句应位于select语句的结尾
group by
使用group by 子句对列进行分组
格式:
SELECT 列1,列2,列3 ... FROM 表名
group by 列名
having
使用having 子句对分组后的结果进行过滤
格式:
SELECT 列1, 列2, 列3 ... FROM 表名
group by 列名
having ...
分页查询
格式:
SELECT * FROM
LIMIT start, rows;
表示从start+1行开始取,取出rows行,start从0开始计算
优先级
如果select语句同时包含有group by,having,limit,order by
那么他们的顺序是group by,having,order by,limit
执行顺序:where > 聚合函数 > having