MYSQL数据库常用命令

终端常用命令

退出exit

启动net start mysql

登录mysql -uroot -proot

目录

终端常用命令

1.SQL通用语法

2.SQL分类

(1)DDL:

操作数据库

操作数据表

(2)DML:

基础查询  

条件查询(where)

排序查询(order by)

分页查询(limit)

(3)DCL:

约束

外键约束

 3.数据库设计 

多表查询

子查询

4.事务


1.SQL通用语法

(1)可以单行多行书写,以分号结尾

(2)不区分大小写

(3)注释:

单行注释: --  注释内容(两个横杠和一个空格);#注释内容

多行注释:/*注释*/


2.SQL分类

(1)DDL:

         操作数据库,表等

操作数据库:

①查询:

show databases;

②创建

create database 数据库名称;

create database if not exists 数据库名称;

③删除

drop database 数据库名称;

drop database if not exists 数据库名称;

④使用数据库

查看当前使用的数据库:

select database();

使用数据库:

use 数据库名称;

操作数据表:

①查询表

·查询当前数据库下所有表名称 show tables;

·查询表结构

desc 表名称;

②创建表

Create table 表名(

字段名1 数据类型1,

字段名2 数据类型2,

....

字段名n 数据类型n

);

注意:最后一行末尾,不能加逗号

③删除表

drop table 表名;

drop table if  exists 表名;

④修改表

-- 修改表名 
alter table 表名 rename to 新的表名;

-- 添加一列
 alter table 表名 add 列名 数据类型;

-- 修改数据类型
 alter table 表名 modify 列名 数据类型;

-- 删除列 alter table 表名 drop 列名;


(2)DML:

对表中数据进行查询 

基础查询  

1.查询多个字段  

Select   列名 from 表名;

Select * from;(查询所有列的数据)

2.去除重复记录

Select distinct 列名 from 表名;

3.起别名

As :

条件查询(where)

Select 列名 from 表名 where 条件列表;

条件:

  • null值的比较不能使用= !=,需要使用is null,is not null
  • <>或!= 不等于  between....and....在某个范围之内
  • Like 占位符 模糊查询
-- 查询名字中包含婕的信息
select * from stu where name like ‘%婕%’;

-- 查询名字中第二个字婕的信息
select * from stu where name like ‘-婕%’;

排序查询(order by)

  1. 排序查询语句
Select 列名 from 表名 order by 排序字段名1[排序方式],排序字段名2[排序方式]...;

排序方式:

·ASC:升序排列

·DESC:降序排列

注意:如果有多个排序条件,当前的条件值一样时,才会根据第二条件进行排序

聚合函数

  • 聚合函数分类

   Count(列名) 统计数量

    max(列名) min(列名) sum(列名)  avg(列名)

  • 聚合函数语法:
Select 聚合函数名(列名) from 表;

注意:null值不参与所有聚合函数运算

分组查询(group by)

  1. 分组查询语法
Select 列名 from 表名 [where 分组前提条件] 
group by 分组字段名 [having 分组后条件过滤];

注意:分组后,查询字段为聚合函数和分组了的字段,查询其他字段没有意义。

   2.Where 和having 区别:

  • Where是分组前的限定,不满足where条件的不参与分组,having是分组后对结果进行过滤。
  • Where不可以对聚合函数进行判断,having 可以。

执行顺序:where>聚合函数>having

例:查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的

Select sex,avg(math),count(*) from stu where >70 group by sex having count(*)>2;

分页查询(limit)

分页查询语法

Select 字段列表 from 表名 limit 起始索引,查询条目数;

计算公式:起始索引=(当前页面-1)*每页显示的条数

例:

每页显示3条数据,查询第一页数据

Select * from 表名 limit 0,3;

每页显示3条数据,查询第二页数据

Select * from 表名 limit 3,3;

每页显示3条数据,查询第三页数据

Select * from 表名 limit 6,3;

Tips:

  • 分页查询limit是MySQL的方言
  • Oracle分页查询使用rownumber
  • sqlserver 分页查询使用top

(3)DCL:

对数据库进行权限控制

约束

非空约束    not null

唯一约束 UNIQUE

主键约束    PRIMARY KEY 非空且唯一

检查约束    CHECK  列中值满足某一条件

默认约束 DEFAULT 未指定值采用默认值

外键约束   FOREIGN KEY 两个表的数据建立连接

Tip:MySQL不支持检查约束

例:

CREATE TABLE emp(

id int PRIMARY key,-- 主键

ename VARCHAR (50)NOT NULL UNIQUE,-- 非空且唯一

joindate DATE NOT NULL,

salary DOUBLE (7,2) NOT NULL,

bonus DOUBLE(7,2) DEFAULT 0  -- 若为空时,奖金默认为0

);

外键约束

语法:

1.添加约束

①建表时添加约束

 Create table 表名(

列名 数据类型,

......

[CONSISTENT] [外键名称] FOREIGN key(外键列名) REFERENCES 主表(主表列名)

);

②建完表后添加外键约束

ALTER TABLE 表名 ADD CONSTRAINT  
外键名称 FOREIGN key(外键列名) REFERENCES 主表(主表列名);

2.删除约束

ALTER TABLE 表名 drop FOREIGN key 外键名称;   

 3.数据库设计 

  • 一对一

实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一

  • 一对多

实现方式:在多的一方建立外键关联的一方主键

  • 多对多

实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

多表查询

(1)内连接

内连接查询语法

①隐式内连接

SELECT 字段列表 FROM 表1,表2  ...WHERE 条件;

例:查询emp的name,bonus,dname

SELECT

emp. NAME,

emp.bonus,

demp.dname

FROM

emp,

dept

WHERE

emp.dep_id = dept.did;

②显式内连接

SELECT 字段列表 FROM 表1[inner] JOIN 表2 ON 条件;

例SELECT

*

FROM

emp

INNER JOIN dept ON emp.dep_id = dept.did;

内连接相当于查询AB交集数据

(2)外连接

左外连接:相当于查询A表所有数据和交集部分数据

SELECT 字段列表 FROM 表1  LEFT [OUTER] JOIN 表2 ON 条件;

左外连接:相当于查询B表所有数据和交集部分数据

SELECT 字段列表 FROM 表1  RIGHT [OUTER] JOIN 表2 ON 条件;

子查询

(1)查询中嵌套查询

  • 单行单列:作为条件值,使用=! <>等进行条件判断
SELECT 字段列表 FROM 表 WHERE 字段名 = (子查询);

  • 多行单列:作为条件值,使用in进行条件判断
SELECT 字段列表 FROM 表 WHERE 字段名 in  (子查询);

  • 多行多列:作为虚拟表
SELECT 字段列表 FROM (子查询) WHERE 条件;

例:

查询入职日期是2011-11-11之后的员工信息和部门信息

SELECT * FROM emp WHERE join_date > '2011-11-11';

SELECT * FROM (SELECT * FROM emp WHERE join_date > '2011-11-11') t1,dept WHERE t1.dep_id =dept.did;

4.事务

数据库的事务是一种机制,一个操作序列,包含了一组数据库操作命令

把所有命令作为一个整体一起向系统进行提交或撤销请求

--开启事务

BEGIN;

START TRANSACTION;

--提交事务

COMMIT;

--回滚事务:回到开启事务之前

ROLLBACK;

MYSQL会自动提交事务

事务的四大特征

ACID

  1. 原子性(atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
  2. 一致性(Consistency):事务完成时,必须使所有数据都保持一致状态
  3. 隔离性(Isolation):多个事务之间,操作的可见性
  4. 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值