数据库学习

数据库学习,先进行MYSQL学习,阿里云大课堂学习笔记

基础知识:
1、 主流数据库以及公司
 Oracle:甲骨文【大多数】
 DB2:IBM
 SQL Server:微软
 Sybase:塞尔斯
 MySQL:甲骨文
2、 数据库
 RDBMS = 管理员(manager)+仓库(database)
 Database=N个table
 Table:
 表结构:定义表的列名和列类型
 表记录:一行行的记录(数据)
3、 安装文件所在路径不要包含中文
4、 SQL语句可以单行或者多行书写,以分号作为结尾;MYSQL不区分大小写,建议使用大写;
5、 SQL语句分类
① DDL数据定义语言,用来定义数据库对象(库、表、列等);
② DML数据操作语言,增删改表记录;
③ DCL数据控制语言,用来定义访问权限和安全级别
④ DQL查询表的记录

MYSQL数据库语言
DDL
1、 数据库
查看所有数据库:SHOW DATABASES;
切换数据库:USE 数据库名;
创建数据库:CREATE DATABASE [IF NOT EXISTS] mydbl1 [CHARSET=utf-8];
删除数据库:DROP DATABASE [IF EXISTS] mydb1;
2、 数据类型
int
double:例如double(5,2)表示最多5位,其中必须有2位小数
char:固定长度字符串类型,数据长度不是指定长度会补足到指定长度
varchar:可变长度字符串
date:日期类型,格式为yyyy-mm-dd
time:时间类型,格式为hh:mm:ss
3、 表
 创建表:
CREATE TABLE [IF NOT EXISTS] 表名(
列名 列类型,

列名 列类型
);
 查看当前数据库中所有表名称:SHOW TABLES;
 查看表结构:DESC 表名;
 删除表:DROP TABLE 表名;
 修改表:前缀ALTER TABLE 表名
 增加列 ADD
ALTER TABLE 表名
ADD(
列名 列类型,
……
列名 列类型);
 修改之修改列类型 ALTER TABLE 表名 MODIFY 列名 列类型
 修改之删除列 ALTER TABLE 表名 DROP 列名;
 修改之表名称 ALTER TABLE 原表名 RENAME TO 新表名;

DCL:
一个项目创建一个用户,一个项目对应的数据库只有一个,该用户只对该数据库有操作权限

  1. 创建用户:①CREATE USER 用户名@IP地址 IDENTIFIED BY ‘密码’; ②CREATE USER 用户名@’%’ IDENTIFIED BY ‘密码’;
  2. 给用户授权:GRANT 权限1,……,权限n(ALL) ON 数据库.* TO 用户名@IP地址;
  3. 撤销授权:REMOVE 权限 ON 数据库.*FROM 用户名@IP地址;
  4. 查看权限:SHOW GRANTS FOR 用户名@IP地址;
  5. 删除用户:DROP USER 用户名@IP地址;

DQL:查询数据库
基础查询:
 查询指定(所有)列:select 列1,列2……(*) from emp;
 关键字DISTINCT:重复数据的时候,只显示一行
 列运算:
数量型:加减乘除
字符串型:连续CONCAT SELECT CONCAT(‘$’,sal) FROM emp;
 转换NULL:FNULL(com,0)如果com列中存在NULL值,将NULL转换为0计算
 SELECT IFNULL(com,0)+100 FROM emp;
 给列起列名:SELECT IFNULL(com,0)+100 AS 奖金 FROM emp;

条件控制
 WHERE
 模糊查询:SELECT * FROM emp WHERE ename LIKE ‘_刚’; ‘_’匹配一个字符,‘%’匹配0-N个字符

排序
 升序:ASC,或者省略
 降序:DESC SELECT * FROM emp ORDER BY comm DESC;
 多列:SELECT * FROM emp ORDER BY comm DESC, ename ASC;

聚合函数
COUNT:计算列中不为NULL的个数
SUM
MAX/MIN

分组查询
SELECT job, count(*) FROM emp GROUP BY job;
SELECT之后可以跟分组的类别以及聚合函数
分组前的条件使用WHERE
SELECT job, count(*) FROM emp WHERE sal > 15000 GROUP BY job;
分组后的条件使用HAVING
SELECT job, count(*) FROM emp WHERE sal > 15000 GROUP BY job HAVING ;
执行顺序:SELECT>FROM>WHERE>GROUP BY>HAVING>ORDER BY

LIMIT:查询起始行(从0开始计数)以及总行数

DML:数据操作语言

  1. 插入:INSERT INTO 表名(列名1,列名2,……) VALUES(列值1,列值2,……);
    在数据库中所有的字符串类型,必须使用单引号,不能使用双引号
  2. 修改:UPDATE 表名 SET 列名1=列值1, 列名2=列值2,……[WHERE 条件];
  3. 删除数据:DELETE FROM 表名 [WHERE 条件];
    注TRUNCATE TABLE 表名; TRUNCATE是DDL语句,先drop该表 ,再create该表,无法回滚
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值