数据库知识整理(一)

1. 数据库介绍

存数据:
数据库 - 文件(特定格式),只有数据库软件可以读取

数据库 - 服务器(软件),可以由客户端访问

存储位置优点缺点
内存速度快不能永久保存,数据是临时状态
文件数据可以永久保存操作数据不方便,查询某个数据
数据库1)数据可以永久保存 2)查询速度快 3)对数据的管理方便占用资源,需要购买

关系型数据库

2. 数据库的服务与启动

SQL语句 Select Query Language 99标准 - 官方语言

DB :DataBase

环境变量:CMD 可以执行的命令的所有目录

执行命令[工具、文件]:

  1. 在当前文件夹搜索
  2. 在环境变量定义的所有目录中搜索

CMD

  • net start mysql 服务的开启 mysql是服务器名
  • net stop mysql 服务的关闭

登录格式:

  • mysql -u用户名 -p密码

    例子:mysql -h127.0.0.1 -uroot -p123456

  • mysql -hIP地址 -u用户名 -p密码

    例子mysql -h127.0.0.1 -uroot -p123456

  • mysql --host=IP地址 --user=用户名 --password=密码

    例子:mysql --h=127.0.0.1 --u=root --p=123456

quit或exit # 退出MySQL

图形化工具:

  • Workbench - mysql自带
  • SqlDeveloper - oracle自带
  • Navicat12
  • Sqlyog(Windows版)

TCP/IP协议 自行研究

ip:port 套接字,确定的是一个服务软件

  • ip:确定主机
  • port:确定服务器软件

域名:套接字的映射

DNS:IP集合,中转站

http协议的默认端口是80

默认数据库:(数据分区,仓库)

  1. sys - 系统相关配置
  2. mysql - mysql系统相关内容,例如用户\权限

3.SQL的概念

mysql的基础语法:

  1. 大小写不敏感,每一句sql最后一定要以;结尾
  2. – :注释
  3. /* */:多行注释
  4. 命名:表明/字段名 不能使用关键字 user
  5. 字符串可以用’'也可以用""表示

SQL分类:

  1. DDL(Data Defined Language):操作数据库,表
  2. DML(Data Manipulation Language):操作记录(添加、删除、修改)
  3. DQL(Data Query):对记录进行查询
  4. DCL(Data Control):对用户权限的设置

查看当前数据库的字符集:
show variables like ‘%char%’;

改字符集,需要修改配置文件 my.cnf/my.ini

4.DDL的操作数据库

  • 查看数据库: show databases
  • 创建数据库:
    1. create database 数据库名;
    2. 判断数据库是否已经存在,不存在则创建数据库:create database if not exists 数据库名;
    3. 创建数据库并指定字符集: create database 数据库名 character set 字符集
  • 使用数据库: use 数据库名;
  • 删除数据库:
    1. drop database 数据库名;
    2. drop database if exists 数据库名;
  • 改变数据库字符集:
    alter database 数据库名 default charset=utf8

select 全局函数():

  1. select now();//查询当前时间

5.DDL操作表

操作table,前提必须切换数据库 ues xxx:

  1. 创建
  2. 删除
  3. 修改
创建表 - 确定字段名(列),确定字段类型

数据类型:

  1. 字符/字符串:
    • varchar(10) - 最大10个字符
    • char(10) - 固定10个字符
  2. 整数:int(2)[mysql] number(2)[oracle]
  3. 小数:double(3,1) - [mysql]最大值99.9 number(3,1)[oracle]
  4. 时间类型:
    • 年月日 date
    • 时分秒 timestamp
    • 年月日时分秒 datetime

创建表:

  1. create table 表名;
  2. create if not exists table 表名;
--表明全称:数据库.表名
create table user(
    -- varchar(20)指的是长度最大20,comment表示字段的说明
    name varchar(20) comment '姓名' ,
    age int(2) ,
    sex char(1),
    score double(3,1) comment '个人综合评分',
    birthday datetime
 );

查看表结构:
desc 表名;

查看所有的表:
show tables;

显示创建User表的sql语句
show create table 表名;

创建一张和user相同的表
create table 创建的表的表名 like user;

