Mysql(12.6)Mysql入门

MYSQL

定义:用来存储和管理数据的仓库

数据库的发展历程

没有数据库,使用磁盘文件存储数据->层次结构模型数据库->网状结构模型数据库_>关系结构模型数据库(使用二维表格来存储数据)->关系-对象模型数据库

MySQL就是关系型数据库

基本语法:

语法要求:
  • SQL语句可以单行或多行书写,以分号结尾;

  • 可以用空格和缩进来来增强语句的可读性;

  • 关键字不区别大小写,建议使用大写;

DDL(数据定义语言)

    对表进行操作
    创建:CREATE

CREATE TABLE IF NOT EXISTS  `STUDENT`;


    删除:DROP

DROP TABLE `STUDENT`


    改动:AlTER

 ALTER TABLE `STUDENT` DROP PRIMARY KEY;

DMl(数据操作语言)


    对字段操作


    更新:UPDATE

   UPDATE `表名` SET 字段名 = 值,字段名 = 值......[WHERE 条件语句]

UPDATE `studenttable` SET name = '张三' WHERE name = '李四'


    插入:INSERT

   INSERT [INTO] `表名` (字段列表)  VALUES (值列表)

 INSERT INTO `studenttable` (name,sid,gender)  VALUES ('王五','2120','男');


    删除:DELETE

  DELETE FROM `表名` [WHERE 条件语句] DCL(数据控制语言)

DELETE FROM `scoretable` WHERE sid = '2120'


    对用户操作

   创建:CREATE

CREATE USER 用户名@地址 IDENTIFIED BY '密码';

CREATE USER ADMIN@LOCALHOST IDENTIFIED BY '1332620674'


   授权:GRANT

 GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;

GRANT ALL ON ESA.* TO ADMIN@LOCALHOST


   撤销权限:INVOKE

REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名;

REVOKE DELETE,ALTER,UPDATE ON ESA.* FROM ADMIN@LOCALHOST
DQL(数据查询语言,重点)


    主体:select 字段列表 from 表名

SELECT `StudentName` FROM `studenttable`


    条件语句:Where

SELECT * FROM `studenttable` WHERE `Gender` = '男';


    分组字段:GROUP BY

SELECT * FROM `studenttable` GROUP BY  StudentID;


    分组条件:HAVING(一般是在统计之后的筛选,在group by之后)

SELECT * FROM `studenttable` HAVING Nation ='汉';


    排序字段:ORDER BY(降序/升序:DESC/ASC)

SELECT * FROM `studenttable` WHERE Gender ='女"ORDER BY BirthDay ;


    偏移量,每页数量:LIMIT

SELECT * FROM `Studenttable` LIMIT 0,5;

where和having 的区别:

where是筛选分组前的数据,having是筛选分组后的数据

having后可以使用聚合函数(比如count(),sum(),max(),min(),avg()),where不行

完整性约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的:保证数据库中数据的正确、有效性和完整性。

约束描述关键字
非空约束限制该字段的数据不能为nullNOT NULL
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT
外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY
检查约束(8.0.16版本之后)保证字段值满足某一个条件CHECK

 多表查询

联合查询

UNION:去除重复记录

SELECT * FROM t1 UNION SELECT * FROM t2;

UNION ALL:不去除重复记录

SELECT * FROM t1 UNION ALL SELECT * FROM t2。
连接查询

1.直接连接查询:直接在两张表中查询,可能出现不需要的结果

SELECT emp.ename,emp.sal,emp.comm,dept.dname FROM emp,dept WHERE emp.deptno=dept.deptno;

2.内连接查询:查询结果必须满足条件,去除空值

SELECT * FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;

3.外连接查询:左外连接和右外连接

--左外连接
SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 ... ;
--右外连接
SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 ... ;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值