MYSQL基础语句

来源:互联网 发布:linux 运行lua脚本 编辑:程序博客网 时间:2024/06/08 04:17

DDL :数据定义语言,定义数据库(create,drop,alter,use,show)

查看数据库

show databases;

创建数据库

create database databaseName;

进入数据库

use databaseName;

创建表

create table tablename(c_name1 c_type1,c_name2 c_type2 constraints);

查看表结构:

DESC tablename;

删除表:

drop table tablename;

修改表列属性,[]为调整位置,可选

alter table tablename MODIFY c_name new_c_type [after|first column_name];

添加新列

alter table tablename ADD c_name c_type [after|first column_name];

删除列

alter table tablename DROP c_name;

修改表列名,属性,位置

alert table tablename CHANGE old_c_name new_c_name new_c_type [after|first column_name];

表重命名

alert table tablename rename new_tablename;

DML :数据操纵语言,管理数据 (insert,update,deltete,select)

带列名,后面值的顺序与前面列名顺序一致

insert into tablename(field1,field2,...fieldn) values(val1,val2,...valn),(val1,val2,...valn);

不带列名,完全插入,values需与表中列的顺序一一对应

insert into tablename values(val1,val2....valn);

不带WHERE则更新所以

update tablename set field1=val1,field2=val2,..fieldn=valn [WHERE CONDITION];delete from tablename [WHERE CONDITION];

从多个表中删除关联的项

delete a,b from tablename1 AS a,tablename2 AS b where a.filedx = b.fieldx ...;

Order为排序操作,asc升序,desc降序,Limit为设定结果行(偏移量)范围,参数为(起始行,输出行数)可以做分页

select * from table [WHERE CONDITION] [ORDER BY field1 [DESC|ASC]...fieldn [DESC|ASC]] [LIMIT start_column_number,display_count];

distinct 后面的属性(无论有几个)不完全相等就可以视为不同

select distinct c_name1,c_name2,c_name3 [WHERE CONDITION] ; 

count不会统计null值,所以统计行数可以用count(*)或者count(1)

select count(*|field) from tablename;

将表中内容按field进行分类后,再进行count,可以理解为循环输出,每次选定一个field值,然后选出包含他的行进行统计

select field,count(field) from tablename [GROUP BY field]; 

having 操作是在聚合结束以后,可以对聚合进行筛选

select field,count(field) from tablename [GROUP BY field having count(field) > value];

求和,最大,最小操作

select sum(field),max(field),min(field) from tablename;

左连接,左表右按照关联列合并,合并后如果左表存某个关联值在而右表不存在,那么这行的右表显示为null;左表正常显示
右连接,与左连接相反,A left join B = B right join A

select * from table1 left join table2 on table1.field = table2.field;

in|not in 类似于枚举

select * from table1 where field in|not in (select filed from table2);

union操作要求union的各个结果集的列要一样

select field1...fieldn from table1 union|all union select field1...fieldn from table2;

DCL:数据控制语言,管理数据库权限(grant,revoke)

授权

grant select,insert on databsename.tablename|* to 'username'@'url' identified by 'password';

除权

revoke insert on databasename.tablename|* from 'username'@'url' identified by 'password';

神器

? contents
0 0
原创粉丝点击