========================MySql DDL语句============================
mysql -u 用户名 -p————>登录MySQL
show databases;————>查看数据库列表
create database 数据库名; ————>创建数据库
drop database 数据库名;————>删除数据库
use 数据库;————>选择数据库
show tables; ————>查看数据库中的数据表
———————————————————————————————————>
create table 数据库名(————>创
字段1 数据类型 约束条件, ————>建
字段2 数据类型 约束条件, ————>数
...————>据
) [defualt charset=utf8]; ————>表[default charset=utf-8 表默认字符集]
———————————————————————————————————>
desc 表名;————>查看数据定义
create table 表名(字段1 int,字段2,数据类型,primary key(字段1[,字段2])); ————>创建主键1,主键数据类型一般为int
create table 表名(字段1 int primary key,字段2,数据类型);————>创建主键2
create table 表名(字段1 int auto_increment,primary key(字段1)); ————>自增,auto_increment不能单独存在,必须与主键搭配
show create table 表名\G————>查看创建数据表的SQL语句
drop table 表名;————>删除表
alter table 表名 add primary key(字段名);————>修改/添加主键
alter table 表名 drop primary key;————>删除主键,删除主键之前必须先删除auto_increment
alter table 表名 modify [column] 字段 字段类型 auto_increment; ————>修改/添加自增
alter table 表名 modify [column] 字段 字段类型;————>修改表字段属性(可以删除auto_increment)
alter table 表名 modify [column] 字段 字段类型 not null; ————>设置字段是否为NULL
alter table 表名 modify [column] 字段 字段类型 default 默认值; ————>设置default默认值
alter table 表名 add [column] 字段 字段类型;————>增加表字段属性
alter table 表名 drop [column] 字段名; ————>删除表字段
alter table 表名 change [column] 旧字段 新字段 字段类型;————>修改表字段名或者属性
alter table 表名 modify [column] 字段 字段类型 [first|after 字段名]; ————>字段排序
alter table 表名 rename [to] 新的表名;————>修改表名
========================MySql DML语句============================
insert into 表名 (字段1,字段2,……) values(值1,值2,……);————>插入记录
————————————————————————————————————————————————————————————>
insert into 表名 (字段1,字段2,……) values ————>插
(值1,值2,……), ————>入
(值1,值2,……), ————>多
(值1,值2,……), ————>条
(值1,值2,……), ————>记
(……,……,……);————>录
————————————————————————————————————————————————————————>
update 表名 set 字段1=值1,字段2=值2,…… [where 条件]; ——>更新记录
————————————————————————————————————————————————————————>
update 表1,表2,…… set 表1.字段x=值,表2.字段x=值,…… ——>更新
[where 表1.字段=值,表2.字段=值,……];——>多个表
————————————————————————————————————————————————————————>
delete from 表名 [where 条件]; ——>删除记录
delete from 表1,表2,…… [where 条件];——>删除多个表中的记录
select * from 表名; ————>查询表中的所有记录
select 字段1,字段2,…… from 表名;————>查询指定字段
select distinct 字段1,字段2,…… from 表名; ————>查询不重复记录
select 字段1,字段2,…… from 表名 [from where(条件)];————>条件查询
select * from 表名 order by 排序字段 asc|desc;————>排序(默认asc)低到高
select * from 表名 order by 字段1 asc|desc,字段n asc|desc; ————>多字段排序
select * from 表名 order by 字段1 asc|desc,字段n asc|desc limit n; ————>排序限制,n可以为数字,也可以是一个或多个区间
select sum(字段1)[,sum(字段2),……] from 表名;————>求和
select count(*|字段名) from 表名;————>记录总数(count一般count(*)这样用)
select max(字段名) from 表名;————>最大值
select min(字段名) from 表名;————>最小值
select [分组字段,sum(字段)] from 表名 group by 分组字段; ————>分组求和
select [sum(字段)] from 表名 group by 分组字段 with rollup;————>分组求和再汇总
select [分组字段,sum(字段)] from 表名 group by 分组字段 having sum(字段)>n;————>having后面跟比较运算符(n为一个具体的值)
select min(字段1),sum(字段2),max(字段3)count(*) from 表名;————>聚合混合使用
select * from 表1,表2,…… where(表1.字段=表2.字段,……);————>表连接,内连接,查询多表中匹配的字段
select 表1.字段1,表2.字段1,from 表1,表2,…… where(表1.字段=表2.字段,……);————>表连接,内连接,查询多表中匹配的字段并显示指定字段
select 表1.字段 别名,表2.字段 别名,from 表1,表2,…… where(表1.字段=表2.字段); ————>表连接,内连接,查询多表中匹配的字段并给指定"字段"起别名
select * from 表1 表别名1,表2 表别名2,…… where(表别名1.字段=表别名2.字段);————>表连接,内连接,查询多表中匹配的字段并给指定"表"起别名
select * from 表1 left join 表2 on 表1.字段=表2.字段; ————>表连接,外连接,左连接(left join),on连接方法(左连接,把左边一张表全部列出来,右边自动补全(null))
select * from 表1 right join 表2 on 表1.字段=表2.字段;————>表连接,外连接,右连接(right join),on连接方法(右连接,把右边一张表全部列出来,左边自动补全(null))
select * from 表1 where 字段1 in(select 字段1 from 表2); ————>子查询,查询表1的字段在表2中(查询结果只有一条,in可以用=代替)与not in相反
select * from 表1 where 字段1 exists(select 字段1 from 表2); ————>子语句有没有查询出来,有true否则false,null返回true,与not exists相反
select * from 表1 union select * from 表2 union select * from 表3; ———>联合查询,注意:多个表的“列数”要相等,有去除重复功能
select * from 表1 union all select * from 表2 union all select * from 表3; ———>联合查询,注意:多个表的“列数”要相等,没有去除重复功能
========================MySql 字符集============================
create table 表名 [default character set 字符集 [default collate 校对规则]];———>创建字符集和校对规则
set character_set_client=字符集;———>设置客户端字符集(先选择表)
set character_set_results=字符集; ————>设置返回字符集(先选择表)
set names 字符集; ————>设置字符集全部一样(先选择表)
——————————————————————————————————————————————————————————————————>
use 表名;————>选择表以后(重点,没有这步,后面的执行会出错)
show variables like 'character_set_database'; ————>才可以查看字符集
show variables like 'collation_database'; ————>和校对规则
show variables like '字符集前缀%'; ———>查看字符集的校对规则
——————————————————————————————————————————————————————————————————————————————————>
mysqldump -u 用户名 -p 数据库名 > 位置/数据库名称 ————>命令提示符备份数据库
mysqldump -u 用户名 -p 数据库名 < 位置/数据库名称 ————>命令提示符回复数据库
alter database 表名 [default character set 字符集名 [default collate 校对规则名]]; ————>修改字符集或校对规则
————————————————————————————————————————————————————————————————————————————————————————>
MySql 字符集(show character set;)
注意:_ci(不区分大小写)
_cs(大小写敏感)
_bin(二元,即比较基于字符编码的值,与language(语言)无关)