mysql命令全
DDL(数据定义语言) 定义和管理数据对象,如数据库,数据表等
CREATE、DROP、ALTER
DML(数据操作语言) 用于操作数据库对象中所包含的数据
INSERT、UPDATE、DELETE
DQL (数据查询语言) 用于查询数据库数据 SELECT
DCL (数据控制语言) 用来管理数据库的语言,包括管理权限及数据更改
GRANT、COMMIT、ROLLBACK
- 建立数据库 create database name(库名);
创建成功标志 Query OK, 0 rows affected (0.04 sec)
不能输入中文,添加utf8方式编码:create database dbs character set utf8;
查看数据库 show databases;
选择数据库 use np;
Database changed
删除数据库 drop database name(库名);
Query OK, 4 rows affected (0.02 sec)
- 创建表项:
create table test(id int auto_increment primary key,
name varchar(50) not null,
age int(10) unsigned not null default 18,
sex enum('male','female') default 'male',
createtime datetime) character set utf8;
#id为int型{默认为11},auto_increatement表明这个是自增字段,primary key表明这个是主键,与前一个参数组合使用; #name varchar(50)表明userame是可变的字符长度,not
null表明该字段不能够为空;unique 唯一,但可以为空; #UNSIGNED #无符号 ; default 默认值
#enum 映射范围 ; #createtime datetime 字段cratetime是日期时间类型的。
查看库中所有表 show tables;
查看单表结构 desc test;
show columns from test;
删除表 drop table test;
- 修改字段
增加字段 alter table test add age int default 0; #默认值0
修改表字段类型 alter table test modify name varchar(30); #匹配字段名称
修改表字段名称 alter table test change 原参数 新参数 int; #匹配类型值
删除字段 alter table 表名 drop 字段;
- 操作数据
插入数据
insert into test(id,age) values(55,“30”),(26,“44”);
#表项后添加字段参数,values可插入多条数据;需匹配表项中字段参数类型;
修改数据:
update test set 字段 = now() where 字段=值;
update test set id=666 where id=1;
删除数据:
truncate #完全清空表数据,但表结构、索引、约束等不变
delete from test where id=1; #清空某项
delete from test;可查看删除记录
- 查询数据
select * from test; #查询test中所有列的数据
select id,age from test; #查询指定列
select * from test where … ; # where 添加条件参数
select distinct id from test AS t group by id having … order by id desc;
distinct 去重 ;AS可省略不写,别名
列参数:
COUNT( ) 求数量
SUM( ) 求和
AVG( ) 求平均值
MAX( ) 最大的值
MIN( ) 最小的值
***判断表达式为空的函数 IFNULL(0,1)
多表连接查询:
union – 连2个不相关的表
union all: 并集操作, 包括重复行;
INNER JOIN ( JOIN ) 取2表的交集
RIGHT JOIN 取右表中所有数据,左表中匹配后的
LEFT JOIN 取左表中所有数据,右表中匹配后的
-
where参数:
范围in:where age IN ( 10,35,120 );
where age between 30 and 40 ;
逻辑: and:与 , or:或
比较:> ; < ; = ; !=;
空值:{ is null 和 is not null }
select * from test where name is null(可以为空) -
group by 查询结果进行分组
select username,avg(id) from test group by username;
group by 使用不了,出现sql_mode=only_full_group_by
解决方法: SET sql_mode=(SELECT REPLACE(@@sql_mode,‘ONLY_FULL_GROUP_BY’,‘’));
-
order by 对结果进行排序
order by id desc 是按照id递减排序(默认递增asc)
order by id,name 增加两个排序条件,先按照id排序,id相同,会按照name排序 -
like模糊查询
select * from test where name like ‘张%’;
# %表示0或多个字符,_代表一个字符 -
LIMIT 限定结果行数,用来进行分页查询
select * from test limit 0,2; #显示数据的开始条目+每页显示条数
SELECT version() , 100*3 #返回MySQL版本和计算结果
SELECT Name “课程名称”,Hour+10 AS “新学时” FROM * ; #可直接给表项增加参数
在这里欢迎大家的点赞、关注、评论,以此来促进大家互相学习交流,同时可以让新加入的小伙伴更快的了解新知识!!!
以上内容如有侵权,请联系作者进行删除
≧◠◡◠≦ 1分2分都是爱,感谢已经打赏的老板,和正在打赏的老板们 ≧◠◡◠≦