想学好数据库,从事有关数据库相关的工作,掌握本文所提供的命令是使用熟练使用数据库的基石

一、常用的指令

1.select

1.1 select...where

1.2 Select … order by ...升序ASC或降序DESC

1.3 Select … group by 按组分类

1.4 Select … join

2.count

3.delete

4.update

5.insert

6.BETWEEN...AND (在什么之间)和 IN( 集合)

7.is null(不为null值) 与 like(模糊查询)、distinct(去除重复值)

8.create

二、实际应用

思路: 创建库-创建表(设置主键)-输入数据-选取数据-退出数据库

2.1 创建库

//初始化表 ,4种初始化方式例如:

on
primary
(
name=Student4_dat1,
filename='E:\DataBase\Student4_dat1.mdf',       --主数据文件,起始大小100M,最大200M,超出100M后每次增加20M--
size=100mb,
maxsize=200,
filegrowth=20),(
name=Student4_dat2,
filename='E:\DataBase\Student4_dat1.ndf',         --次数据文件,同上--
size=100mb,
maxsize=200,
filegrowth=20
)
log on
(
name =Student4_log1,
filename='E:\DataBase\Student4_log1.ldf',          --日志文件,增长5%--
size=100mb,
maxsize=200,
filegrowth=5%
),
(
name =Student4_log2,
filename='E:\DataBase\Student4_log2.ldf',           --日志文件2,超出容量后每次增长20M--
size=100mb,
maxsize=200,
filegrowth=20
)

// 添加二级数据库

alter database Student(同上),

// 删除二级数据库
   DROP DATABASE name1,name2

// 修改数据库名称

(1)alter database name(原先数据库的名称)

modify name=name1(更改数据库的名称)

(2)exec sp_renamedn 'name','name1'

2.2创建表(定义表中类型和数量)

use  name

drop table if exists students ; // 删除之前用同样名称的表

create table students(

id int(3) //定义变量

name varchar(50) not null

学号 char(12) ,姓名 nchar(3) ,性别 nchar(1)

..

2.3 处理表中数据

创建表完成后,对表数据进行修改操作

2.3.1 输入数据(2是种输入方式,插入新的属性,补充属性数据)

// 插入新列

alter table student

add 联系电话 char(15) null

// 在表中插入数据(补充表中数据)

insert   student

values(‘’)  // 注意:括号里面的数据是创建表中设计的数据,用' ’隔开

2.3.2  修改数据(2种方式,格式更改和数据更改)

格式更改:

alter table student

alter coumn 列的名字  列的类型(字符长度)

例如:

alter table student alter column 联系电话 char(50)

数据更改:

UPDATE 表名 SET 列名=VALUE WHERE [条件]

例如:1.update 课程 set 学分=学分+1 where 课程类别='必修'

2.UPDATE `student` SET `studentname`='嘻嘻哈哈' WHERE `studentname`='万进进' AND sex='女'

2.3.3  查询数据* (难点)

查询的三种方式:基本查询,嵌套查询,联结查询

(1)基本查询

语句1: select *from  表名  where 列名=行值

where 的作用是按条件选取数值,有4种方法:前面都是 select *from 列名

between .. and

like   有2种表示方式下划线_和百分号%,下划线只能模糊1个字符,百分号可以是0个,也可以是多个字符

in 子句   字段内容是结果合集或者子查询中的内容

select 学号 , 课程编号 , 成绩 from 选课  where 课程编号  IN('C606','C607' ) 

is 子句 is null

select 的作用是选取目标表,主要有几种选取方式:

order by默认按升序排序,asc是升序,desc是降序
into子句:把查询的结果放入一个新建的表中
union将不同的查询数据结合起来,会自动的将重复的数据行删除
group by 将一个或多个列或者表达式的值将结果集中的行分成若干组
例如:select 课程编号 , MAX (成绩) as 最高分 from 选课 group by 课程编号 

group by 字句   having

(2)嵌套查询

语句:SELECT Sno,Sname,Sdept FROM Student WHERE Sdept IN( SELECT Sdept FROM Student WHERE Sname='刘晨'--; );

IN谓词后面的语句块中,结尾不需要添加分号
并且字符串都是用单引号来引用的,双引号会报错

in 相当于 =

扩展知识:

>ANY    大于子查询结果中的某个值
>ALL    大于子查询结果中的所有值
<ANY    小于子查询结果中的某个值
<ALL    小于子查询结果中的所有值
>=ANY    大于等于子查询结果中的某个值
>=ALL    大于等于子查询结果中的所有值
<=ANY    小于等于子查询结果中的某个值
<=ALL    小于等于子查询结果中的所有值
=ANY    等于子查询结果中的某个值
=ALL    等于子查询结果中的所有值(通常没有实际意义)
!=(或<>) ANY    不等于子查询结果中的某个值
!=(或<>) ANY    不等于子查询结果中的所有值

(3)联结查询(难)

SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的一个极为重要的组成部分。

代码编写:

(内连接)

where  条件= INTER  表 JOIN 表   ON  条件

例如:

SELECT vend_name,prod_name,prod_price FROM vendors,products WHERE vendors.`vend_id` = products.`vend_id` ORDER BY vend_name,prod_name;

等价于 SELECT vend_name,prod_name,prod_price
FROM vendors INNER JOIN products
ON vendors.`vend_id` = products.`vend_id`
ORDER BY vend_name,prod_name;

(内连接)  用自身表查询的数据找到自身

例如:

SELECT prod_id,prod_name FROM products WHERE vend_id = (SELECT vend_id FROM products WHERE prod_id = 'DTNTR')

等价于

SELECT p1.prod_id,p1.prod_name FROM products p1, products p2 WHERE p1.`vend_id` = p2.`vend_id` AND p2.`prod_id` = 'DTNTR';

(外连接) 分左外连接和右外连接,连接后处理包括检索后的表,还包括未检索的表,左外是选取左边全部加右边检索,右外是检索右边全部加左边检索,具体代码实例如下:

SELECT customers.`cust_id`,orders.`order_num` FROM customers LEFT JOIN orders ON customers.`cust_id` = orders.`cust_id`;

也就是从

表 JOIN 表ON 变成

表  LEFT JOIN 表 ON  条件

表 RIGHT JOIN 表ON 条件

扩展查询方法:组合查询

要点:

1. UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔(因此,如果  组合4条SELECT语句,将要使用3个UNION关键字)。
2.UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的次序列出)。
 3.列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型(例如,不同的数值类型或不同的日期类型)。
 4.UNION从查询结果集中自动去除了重复的行

