技术day01 ──SQL基础

数据对象

数据对象是数据库的组成部分,通俗的来说就是数据库中能叫上名来的都是数据对象,常见的数据对象有以下几种:
表:由行和列组成,每个列成为一个字段,每列的标题为字段名;一行为一条数据;一个数据库表由一条或者多条记录组成,没有记录的表称为空表
用户:有权访问数据库的人,一般分为两种,为管理员和普通用户
索引:根据数据库表建立起来的顺序,目的是为了快速访问数据
触发器:用户定义SQL事务的集合,一般用来定时任务、批处理
视图:视图看上去是一个表,实际是一个虚表,一般是将几个表联系合并成一个新表,方便查看

数据库用户及权限

//创建用户
CREATE user glq@'bj-cynosdbmysql-grp-iv373juc.sql.tencentcdb.com' IDENTIFIED by 'glq'

//用户授权
GRANT all on book.t_book to 'glq'@'bj-cynosdbmysql-grp-iv373juc.sql.tencentcdb.com'

//修改密码
ALTER user 'glq'@'localhost' IDENTIFIED by 'glq123'

//删除用户
drop user 'glq'@'localhost'

数据库的权限有三种,分别是CONNECT(可连接查看)、resource(可以操作资源)、DBA(管理员)
六种数据对象权限:ALL ON 、SELECT ON、UPDATE ON、ALTER ON(改变表结构)、INSERT ON、DELETE ON
赋予权限:GRANT Insert ON your database.* TO user@host;
收回权限:REVOKE Delete ON your database.* FROM user@host;

查询语句

多表查询

多表查询允许在查询的from后面跟多个表,然后把表之间的关系在where条件后进行拼接

SELECT u.uname,ur.rid FROM t_user u,t_user_role ur
where u.id = ur.uid

外连接

列出多个表查询中其中一个表的全部记录
分为左外连接、右外连接
左外连接将两个表的顺序调换一下即可实现右外连接的功能

//左外连接
SELECT u.uname,ur.rid FROM
 t_user u
LEFT JOIN
t_user_role ur
on u.id = ur.uid

//右外连接
SELECT u.uname,ur.rid FROM
 t_user u
RIGHT JOIN
t_user_role ur
on u.id = ur.uid

嵌套查询和子查询

select语句中嵌套select即为嵌套查询,当子查询或in或exists成为where条件的一部分,这样的查询成为子查询

SELECT t_user.uname from t_user where t_user.id in 
(SELECT t_user_role.uid from t_user_role )

查询排序

order by用来排序
ASC升序,DESC降序 默认为升序

select * FROM t_user
ORDER BY id desc

查询分组

group by进行分组,一般与汇总函数结合在一起

SELECT count(rid) from t_user_role 
GROUP BY t_user_role.rid

where与having
where是对分组之前的数据进行筛选
having是对分组之后的数据进行筛选

优化查询

选择记录数少的作为基表(原理类似于for循环把少的放在外层减少跳出消耗)
选择交叉表作为基础表

增删改

增加数据:

INSERT INTO `bank_statement` VALUES ('1', '转账', '收', '2020111101', 'glq', '林宪宇', '0001', 'APP', '10000', '西安', '给你转账了', '成功', '0');
insert into A(id,name) SELECT id,name from B

修改:

UPDATE A set age = 28 where id = 1

删除:

DELETE from A where id =1

数据定义语句

创建表:

CREATE TABLE table_name (column_name column_type);

修改表:
添加一个字段:

alert table A add address varchar(200)

更多:
https://www.cnblogs.com/wwthuanyu/p/10069869.html
删除表:

drop table A

索引

索引分为三种,分别是:
主键索引:唯一的,不允许空值
唯一索引:唯一的,允许空值
普通索引:没有限制
索引使用原则:
1.出现在where子句的列以及连接字句中指定的列适合建索引
2.基数较小的列适合建索引(基数:不重复的)
3.尽量使用短索引,因为索引也会占用空间
4.不要过度使用索引,过度使用索引会占用额外的空间、降低操作的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值