MySQL常用命令、Navicat使用教程

登录 mysql -uroot -p

查看MySQL中有哪些数据库

show databases;

注意:以分号结尾,分号是英文的分号。

使用某个数据库

use test

use+数据库名

创建数据库

create database test1;

删除 drop database +数据库名:

8、数据库当中最基本的单元是表 : table 

姓名  性别  年龄 (列 : 字段) 
张三  男     20 
李四  女     21 
王五  男     22 
数据库当中是以表格的形式表示数据的. 因为表比较直观。
 任何一张表都有行和列 : 
行(row) : 被称为数据/记录。 
列(column) : 被称为字段。 

SQL语句分类

登录mysql数据库:    mysql -u【用户名】 -p【密码】
数据库:
创建数据库:CREATE DATABASE 【数据库名】;
查询数据库: SHOW DATABASES;    SHOW CREATE DATABASE 【数据库名】;//查询建库语句
删除数据库:DROP DATABASE 【数据库名】
改数据库:    ALTER DATABASE 【数据库名】 【参数】;
使用数据库:use 【数据库名】
数据表:
创建表:    CREATE TABLE `test`  (
              `id`   int(10) NOT NULL AUTO_INCREMENT,
              `name` varchar(11) NOT NULL,
              `sex` enum('男','女') NULL DEFAULT NULL,
              PRIMARY KEY (`id`)
        );
删除表:    DROP TABLE  【表名】;
修改表:    ALTER TABLE  【表名】 ADD   AGE   INT;
        ALTER TABLE  【表名】  MODIFY NAME VACHAR(20);
查询表:    SHOW TABLES;    SHOW CREATE TABLE 【数据库名】;//查询建库语句

数据:

增加数据:    INSERT INTO 【表名】 (字段名) VALUES (数据)
删除数据:    1、条件删除:DELETE FROM  【表名】 WHERE (条件);
        2、清空数据表:DELETE FROM 【表名】 ;TRUNCATE 【表名】 ;
修改数据:    UPDATE <表名> SET 字段 1=值 1 【,字段 2=值 2…】。。。
查询数据:    1、全部查询    SELECT 【查询的字段】 FROM 【表名】 
        2、条件查询    SELECT 【查询的字段】 FROM 【表名】 WHERE ....

CREATE TABLE `student`  (
            `id`   int(10) NOT NULL AUTO_INCREMENT,
            `name` varchar(10) NOT NULL,
              `xuehao`   varchar(10) NOT NULL,
            `shuxue` double(16,2) NOT NULL,
            `yingyu` double(16,2) NOT NULL,
            `suanfa` double(16,2) NOT NULL,
            `caozuo` double(16,2) NOT NULL,
              PRIMARY KEY (`id`)
        );

double(16,2) 16位长度,小数点后2位。

Navicat使用教程

筛选、删除、修改可以直接在软件中实现

插入数据:点击应用更改,下面会出现sql语句, 

增删改查(单个表)

增
INSERT INTO `test1`.`student` (`id`, `name`, `xuehao`, `shuxue`, `yingyu`, `suanfa`, `caozuo`) VALUES (102, '张三', '9', 9, 9, 9, 99)
insert into 表名(字段1,字段2,字段3) values (值1,值2,值3);

删
delete `test1`.`student` WHERE `shuxue` > 100
delete from 表名 where 条件:

改
UPDATE `test1`.`student` SET `shuxue` = 88 WHERE `id` = 12
多个修改,用','隔开
UPDATE `test1`.`student` SET `shuxue` = 11, `yingyu` = 22 WHERE `id` = 100
批量修改
UPDATE `test1`.`student` SET `shuxue` = 60 WHERE `id` >= 100
update 表名 set 字段1=值1 where 条件;

查
select * from t_student where age>=18 and xueli ='本科';
select 字段名1,字段名2,字段名3.。。from 表名 where 查询条件

多表联查

student表的班级id对应class表的id,表名+‘.’+字段1,字段2,字段3,  

select * from class join student on class.id =student.cid;
给数据库别名
select s.id,s.sname,c.classname from class c join student s on c.id=s.cid;

select 需要显示的字段 from 表1 join 表2 on 表关系;
关联多个表
select s.id,sname,age,c.classname from class c join student s on c.id=s.cid join grade on c.id=grade.cid;
增加条件
select s.id,s.sname,c.classname from class c join student s on c.id=s.cid join grade on c.id=grade.cid where chinese>60 and math >80 and english >60;;

模糊查询

包含1的数据
SELECT * FROM `test1`.`student` WHERE `id` LIKE '%1%'
以1开头的数据
SELECT * FROM `test1`.`student` WHERE `id` LIKE '1%' LIMIT 0,1000
以x开头 x%  包含%x% 以x结尾%x
在1~60的数据
SELECT * FROM `test1`.`student` WHERE `id` BETWEEN '1' AND '60' LIMIT 0,1000

在列表中
SELECT * FROM `test1`.`student` WHERE `id` IN (1, 2, 3) LIMIT 0,1000

多个条件查询
SELECT * FROM `test1`.`student` WHERE `shuxue` >= '80' AND `yingyu` > '80' LIMIT 0,1000

排序查询

按数学成绩排序
SELECT * FROM `test1`.`student` ORDER BY `shuxue` LIMIT 0,1000
倒序
SELECT * FROM `test1`.`student` ORDER BY `shuxue` DESC LIMIT 0,1000

统计、重命名

SELECT count(*) FROM `test1`.`student`
并重命名
SELECT count(*) as '数量' FROM `test1`.`student`

SELECT id,name as '数量' FROM `test1`.`student`
+--------+
| 数量   |
+--------+
|    102 |
+--------+
1 row in set (0.00 sec)

常用命令: 

求最小值、最大值
SELECT max(shuxue) FROM `test1`.`student`;
SELECT min(shuxue) FROM `test1`.`student`;
求和
SELECT sum(shuxue) FROM `test1`.`student`;
分组(按某个字段分组),分组查询
后面加\G 换行显示
SELECT * FROM `test1`.`student` where id=1 \G;

 

 名字不能合并,所以可以查询每个班的人数

 

 

应用

求每个班的总成绩

select s.id '编号',s.sname '姓名',c.classname , s.age,(g.chinese+g.math+g.english) from t_student s join t_grade g on s.id=g.sid join t_class c on c.id=s.cid;

求每个班的平均分

select c.id '编号',c.classname,sum(g.chinese+g.math+g.english) from t_student s join t_grade g on s.id=g.sid join t_class c on c.id=s.cid group by c.id;

 

 


 

DQL: 
数据查询语言(凡是带有se1lect关键字的都是查询语句) 
select... 
DML: 
数据操作语言(凡是对表当中的数据进行增删改的都是DM) 
insert delete update 
insert 增 
delete 删 
update 改 
这个主要是操作表中的数据data。 
DDL: 
数据定义语言 凡是带有create、drop、alter的都是DDL. 
DDL主要操作的是表的结构。不是表中的数据。 
create: 新建,等同于增 
drop:删除 
alter:修改 
这个增删改和D匹不同,这个主要是对表结构进行操作。 
TCL 

 改

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值