5. 相当于用where  IN  进行表的连接补充,若想呈现所有的行,必须用 UNION ALL 而不是UNION

SELECT vend_id,prod_id,prod_price
FROM products
WHERE prod_price <= 5
UNION 
SELECT vend_id,prod_id,prod_price
FROM products
WHERE vend_id IN(1001,1002);
 相当于:

SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 OR vend_id IN(1001,1002);

三、总结

使用数据库时还会遇到很多小问题,下一章将会讲数据库在使用过程中遇到的问题以及如何高效的解决题目

数据库常用的命令讲解相关推荐

  1. Mysql数据库常用的命令大全

    本文转自https://blog.csdn.net/poloyzhang/article/details/41142533MYSQL常用命令 1.导出整个数据库 mysqldump -u 用户名 -p ...

  2. 数据库常用对象概念讲解

    数据库对象是数据库的组成部分,常见的对象有:表.索引.视图.图表.默认值.规则.触发器.存储过程.用户.序列等. 表(Table) 数据库中的表与日常生活中使用的表格类似,由行(Row)和列(Colu ...

  3. Oracle操作数据库常用名命令(set linesize,pagesize,conn命令,feedback命令)

    安装Oracle时要注意以下:关闭防火墙,断开网络. 在安装Oracle时,要选上:创建带样本的数据库,如果不选上,就不会有大数据用户出现. 通过DBCA可以创建数据库,如果想连接自己创建的数据库,可 ...

  4. oracle查看数据库是否恢复成功_【新书连载】测试工程师核心开发技术(9)—数据库常用管理命令...

    3.2.4 确认安装 到目前为止,Oracle已经安装成功并且为其创建了数据库,现在就需要确认一下刚才安装的Oracle数据库管理系统能否正常工作.我们按照如下4个步骤来进行验证. 1.检查Oracl ...

  5. 配置mysql命令_Mysql 数据库常用配置命令

    1.查看mysql数据库默认编码: mysql> show variables like "character%"; +--------------------------+ ...

  6. MongoDB数据库常用SQL命令

    1.db.collection.updateMany() 修改集合中的多个文档. db.getCollection('user').find({"pId":"3332a5 ...

  7. mysql数据库常用备份、恢复命令

    转自:http://blog.csdn.net/bxbx258/article/details/2945832 还原一个数据库:mysql -h localhost -u root -p123456 ...

  8. mysql还原数据表的语句_MYSQL数据库常用备份及恢复语句

    备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求. mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件 备份MySQL数据库为带删除表的格式,能够让该备 ...

  9. MySQL 数据库常用命令—where like union 排序 分组 连接

    引言 本篇博客对 MySQL 数据库的一些命令进行分享. where 语句 基本语法规则: select field1, field2,...fieldN from table_name1, tabl ...

最新文章

  1. linux内核dentry结构学习
  2. make -j 的并行任务个数选择
  3. 思科透露其“星舰”计划 旨在主导云服务器自动化领域
  4. Revit API取得变量的内参名称
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1079:计算分数加减表达式的值
  6. 【机器视觉】 dev_inspect_ctrl算子
  7. 什么是epoll的水平触发与边缘触发?两段代码彻底理解
  8. FastDFS环境搭建
  9. pymysql连接数据库
  10. 数藏2.0故事中,元境开启“元宇宙丝绸之路”
  11. NeHe OpenGL教程 第十三课:图像字体
  12. 电石炉技术的发展及电石炉尾气解决方案
  13. python 拼音识别_python识别一段由字母组成的字符串是否是拼音
  14. 计算机视觉的应用,计算机视觉新手指南
  15. TypeScript实现归并排序
  16. 【射影几何05】齐次坐标系(Homogeneous coordinates)
  17. parallels desktop cracked
  18. 【实战】聊聊幂等设计
  19. three.js之高级几何体-使用二元操作组合网格(vue中使用three.js38)
  20. 快速解决Ubuntu镜像在官网下载速度很慢的方法

热门文章

  1. element ui路由配置文件_element-ui使用导航栏跳转路由的用法详解
  2. 【进制运算】计算机的小任性——我说0代表正数,1代表负数,就是对的!
  3. iOS开发钥匙串保存信息
  4. 小白教你制作3D旋转相册
  5. 阿里云服务器被攻击的危害有多大
  6. Visual Studio2019完全卸载方法
  7. 怎么快速无损地把avi转换mov格式?简单3步就能搞定!
  8. 2021年全球强化采油表面活性剂收入大约202.3百万美元,预计2028年达到297.1百万美元
  9. java弱签名视为未签名,[java 被视为未签名]QQ幸福签名:你所愿,我终于将你视为平常,连看你一眼都觉得多余。...
  10. R语言时间序列基础库zoo