sql(Mysql)基础

基础认识

1.  什么是数据库?

数据库: database,存储数据的仓库

数据库: 高效的存储和处理数据的介质(介质主要是两种: 磁盘和内存)

2. 数据库的分类?

数据库基于存储介质的不同: 进行了分类,分为两类: 关系型数据库(SQL)和非关系型数据库(NoSQL: Not Only SQL, 不是关系型的数据库都叫做非关系型数据库)

3.  不同的数据库阵营中的产品有哪些?

关系型数据库

大型: Oracle, DB2

中型: SQL-SERVER, Mysql等

小型: access等

非关系型数据库:memcached, mongodb, redis(同步到磁盘)

 

4. 两种数据库阵营的区别?

关系型数据库: 安全(保存磁盘基本不可能丢失), 容易理解, 比较浪费空间(二维表)

非关系型数据库: 效率高, 不安全(断电丢失)

关系型数据库

1. 什么是关系型数据库?
关系型数据库: 是一种建立在关系模型(数学模型)上的数据库.
关系模型: 一种所谓建立在关系上的模型. 关系模型包含三个方面:
数据结构: 数据存储的问题, 二维表(有行和列)
操作指令集合: 所有SQL语句
完整性约束: 表内数据约束(字段与字段), 表与表之间约束(外键) 

关键字说明

数据库: database

数据库系统:DBS(Database System): 是一种虚拟系统, 将多种内容关联起来的称呼

DBS = DBMS + DB

DBMS: Database Management System, 数据库管理系统, 专门管理数据库

DBA: Database Administrator,数据库管理员

 

行/记录: row/record, 本质是一个东西: 都是指表中的一行(一条记录): 行是从结构角度出发,记录是从数据角度出发

列/字段: column/field, 本质是一个东西

SQL

SQL: Structured Query Language, 结构化查询语言(数据以查询为主: 99%是在进行查询操作)

SQL分为三个部分

DDL: DataDefinition Language, 数据定义语言, 用来维护存储数据的结构(数据库,表), 代表指令: create,drop, alter等

DML: DataManipulation Language, 数据操作语言, 用来对数据进行操作(数据表中的内容), 代表指令: insert, delete,update等: 其中DML内部又单独进行了一个分

  类:DQL(Data Query Language: 数据查询语言, 如select)

DCL: DataControl Language, 数据控制语言, 主要是负责权限管理(用户), 代表指令: grant,revoke等

SQL是关系型数据库的操作指令, SQL是一种约束,但不强制(类似W3C): 不同的数据库产品(如Oracle,mysql)可能内部会有一些细微的区别.

Mysql数据库

Mysql数据库是一种c/s结构的软件: 客户端/服务端, 若想访问服务器必须通过客户端(服务器一直运行, 客户端在需要使用的时候运行).

         客户单连接认证: 连接服务器, 认证身份: mysql.exe -hPup(-hlocalhost -P3306  -uroot -p)

         断开连接(释放资源: 服务器并发限制): exit/quit/\q

Mysql服务器对象

    将mysql服务器内部对象分成了四层: 系统(DBMS) -> 数据库(DB) -> 数据表(Table) -> 字段(field)

SQL基本操作

基本操作: CRUD

将SQL的基本操作根据操作对象进行分类 ,分为三类: 库操作, 表操作(字段), 数据操作

库操作

对数据库的增删改查.

        C:

             Create database 数据库名字 [库选项];(可以用中文,但是必须把数据库类型改 set names GBK)

库选项(opt文件): 用来约束数据库, 分为两个选项

字符集设定: charset/character set 具体字符集(数据存储的编码格式): 常用字符集: GBK和UTF8

校对集设定: collate 具体校对集(数据比较的规则)

R :

1.  查看所有数据库: show databases;

2.  查看指定部分的数据库: 模糊查询      Show databases like ‘pattern’;       — pattern是匹配模式

                                                     pattern      %: 表示匹配多个字符     _: 表示匹配单个字符

3.  查看数据库的创建语句: show create database 数据库名字;

      U:

数据库名字不可以修改.

  数据库的修改仅限库选项: 字符集和校对集(校对集依赖字符集)

Alter database 数据库名字 [库选项];

Charset/ character set [=] 字符集

Collate 校对集

D:

Drop database 数据库名字;

表操作

对数据表的增删改查.

操作前一定要指定哪个数据库!!【①Create table 数据库名.表名();  ②进入数据库环境: use 数据库名字;

        C:        

Create table [if not exists] 表名(

字段名字 数据类型,

字段名字 数据类型     — 最后一行不需要逗号

)[表选项];

表选项: 控制表的表现

      字符集: charset/character set 具体字符集;  — 保证表中数据存储的字符集

      校对集: collate 具体校对集;

      存储引擎: engine 具体的存储引擎(innodb和myisam)

R :

1.  查看所有表: show  tables;

2.  查看指定部分的表: 模糊查询      Show tables like ‘pattern’;       — pattern是匹配模式

                                                     pattern      %: 表示匹配多个字符     _: 表示匹配单个字符

3.  查看表的创建语句: show create tables 表名;

       4.  查看表结构: 查看表中的字段信息

Desc/describe/show columns from 表名;

      U:

修改表本身和修改字段

修改表本身

表本身可以修改: 表名和表选项

①修改表名: rename table 老表名 to 新表名;

②修改表选项: 字符集,校对集和存储引擎

Alter table 表名表选项 [=] 值;

修改字段

字段操作很多: 新增, 修改, 重名, 删除

  新增字段

Alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];

位置: 字段名可以存放表中的任意位置

First: 第一个位置

After: 在哪个字段之后: after 字段名; 默认的是在最后一个字段之后

修改字段: 修改通常是修改属性或者数据类型

Alter table 表名 modify 字段名 数据类型 [属性] [位置];

重命名字段

Alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置];

删除字段

Alter table 表名 drop 字段名;

D:

Drop table 表名1,表名2…; — 可以一次性删除多张表

数据操作

对数据的增删改查.

        C:            

Insert into 表名 values(值列表)[,(值列表)];      — 可以一次性插入多条记录

Insert into 表名 (字段列表) values (值列表)[,(值列表)];

R :

Select */字段列表 from 表名 [where条件];

       U:

Update 表名 set 字段 = 值 [where条件];       –建议都有where: 要不是更新全部

D:

Delete from 表名 [where条件];

校对集问题

校对集: 数据比较的方式

校对集有三种格式

_bin: binary,二进制比较, 取出二进制位,一位一位的比较, 区分大小写

_cs: casesensitive,大小写敏感, 区分大小写

_ci: caseinsensitice,大小写不敏感,不区分大小写

 

查看数据库所支持的校对集:show collation;

校对集应用: 只有当数据产生比较的时候,校对集才会生效.

    原文作者:SQL
    原文地址: https://blog.csdn.net/github_38854224/article/details/78460620
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