MySQL数据库

1.数据库:用来储存和管理数据的仓库。

分为DDL、DML、DCL、DQL,分别是数据定义语言 (DDL)、数据查询语言(DQL)、数据操纵语言(DML)、数据控制语言(DCL) 。

-优点:    (1)可以储存大量的数据

                (2)方便检索

                (3)保持数据的一致性、完整性

                (4)安全可共享

2.DDL:

-数据类型:

(1)数值类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、DOUBLE、DECIMAL

(2)字符串类型:CHAR、VARCHAR、TINYBLONB、TINYTEXT、BLOB、TEXT、MEDIUMBLOB、MEDIUMTEXT、LONGBLOB、LONGTEXT

(3)日期时间类型:DATE、TIME、YEAR、DATETIME、TIMESTAMP

-操作表:

CREATE TABLE 表名(

 列名 列类型,

 列名 列类型,

 ......

);

注意:最后一个列则可以不用加逗号

3.DML:

(1)插入数据:INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)

(2)修改数据:UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]

(3)删除数据:DELETE FROM 表名 [WHERE 条件]

4.DCL:

(1)查询用户:select * from mysql.user;

(2)创建用户:CREATE USER 用户名@地址 IDENTIFIED BY '密码';

  (3)给用户授权:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;

(4)撤销授权:REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名;
                           REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;

(5)查看用户权限:SHOW GRANTS FOR 用户名;
                                   SHOW GRANTS FOR user1@localhost;

(6)删除用户:DROP USER 用户名;
                            DROP USER user1@localhost;

(7)修改用户密码:

        USE mysql;
        UPDATE USER SET authentication_string=PASSWORD('密码') WHERE User='用户名' and         Host='IP';
        FLUSH PRIVILEGES;

5.DQL:

(1)查询所有列:SELECT * FROM stu;

(2)条件查询:

        SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;

        SELECT sid, sname, age FROM stu;

6.聚合函数:

(1)count:统计数量

(2)max:最大值

(3)min:最小值

(4)sum:求和

(5)avg:求平均数

7.HAVING和WHERE的区别:

HAVING后面可以加聚合函数,而WHERE则不可以。

HAVING是在分组后对数据进行过滤WHERE是在分组前对数据进行过滤。

8.分页查询:SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;

注意事项:

• 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。

• 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。

• 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

9.常见的约束:

10.多表查询:

(1)联合查询:

        UNION:去除重复记录

        例如:SELECT * FROM t1 UNION SELECT * FROM t2;

        UNION ALL:不去除重复记录

        例如:SELECT * FROM t1 UNION ALL SELECT * FROM t2。

(2)连接查询:

        例如:SELECT * FROM emp,dept WHERE emp.deptno=dept.deptno;

(3)内连接:

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

内连接的特点:查询结果必须满足条件。例如我们向emp表中插入一条记录:w

(4)外连接:

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

外连接的特点:查询出的结果存在不满足条件的可能。

外连接分为两种,分别是:左外连接 和 右外连接。具体的语法结构为:

(5)自连接:SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ... ;

左连接和右连接的区别:

以A表和B表为例子

A表如下:

B表如下:

左连接:select A.*,B.* from A left outer join B on(A.a1=B.a2)

右连接:select A.*,B.* from A right outer join B on(A.a1=B.a2)

左连接:左边有的,右边没有的为null

右连接:左边没有的,右边有的为null

11.子查询:

子查询就是嵌套查询,即SELECT中包含SELECT,如果一条语句中存在两个,或两个以上SELECT,那么就是子查询语句了。

例如:SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2 );

12.MySQL流程控制函数:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值