DDL (操作数据库)
1.创建数据库 :
create database 数据库名;
Create database if not exist 数据库名;
Create datebase if not exist 数据库名 character set 码表名字
2.查看数据库:
show databases;
查看数据库的定义信息 :
show create database 数据库名;
3.修改数据库(修改定义码表):
alter database 数据库名 character set 码表名;
4.删除数据库:
drop database 数据库名;
5.使用数据库:
use 数据库名;
查看正在使用的数据库:
select(选择) database();
#DML(操作表结构):
1.添加表:
create table 表名 (
列名1 字段类型,
列名2 字段类型)
创建一个表结构相同的表:
Create table 新表名 like 旧表名;
【注】: 类型 int varchar(最大长度) double(x,x) like date TIMESTAMP(时间戳)
2.查看表:
show tables;
查看表结构 : desc表名;
查看创建表的sql语句:show create table 表名;
3.删除表 :
drop table 表名;
判断表是否存在之后再删除:
drop table if exists 表名;
4.修改表 :
A.添加列:
alter table 表名 add 列名 类型;
B.修改列类型:
alter table 表名 modify(修改) 列名 新类型;
C.修改列名:
alter table 表名 change 列名 新列名 新类型;
D.删除列:
alter table 表名 drop 列名;
E.修改表名;
rename table 表名 to 新表名;
F.修改表的字符集;
alter table 表名 character set 新码表;
DML(操作表中的数据) 对表中的记录进行增删改查
1.插入记录:
insert(插入) into 表名 (字段1, 字段2,...字段n) value(值1, 值2, ... 值n);
2.更新表中的记录 :
update(更新) 表名 set 列名 = 要修改的值 where [条件];
3.删除表中的记录 :
A.delete from表名 where [条件];
B.Truncate table 表名; [删除表结构 创建新表]
DQL(查询表中的数据)
1. 语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
1.查询: select 列名1, 列名2,.....列名n from 表名 where [条件];
A.查询所有 :
select * from 表名;
B.查询指定列 :
select 字段名 from 表名;
C.指定的列的别名查询:
select 字段名 as 别名 from 表名 as 表别名;
D.清除重复值查询:
select distinct(截然不同的) 字段名 from 表名;
E.查询结果参与运算:
select 字段1 + 字段2 as 别名 from 表名
F.条件查询 :
select 字段名 from表名 where [条件];
G.运算符参与查询:
select 字段名 from 表名 where 字段名 >= ?;
select 字段名 from 表名 where 字段名 in (x,y);
Between .. and;
H.模糊查询:
select 字段名 from 表名 where 字段名 like 通配符
I.排序 :
select 排序输出的字段 from 表名 order by 排序的标准字段名1 [asc][desc]
select from where order by
J.在某个条件下多层排序查询 :
排序输出的字段名 from 表名where 排序的范围 order by 排序的标准的字段名1 [asc][desc],排序的标准的字段名2 [asc][desc];
例如:select * from student order by math asc , chinese asc;
上面的sql代表 在数学分数相同时 用语文分数排序 而且输出的是排序后的整体
K.聚合函数 :
select avg (字段名) 别名form 表名;
L.分组:
select 输出的字段1,输出的字段2,...输出的字段n from 表名 group by 分组字段 having 条件;
例如:按性别分组 输出显示性别和人