第五章笔记整理

数据库(DataBase):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。

用户通过数据库管理系统(DataBase Management System)访问数据库中的数据。

常见的数据库管理系统:Oracle(甲骨文)、MySQL、DB2、Microsoft SQL Server。

什么是三大范式?

第一范式(1NF):无重复的列。

第二范式(2NF):属性完全依赖于主键[消除部分子函数依赖]。

第三范式(3NF):属性不依赖于其它非主属性[消除传递依赖]。

(面试)

SQL分类

DDL数据定义语言,用来定义数据库对象:库、表、列等。

DML数据操作语言,用来定义数据库记录。

DCL数据控制语言,用来定义访问权限和安全级别。

DQL数据查询语言,用来查询记录。

SQL以分号结尾(不区分大小写,关键字建议使用大写)

mysql -u (账号root) -p (密码123456)

DDL数据定义语言

创建数据库:create database if not exists 数据库名;(不存在时才创建)

创建库时,设置编码(UTF-8在MYSQL中使用:UTF8MB4替代):

create database 数据库名 character set UTF8MB4;

查看所有数据库:show databases;

删除数据库:drop database if exists 数据库名;(表存在时才删除)

查看当前使用的数据库:select database();

切换数据库:user 数据库名;

创建表:create table 表名(列名1 数据类型,列名2 数据类型...);

查看当前数据库的表:show tables;

查看表的字段信息:desc 表名;

查看表的创建细节:show create table 表名;

alter table 表名 add 列名 数据类型;

alter table 表名 change 列名 新列名 新的数据类型;

alter table 表名 rename 新表名;

alter table 表名 drop 列名;

alter table 表名 character set 编码方式;修改表的字符集(默认为UTF-8)

常用的数据类型:

1.int整型数字

2.bigint大整型数字

3.double浮点型数字

     定义的格式:score double(5,2)--小数点前5位,小数点后2位。

4.date日期,只有年月日,使用时的格式:yyyy-MM-dd HH-mm-ss

5.datetime日期+时间,包含年月日时分秒,使用时的格式(同上)

6.timestamp时间戳,13位数字,从1970-01-01到现在的毫秒数

7.varchar变长字符串

     定义的格式:name varchat(20)--姓名最大使用20个字符

                           在oracle中,varchar被废弃了,建议使用varchar2

(面试)

char(定长字符串)与varchar的区别在于:先扩充空间,再存放数据,即使用不完也要占着。

DML数据操作语言

插入操作:insert(非数值的列值两侧需要加上单引号)

insert into 表名(列名) values(数据值);

当给所有列添加数据的时候,可以将列名省略(数据值必须按顺序添加)。

多行新增:insert into 表名t1(列名1,列名2) values(第一行数据值1,值2),(第二行数据值1,值2);

查询表的所有数据:select * from 表名;

整列修改:update 表名 set 列1=值1,列2=值2...;

修改符合条件的数据:update 表名 set 列1=值2 where 列1=值1 and ...;

(面试)

清空表格的删除方式:

delete from 表名 where 列名=值;(表删除后可以找回)

不建议使用,原因是记录过多时,效率很低。

truncate from 表名;(表删除后不能找回)

先删除表格文件,再创建,效率较高。

DCL数据控制语言

创建用户:create user 用户名@localhost(当前电脑IP) identified by ‘密码’;

指定IP才能登录:create user 用户名@‘客户端IP’ identified by ‘密码’;

任意IP均可登录:create user 用户名@‘%’ identified by ‘密码’;

给指定用户授权指定数据库的指定权限:

grant 权限1、权限2~权限n on 数据库名.* to 用户名@‘IP’;

开放所有数据库权限:grant all on *.* to 用户名@‘IP’;

用户权限查询:show grants for 用户名@‘IP’;

删除用户:drop user 用户名@‘IP’;

撤销用户权限:revoke 权限1~权限n on 数据库名.* from 用户名@‘IP’;

DQL数据查询语言

范围查询:select * from 表名 where 列名 (加not取反) in (列值1,列值2);

区间查询:select * from 表名 where 列名 between 开始值 and 结束值;

模糊查询:select * from 表名 where 列名 like ‘表达式’;(表达式必须是字符串)

通配符:_(下划线)代表任意一个字符   %代表0~n个字符

字段控制查询

去除重复记录:select distinct 列名 from 表名;

计算两列之和(横向运算,若列2的值为null,则赋值为0):

select 列1+ifnull(列2,0) as 自定义列名 from 表名;

null的比较运算不是通过=和!=来判断,而是用is nu

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值