mysql基本语法

一、系统操作

1、启动服务

net start mysql;

net stop mysql;

2、进入数据库

mysql -h 主机地址 -u 用户名 -p 用户密码

3、退出

exit

4、用户管理

#修改密码:首先在DOS 下进入mysql安装路径的bin目录下,然后键入以下命令:
mysqladmin -uroot -p123 password 456;

#增加用户
#格式:grant  权限  on  数据库.*   to  用户名@登录主机   identified   by   '密码'

grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 

二、数据库操作

#显示数据库

show databases;

#判断是否存在数据库,存在删除

drop database if exits aaa;

#创建数据库

create database aaa;

#删除数据库

drop database aaa;

#使用该数据库

use aaa;

#显示数据库中的表

show tables;

#先判断表是否存在,存在先删除

drop table if exists student;

二、基础语法

表结构操作:

创建表

create table student (id int auto_increment primary key,

name varchar(50),

sex varchar(20),
date varchar(50),
content varchar(100)) default charest=utf8;

删除表

drop table student;

修改表名字

alter table student rename to student2

修改表字段名称

alter table student change name  name2 varchar(20);

表中增加列

alter table student add column descr varchar(100);

删除表中的列:

alter table student drop column sex;

数据操作:

插入数据

insert into student values(null,'aa','男','1988-10-2','...');

insert into student values(null,'bb','女','1889-03-6','......');
insert into student values(null,'cc','男','1889-08-8','......');
insert into student values(null,'dd','女','1889-12-8','......');
insert into student values(null,'ee','女','1889-09-6','......');
insert into student values(null,'ff','null','1889-09-6','......');

删除数据

delete from student; (删除所有)                      delete from student where id=5;(删除满足条件的数据)

修改一条数据内容

update student set sex='男' where id=4;

三、查询

#常用查询语句

select * from c;
select name,age ,id from c
select * from c where age>40 and age<60;  #and
select * from c where age<40 or age<60;  #or
select * from c where age between 40 and 60 #between
select * from c where age in (30,48,68,99);     #in 查询指定集合内的数据
select * from c order by age desc;      #order by (asc升序 des降序)

# 分组查询

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

select name,max(age) from c group by sex;        #按性别分组查年龄最大值

#聚合函数
select min(age) from c;
select avg(age) as '平均年龄 ' from c;
select count(*) from c;  #统计表中数据总数
select sum(age) from c;

#查询第i条以后到第j条的数据(不包括第i条)
select * from student limit 2,5;  #显示3-5条数据

#连表查询

inner join

SELECT column_name(s)      #这里的column可以是表1和表2的列
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果table_name1中的行在table_name2中没有匹配,就不会列出这些行。

LEFT JOIN

从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

SELECT column_name(s)

FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

RIGHT JOIN

右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

FROM table_name1
right JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

三表连表查询:

FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1/表2.字段号=表3.字段号

a.id=b.id a和b必须有相同的列才可以这么写,否则不能把两个没共同列的表这样写。

posted @ 2018-02-27 14:50  nianyuxue87  阅读(138)  评论(0编辑  收藏  举报