当前位置:   article > 正文

数据库——SQL语句与数据库设计_使用sql语句创建数据库和数据表,属于数据库设计中的 阶段

使用sql语句创建数据库和数据表,属于数据库设计中的 阶段

SQL分类

MySQL中可以将SQL分为4大类

DDL数据定义语言,create创建、alter修改、drop删除、truncate截断

DML数据操纵语言,insert插入、update修改、delete删除

DQL数据查询语言,select查询

DCL数据控制语言,grant授权、revoke回收权限


DDL数据定义语言

用于定义数据库对象的操作语句

  1. create database test default character set utf8;
  2. -- 创建数据库,名称为test,默认 编码字符集为utf-8 -- 如果数据库已经存在,则再次创建会报错
  3. create database if not exists test default character set utf8;
  4. -- 如果test已经 存在则不执行创建操作,同时不会报错

删除操作 drop database 数据库名称;

查看所有数据库 :show databases;

切换当前数据库:use 数据库名称;

数据表的操作

创建数据表基本语法:

create table 数据表的名称(数据列的名称 数据类型 约束规则,......)engine= 存储引擎名称 default charset utf8;

  1. create table tb_student(
  2. -- 这里可以加入if not exists表示不存在时才进行创建。注意 在一个数据库中的表名称不允许重复。按照阿里的规范,要求基表名称必须使用【tb_表】
  3. id bigint primary key auto_increment,
  4. name varchar(20) not null,
  5. sex boolean default 1 -- 在mysql数据库中有一些属性数据类型的别名
  6. ) engine=innodb default charset utf8;
  7. -- 实际上从MySQL5.5开始默认存储引擎就是 innodb,但是一般建议还是添加上存储引擎的设置

查看表中的列定义 :desc tb_student;

 查看具体的列定义show create table tb_student;


表操作DML/DQL

DML数据操纵语言,用于对数据库表中的记录进行更新操作,插入insert、修改update、删除 delete

DQL数据查询语言,用于对数据库表中的记录进行查询操作,select

增加数据

语法1inser into 表名称 values(1,2,....) 用于针对表中的每个列指定对应的值

语法2insert into 表名称(列名1,列名2,...) values(1,2,...) 人为指定列插入数据,注意两个括号一一对应,一般用于不是每个列都需要插入数据时使用。

修改数据

语法1update 表名称 set 列名1=1,列名2=2,... 。修改表中所有行的指定列对应的值,等号后面可以是一个表达式进行计算。

语法2update 表名称 set 列名1=1,列名2=2,... where 条件 用于修改表中满足条件的行指定列的值;

删除数据

语法1delete from 表名称; 删除表中所有数据。例如 delete from tb_users;

语法 2 delete from 表名称 where 条件 ; 删除表中满足条件的所有行。
整表删除操作
方法 1 delete from tb_student ; 可以删除表中的所有数据,属于 DML 语句,所以支持事务,支持撤销回滚操作,但是大量的删除数据时需要记录日志,所以执行效率很低。优势在于可以反悔,缺点在于记录日志需要时空代价
方法 2 truncate table tb_student ; 表的截断操作,可以删除表中的所有数据,属于 DDL 语句,没有事务,不会记录操作日志,所以大量删除数据时执行效率高。优势是执行效率,缺点在于没有反悔的机会。底层原理就是创建一个相同的空表

DQL(select)

  1. select [all/distinct] <目标表达式>,<目标表达式>,...
  2. from 表名称或者视图名称,表名称或者视图名称,... -- 在MySQL中允许查询语句中没有from
  3. where 条件语句
  4. group by 分组条件 [having 条件表达式]
  5. order by 排序条件 [asc/desc]
  6. limit ...

1、查看表中所有数据 select * from tb_users ,这里的星号*是个通配符,表示获取所有列的值

2、带条件查询。

3、非空或者空值判断,注意不能使用=null或者!=null的写法,应该使用is null或者is not null

4、字符串比较

5、选择表中的若干元组


数据库设计

数据库设计是指对于一个给定的应用环境,构建最优的数据库模型,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的信息要求和处理要求

常见的数据库设计方法:

试凑法:凭借的是开发经验

规范化法:3NF和反范式

CAD计算机辅助设计

按照规范设计可以将数据库的设计过程分为6个阶段:系统需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。

需求分析:全面了解设计的存储需求,保证数据的安全性和完整性。里程碑是需求分析文档

概念设计:根据需求了解各个需要存储的实体以及实体之间的关系,里程碑是ER

逻辑结构设计:设计数据的逻辑存储结构,根据数据实体之间的逻辑关系解决数据冗余和数据维护异常,里程碑是模式定义

物理结构设计:根据具体使用的数据库特点进行表结构设计,里程碑是建库建表的SQL语句

维护优化:根据实际情况,对索引、存储结构等相关方面进行优化


通用SQL函数

语法 select 函数名称(); 或者 select 函数名称(列名称,其它参数) from 表名称 ,在mysqlfrom子句不是必须的

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/278466
推荐阅读
相关标签
  

闽ICP备14008679号