You辉编程_MySQL常用命令

     

/*SQL分类:DDL:用于操作数据库;DML:用于操作数据*/ 

/*==========DDL====================*/
/*mysql -u root -p回车输入密码连接数据库*/
mysql -u root -p;
/*创建数据库*/
create database testHello;
/*展示数据库*/
show databases;
/*删除数据库*/
drop database testHello;
/*使用数据库*/
use testHello;
/*查询表的所有数据*/
select * from testHello

/*-------------------------------------*/
/*创建表*/
create table `user`(
  `id` int(11) not null AUTO_INCREMENT,
  `username` varchar(255) not null default '' COMMENT '用户名字',
  `pwd`  varchar(255) not null default '' COMMENT '用户密码',
	primary key(`id`) /*主键*/
)COMMENT='用户表';

/*表的修改*/
/*修改表名*/
rename table `旧表名` to `新表名`;
rename table `user` to `student`;

/*添加字段*/
alter table `表名` add column `字段的名称` type(length);
alter table `student` add column `achievement` int(11);

/*修改字段类型*/
alter table `student` modify column `achievement` varchar(255);

/*修改字段名*/
alter table `表名` change column `旧字段名` `新字段名` type(length);
alter table `student` change column `achievement` `score` int(11);

/*删除字段*/
alter table `student` drop column `score`;

/*删除表*/
drop table `student`;

/*清空表数据,表还存在*/
truncate `student`;

/*-----------------------------------------*/

/*
创建索引:会提升查询效率,
但修改数据效率低下
索引的类型:
Normal:解决查询速度
Unique:主键就是Unique,表示其唯一性
Full text:全文索引,一般用于varchar,text的类型,不常用
*/
create index `索引名` on 表名(`字段名`);
create index `index_username` on student(`username`);

/*添加指定类型的索引*/
alter table `表名` add <INDEX|UNIQUE> 索引名(`字段名`);
alter table `studnet` add unique index_unique_username(`username`);

/*删除索引*/
drop index `索引名` on `表名`;
drop index `index_username` on `student`;


/*==========DML(最常用)====================*/
/*给表添加数据*/
insert into `表名`
(`字段1`,`字段2`,`字段3`,...`字段n`)/*可以省略*/
values  
(`vlaue1`,`value2`,`value3`,..`vlauen`);

insert into `studnet`
(`id`,`username`,`pwd`)
values 
(`1`,`张三`,`123456`);

/*修改表数据,一般结合where子句使用*/
update `表名` 
set 
字段1=value1,字段2=vlaue2,...,字段n=vlauen
where 子句;

updata `studnet`
set username='李四'
where id = 1;

/*删除表中数据,一般结合where字句使用*/
delete from `表名`
where 子句:

delete from `student`
where id = 1;

/*查询表中的数据,一般结合where字句使用*/
/*查询表中所有数据*/
select * 
from `studnet`;

/*列查询*/
select 字段名1,字段名2,...字段名n
from `student`
where 子句

select username,pwd 
from `student`
where id = 1;

/*别名查询(给所要查询字段一个别名),多用于多表查询*/
select 字段名1 as '字段名1',字段名2 as '字段名2'...
from student as s1
where 子句;

select username as '用户名',pwd as '密码'
from `student` as s1
where s1.id=1;


/*
where子句:就是根据一定条件进行查询
AND,OR,=,>,>=,<,<=,<>或!=,IS NULL,IS NOT NULL,
between:一般结合and使用,between and表示位于...之间,是一个闭区间
in:表示在集合中
*/
select *
from `student`
where id = 1 OR username = '张三';

select *
from `student`
where score between 60 and 100;

select * 
from `student`
where score in (70,80);/*表示查询70或80分的学生*/

/*
like子句模糊查询(类似搜索),在where字句中使用
a%:以a开头
%a:以a结尾
%a%:包含a
_a_:三位且中间含a
_a:两位以a结尾
a_:两位以a开头
*/
select * 
from `student`
where username like 'zjs%' or pwd '346%';

/*order by子句排序:对某一列进行排序
order by位于where之后
order by:可以有多个字段,逗号分隔
asc:升序
desc:降序
默认:升序
*/

select *
from `student`
/*如果有where子句,需要位于order by之前*/
order by id desc;


/*
limt数据分页,位于order by之后
start:从0开始记数
size:查多少条数据,如查询前10条数据0,10
*/
select * 
from 
/*where子句*/
/*order by子句*/
limit 0,10;


/*
group by:表中数据的分组
group by 位于where和order by之间
 where  group by order by 
having:是条件,必须和group by结合使用
count(*):是sql的函数,用于计算
*/

select count(*)
from `student`;/*查询student表有多少条数据*/

select score,count(*)
from `student`
/*where子句(如果有)*/
group by score
having count(*) > 60;
/*order by字句(如果有)*/

/*
针对有关联关系表的查询
连接查询,left join,right join
连接查询:用于表与表之间关系的查询(不推荐)
inner join:用户表与表之间关系的查询,返回公共部分
left join:用于表与表之间的关系查询,返回的数据包含左边表的冗余数据。
right join:用于表与表之间的关系查询,返回的数据包含右边表的冗余数据。
*/
/*连接查询*/
select s1.`username`,s1.`pwd`,t2.`username`,t2.`id`
from student as s1,user as u2
where s1.`username` = u2.id;/*两张表的关联字段*/

/*inner join 查询(内连接:返回公共部分)*/
select s1.`username`,u2.`id`
from studnet as s1 inner join user as u2 on s.`username` = u2.`id`

/*left join 查询(左外连接:返回公共部分和左边剩余内容)*/
select s1.`username`,s1,`pwd`,u2.`username`,u2.`id`
from student as s1 left join user as u2 on s1.`username` = u2.`id`;

/*right join 查询(右外连接:返回公共部分和右边剩余内容)*/
select s1.`username`,s1,`pwd`,u2.`username`,u2.`id`
from student as s1 right join user as u2 on s1.`username` = u2.`id`;


/*
union和distinct关键字
union:将多张表的数据合并到一个列中
distinct:筛选重复的数据
注:两张表的字段数量需要保持一致
*/

select username, id from student
union all/*[distinct:默认的即不显示重复的;all:显示所有数据包括重复的]*/
select name,score from user;

/*筛选重复数据*/
select distinct score form student;

/*
sql中常用函数
count():计算数量
sum():求和
avg():求平均值
*/
select coutn(所要查询的列的数量)from student;
select count(*) from student;/*查询有几条数据*/

select sum(求和的列) from student;

select avg(求平均值的列) from student;



           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值