想要学好数据库首先必须掌握以下几个概念
数据库
是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
数据:
数据是数据库存储的基本对象,是描述现实世界中各种具体事物的抽象概念的、可存储并具有明确意义的符号记录。
数据库管理系统:
数据库管理系统是数据库的核心部分,是位于数据库和操作系统之间的一层数据库管理软件,它为用户或者应用程序提供访问数据库的方法,包括数据库定义、建立、查询、更新以及各种数据控制等。。。。。。
数据的抽象过程:
数据库的三要素:
数据结构、数据操作、数据的完整性约束
数据模型的数据结构:
**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;
今天就先写到这吧