数据库基础

本文介绍了数据库的基础知识,包括存储方式、数据库历史、关系型数据库结构以及MySQL的部署和使用。详细讲解了SQL命令分类,如DDL、DML、DQL和DCL,并探讨了列约束、自增列和简单查询操作。此外,还讨论了字符编码和解决MySQL中文乱码的方法。
摘要由CSDN通过智能技术生成

数据库基础

1.存储数据库的方式有哪些

特定文件/内存/第三方云服务器/数据库服务器

2.什么是数据库

数据库是按照一定的形式组织存储数据,目的是为了更好的操作数据--增删改查

(1)数据库的发展历史

 网状数据库 -> 层次型数据库 -> 关系型数据库 -> (非关系型数据库(NoSQL)

(2)关系型数据库逻辑结构

Server -> Database -> Table -> Row -> Column

服务器     数据库     数据表   行      列

3.mysql数据库

  服务器端负责存储、维护数据 —— 银行数据库服务器 

(1)mysql部署结构

   c:/xampp/mysql/bin/mysqld.exe   启动文件

   占用端口3306

  客户端负责连接服务器,对数据进行增删改查 —— ATM机

   c:/xampp/mysql/bin/mysql.exe

 (2)使用客户端连接服务器端

  mysql.exe  -h127.0.0.1  -P3306  -uroot  -p

   -h   host   IP地址/域名    127.0.0.1/localhost  (指向自己电脑)

   -P   port   端口号

   -u   user   用户名    root 管理员账户

   -p   password   密码    xampp下root密码为空

  mysql  -uroot    简写形式 

连接命令的结尾不能加分号,否则是游客。

 (3)常用的管理命令

  quit;   退出连接

  show  databases;   显示当前服务器下所有的数据库

所有的管理命令都以英文的分号结尾

 (4)标准的SQL命令分类

定义数据(DDL):create/drop/alter(修改)

操作数据(DML):insert/delete(删除)/update(修改数据)

查询数据(DQL):select

控制权限(DCL):grant(授权)/revoke(收权)

4.列约束

 (1)默认值约束 —— default

  在插入值的时候使用默认值

  可以使用default来设置默认值和应用默认值

  具体应用默认值有两种方式

  insert  into  laptop  values(4, ‘小米Air’, default, ....);

  insert  into  laptop(lid,title)  values(5,’小新700’);  

  给特定的列提供值,没有出现的列自动应用默认值

 (2)检查约束 —— check

  称作自定义约束,可以自己添加约束条件

  create  table  student(

    score  tinyint  check( score>=0  and  score<=100 )

);

  mysql不支持检查约束,会极大的影响数据的插入速度,后期使用js代替。

 (3)外键约束

  声明了外键约束的列,取值范围会在另一个表的主键列

  注意事项:外键列要和对应的另一个表主键列的列类型保持一致

  foreign  key(外键列)  references  另一个表(主键列)

 

5.自增列

 auto_increment:自动增长,在插入值的时候只需要赋值为null,就会自动获取最大值然后加1插入。

 注意事项:

   自增列必须添加在整数形式的主键列

   允许手动赋值

6.简单查询

 (1)查询特定的列

  示例:查询出所有员工的编号和姓名

  select  eid,ename  from emp;

 (2)查询所有的列

  select  eid,ename,sex,birthday,salary,deptId  from emp;

  select * from emp;

 (3)给列起别名

  示例:查询出所有员工的编号和姓名,使用汉字别名

  select  eid as 编号,ename as 姓名  from emp;

as关键字可以省略,保留即可。

给列起别名的目的是为了简化列名称。

 (4)显示不同的记录

  示例:查询出都有哪些性别的员工

  select  distinct sex  from  emp;

 (5)查询时执行计算

  示例:计算 1+3+5+8*7.4+5*4.39

  select  1+3+5+8*7.4+5*4.39;

 (6)查询结果排序

  示例:查询出所有的部门,结果按照部门编号升序排列

  select * from dept order by did asc;  #ascendant 升序的

  示例:查询出所有的部门,结果按照部门编号降序排列

  select * from dept order by did desc;  #descendant  降序

按照字符串排序是按照字符的编码排列

不加排序规则,默认是按照升序排列

  示例:查询出所有的员工,结果按照工资的升序排列,要求男员工显示在前女员工显示在后

  select * from emp order by sex desc, salary;

 (7)条件查询

  示例:查询出编号为5的员工所有列

  select * from emp where eid=5;

>  <   >=  <=   =   !=(不等于)

and (&&)  并且,两个条件都满足

or (||)  或者,两个条件满足其一

between  and   在两者之间

not  between  and  不在两者之间

is  null   值为null

is  not  null   值不为null

in(  )   满足其中一个

not  in(  )    都不满足

 (8)模糊条件查询

  示例:查询出姓名中含有字母o的员工有哪些

  select * from emp where ename like '%o%';

%  匹配任意个字符   >=0

_  任意一个字符      =1

7.计算机如何存储字符

 (1)如何存储英文字符

  ASCII:总共有128个,对所有的英文字母及其符号进行了编码

  Latin-1:总共有256个,对欧洲字符进行的编码,兼容ASCII

 (2)如何存储中文字符

  GB2312:对常用的6千多汉字进行了编码,兼容ASCII

  GBK:对2万多汉字进行了编码,兼容GB2312

  BIG5:台湾繁字体编码

  Unicode:对世界上主流国家常用的语言进行了编码,兼容ASCII,具体存储方案utf-8,utf-16,utf-32

 (3)mysql中文乱码产生的原因

   mysql默认使用Latin-1编码,没有对中文进行编码

 (4)解决mysql中文乱码

   脚本文件另存为的编码为utf-8

   客户端连接服务器端的编码为utf-8

   服务器端创建数据库使用的存储编码为utf-8

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值