修改表 alter
  1. 添加新的字段:

    alter table 表名 add 字段名 字段类型;

    alter table 表名 add ( 多个字段+字段类型 );

  2. 修改原先字段的类型:(只能修改一个字段)
    alter table 表名 modify age int(3);

  3. 删除字段
    alter table 表名 drop 字段名;

  4. 修改字段名
    alter table 表名 change 原先字段类型 字段 新的字段类型;

重命名表

rename table 原表名 to 新表名

删除表

drop table 表名;

6.DML操作

向表中添加数据:insert into 表名 values(字段值);

插入全部字段:

  1. 所有字段名都写出来:
    insert into 表名 (字段名1, 字段名2, 字段名3…) VALUES (值1,值2,值3)
  2. 不写字段名:insert into 表名 VALUES (值1,值2,值3)

插入部分数据:
insert into 表名(字段1,字段2,…) values(值1,值2,…)

tips:没有添加数据的字段会使用null

更新表记录:
update 表名 set 列名 = 值 [where 条件表达式]

  • 不带条件修改数据:
    update 表名 set 字段名 = 值; – 修改所有的行
  • 带条件修改数据:
    update 表名 set 字段名 = 值 Where 字段名 = 值;

tips:如果update和delete不能执行,需要修改数据库安全模式:set SQL_SAFE_UPDATES = 0;

删除表记录:
delete from 表名 [where 条件表达式]

  • 如果没有指定 WHERE 子句 MySQL 表中所有的记录将被删除
  • 你可以在 WHERE 子句中指定任何条件
  • 不带条件删除数据: delete from 表名;

  • 带条件删除数据: delete form 表名 where 字段名 = 值;

  • 使用truncate删除表中所有记录: truncate table 表名;

  • truncate 和 delete的区别:
    truncate相当于删除表的结构,在创建一张表。

7.DQL查询表中数据

查询不会对数据库中的数据进行修改,只是有一种显示数据的方式。

语法:
select 列名 from 表名 [where 条件表达式]

  1. select 命令可以读取一行或者多行记录。
  2. 可以使用星号(*)来代替其他字段,select语句会返回表的所有字段数据
  3. 可以使用where 语句来包含任何条件

简单查询:

  • 查询表所有行和列的数据(使用*表示所有列):
    SELECT * FROM 表名;
  • 查询指定列:
    select 字段名1,字段名2,字段名3,… from 表名;

指定列的别名进行查询

  • 使用关键字

    使用别名的好处:显示的时候使用新的名字并不修改表的结构

  • 语法
    select 字段名 1 as 别名,字段名 2 as 别名… from 表名

tips:其中的as可以省略

表示用别名的原因:用于多表查询操作

清楚重复值:

  • 查询指定列并且结果不出现重复数据:
    select distinct 字段名 from 表名

查询结果参与运算

  • 某列数据和固定值运算:
    select 列名1 + 固定值 from 表名;
  • 某列数据和其他列数据参与运算:
    select 列明1 + 列名2 from 表名;

注意:参与运算的必须是数值类型

条件查询:

  • 为什么要条件查询:

      如果没有条件查询,则每次查询所有的行。实际应用中,一般要指定查询条件,对记录进行过滤。
    
  • 条件查询语法:
    SELECT 字段名 FROM 表名 WHERE 条件;

流程:取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回

  • 运算符
比较运算符说明
>、< 、<=、>=、=、<><>在sql中表示不等于,在mysql中也可以使用!=,没有==
BETWEEN…AND在一个范围内,如:between 100 and 200,相当于条件在100到200之间,包头又包尾
IN(集合)集合表示多个值,使用逗号分隔
Like模糊查询
IS NULL查询某一列为NULL值,注:不能写=NULL,NULL在数据库中表示数据无穷大或无穷小
  • 逻辑运算符
逻辑运算符说明
and 或 &&与,Sql 中建议使用前者,后者并不通用
or
not 或 !
  • in 关键字
    select 字段名 from 表名 where 字段 in(数据1,数据2,数据3…)

in里面的每个数据都会作为一次条件,只要满足条件的就会显示。

  • 范围查询
    between 值1 and 值2

表示从值1到值2范围,包头又包尾。比如:age BETWEEN 80 AND 100 相当于: age >= 80 and age <= 100

  • like关键字 表示模糊查询
    select * from 表名 where 字段名 like ‘通配符字符串’;

  • MySQL通配符

通配符说明
%匹配人任意多个字符串
_匹配一个字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值