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必须有相同的列才可以这么写,否则不能把两个没共同列的表这样写。