> 文档中心 > 数据库的那些事

数据库的那些事

想要学好数据库首先必须掌握以下几个概念
**数据**是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。


**数据:**数据是数据库存储的基本对象,是描述现实世界中各种具体事物的抽象概念的、可存储并具有明确意义的符号记录。


**数据库管理系统:**数据库管理系统是数据库的核心部分,是位于数据库和操作系统之间的一层数据库管理软件,它为用户或者应用程序提供访问数据库的方法,包括数据库定义、建立、查询、更新以及各种数据控制等。。。。。。


数据的抽象过程:
在这里插入图片描述


数据库的三要素数据结构、数据操作、数据的完整性约束


数据模型的数据结构:
**1)**关系:一个关系就是一张规范的二维表
**2)**原则:表中的一行即为一个元组,又称为记录
**3)**属性:表中的一列即为一个属性,又称为字段
**4)**码(Key):码称为关键字或关键码


了解了上面的内容,下面我们来了解一下数据库的基本语句。
**
在这先说一句,只有数据库语言不区分大小写,其他语言基本上都区分大小写。

数据库创建与删除:

**
1.1、创建conpy数据库

create database conpy;

1.2、 选择数据库
use 数据库名;


1.2.1、选择数据库 conpy

use conpy;

1.3、删除数据库conpy

drop database conpy;

**

基本表的定义、删除和修改

**
2.1、创建表 work

create table work(code decimal,name varchar,price decimal,);

括号里的是对应的属性和属性的格式(有char、varchar、decimal、int等等)


2.2、创建表并设置约束和默认值

create table dept_c(id int auto_increment primary key,ordno decimal,s_code decimal,c_code decimal,ordate datetime default current_timestamp,price decimal(8,2))

将id列设置为自增类型字段,默认自增为一,自增加一。同时ordate类似于创建一个表的副本。


2.3、利用子查询来创建表

create table conpy select * from dept;

利用select查询dept的所有属性和值来创建表conpy,类似于对表内容进行备份。


2.4、修改表的结构
修改表结构,简而言之就是对表中的列进行增加、删除和修改


2.4.1、dept_c中增加一个新的列telephone

alter table dept_c add telephone varchar(11);

2.4.2、对dept_c中的telephone列进行修改,类型不变,长度改为13,默认值为1-1011


alter table dept_c modify telephone varchar(13) default '1-1011';

2.4.3、从一个特定表中删除特定的列

alter table dept_c drop telephone;

注意alter table语句一下子只能删除一句,且删除的语句无法还原


2.5、截断表和删除表
2.5.1、截断表 (一下子删除不需要的表)

truncate table dept_c;

2.5.2、删除表

drop table dept_c;


**

数据查询

**
3、基本查询
3.1、查询表中的全部数据

select * from dept;

desc表示按“表排序字段名”倒序显示,不加desc,表示正序显示
在这里提个问题:
例如,表中有一列数据是数字型的(int型),数据库中一般默认升序,如果要查询表中数据按照降序排列因该怎么办?
答:这时候可以引入order by desc,默认的排序是升序的,添加desc就变成j降序了。

select * from dept order by detpno desc ename;

查询所有数据按照emp那一列数据顺序输出


3.2、查询指定的列

查询dept表中的部门编号deptno和部门名称dname信息

select deptno,dname from dept;

3.3、去除重复的行

当提取到所需要的列的时候遇到重复的行怎么办呢,这时候就要引入distinct来去除重复的行了

查询dept表中的部门编号deptno和部门名称dname信息并去除重复的行

select distinct deptno,dname from dept;

3.4、为名字太长的列起别名 as

select empno as 编号,dname as 姓名 from emp;

将emp表中的empno列起名为编号,dname列起名为姓名。从起名可以很好的学习数据库,对英语不好的人很友好。


3.5、使用while子句指定查询条件
在这里插入图片描述
3.5.1、通过国家名查询信息

select * from emp where county="中国";

通过国家名,查询国家名为中国的 表中的全部信息。 在数据库中指全部属性(每一列就是一个属性)。*


3.5.2、and & or 查询

select * from emp where deptno ="10" and (sal >100 or job="开发工程师");

查询emp表中部门为10、工资高于100或岗位为 开发工程师 的所有员工的所有信息。


3.5.2、between…and 查询

select * from emp where sal between 1000 and 2000; 

查询emp表中工资在1000到2000的所有人的所有信息


3.5.3、字符串模糊查询

like '所需查询的字符串'

注意:在使用通配符%、_ 时。%用于表示0个或者任意多个字符。_表示任意一个字符。

select * from emp whrer ename like 'K%' or ename '_C%';

查询姓名以K开头或姓名第二个字母为C的员工。



3.6、使用order by 子句对查询结果排序

select * from emp where sal between 1000 and 2000 order by deptno desc ename;





今天就先写到这吧