数据库基本操作

1.增

1.创建一个名为text的数据库,注意``符号是键盘左上角Esc键下方的符号,而不是逗号。(使用SQLyog创建列表的话,记得刷新列表!!!)

格式create database 数据库名

CREATE DATABASE `text`

2.创建表格

CREATE TABLE IF NOT EXISTS `student`(
`id` INT(6) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(10) NOT NULL DEFAULT '佚名' COMMENT '名字',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
PRIMARY KEY(id)
 )ENGINE=INNODB DEFAULT CHARSET=utf8

NOT NULL 表示所填这个元素的内容不能为空

DEFAULT 表示这个元素的默认值

COMMENT 表明这个元素需要填写的值,提示

PRIMARY KEY(id) 将id元素设为主键,一般一个表只有唯一一个主键

ENGINE=INNODB DEFAULT CHARSET=utf8 设置引擎为INNODB ,文档格式为UTF-8

IF NOT EXISTS 判断是否存在


主键的作用:数据库的主键指的是一个列或多个列组合,其值能唯一标注表中的每一行。主键可以用来表示一个精确定位的特定行,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或者删除表中特定的行很困难。如果有主键来约束行记录的唯一性后,就可以用主键来解决问题。


引擎的作用:存储引擎是服务于存储服务的,通过存储引擎将数据保存。就跟计算机如何将数据保存到磁盘中一样,在数据库中,存储引擎的意思就是通过何种引擎将数据存储在磁盘中。


3.向表中插入语句

格式:insert into 表名 (字段一字段二,...) values('值1','值二',...),('值1','值二',...)

注意:数据与字段之间一定要对应。

INSERT INTO `student`(`id`,`name`)VALUES('001','张三'),('002','李四'),('003','王五')

2.删

1.删除表中字段

格式:ALTER TABLE 表名 DROP 字段名

ALTER TABLE student DROP age

2.删除数据

格式:DELETE FROM 表名 TRUNCATE TABLE 表名

DELETE FROM `student` 
TRUNCATE TABLE `student`

3.改

1.修改表

格式:ALTER TABLE 数据库名 MODIFY 表名 列属性

格式:ALTER TABLE 数据库名 CHANGE 旧表名 新表名 列属性

ALTER TABLE student MODIFY  sex VARCHAR(10)
ALTER TABLE student CHANGE  sex  age INT(10)

2.修改表中字段对应的值

格式:update 表名 set 想修改的字段名='新值' where 约束条件

UPDATE `student` SET `name`='小张' WHERE id=1

注:约束条件是必要的,如若不加上约束条件,那么整张表指定的字段值都将会被修改,如若有多个约束条件可以用and和or连接

4.查(重点)

1.基础查询

select语句

--显示出student表中的所有信息--
SELECT * FROM student
​
​
--只显示出student表中部分信息--
SELECT `studentno`,`loginpwd`,`address`,`borndate`  FROM student

一般情况下,我们为了表格中信息更易理解。通常会在select语句中为提取出的字段取别名。用as关键词即可,as可以省略,中间为空格。

 SELECT `studentno` 学号,`loginpwd`  密码,`address` 家庭地址,`borndate` 出生日期 FROM student

CONCAT连接字符串函数联用:

使用方法:

 SELECT CONCAT('学号:',`studentno`) 学号,`loginpwd`  密码,`address` 家庭地址,`borndate` 出生日期 FROM student

去重:(去除重复数据)

关键词:DISTINCT

 --过滤掉学时相同的科目---
 SELECT DISTINCT  `classhour` FROM SUBJECT

2.模糊查询:

1.关键词:like

 --查询名字为两个字的姓李的人--
 SELECT studentname FROM student WHERE studentname LIKE '李_'
 
 
 --查询名字为三个字的姓练的人--
 SELECT studentname FROM student WHERE studentname LIKE '练__'
 
 --查询名字中带“娜”字的人--
 SELECT studentname FROM student WHERE studentname LIKE '%娜%'

注:一个下划线"_"代表一个字符,而一个"%"代表不确定数量的字符。

2.关键词:in

--查询地址在“北京朝阳”的学生--
SELECT studentname,sex FROM student WHERE address IN('北京朝阳')

注:in 后面只能跟具体的值,而不能是模糊的值!也就是说,它与like不同,不能查询一定范围的值,而是只能是特定的值,否者结果与预期相悖。

3.关键词:is null (is not null)

  --查询没有生日的同学--
  SELECT studentname,sex FROM student WHERE borndate IS NULL 
  
  
  --查询有生日的同学--
 SELECT studentname,sex, borndate FROM student WHERE borndate IS NOT NULL 

4.关键词:between

  --查询学号在1000到1004之间的学生,包括1000和1004-- 
  SELECT studentname,sex, borndate FROM student WHERE studentno BETWEEN 1000 AND 1004

3.联表查询:

首先简单介绍一下,数据库中的笛卡尔乘积: 笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join)。所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,表示两个表中的每一数据任意组合,上图中两个表连接即为笛卡尔积(交叉连接)

inner join:

SELECT s.studentno,studentname,sex,subjectno,studentresult 
FROM student s
INNER JOIN result r
WHERE s.studentno=r.studentno

注:都是取两者的交集部分,其余两者独有的部分被过滤掉。

left join:

SELECT s.studentno,studentname,sex,subjectno,studentresult 
FROM student s
LEFT JOIN result r
ON s.studentno=r.studentno

注:取左表(此处为student)中的全部元素,过滤掉右表的独有元素。

right join:

SELECT s.studentno,studentname,sex,studentresult 
FROM result r
RIGHT JOIN student s
ON s.studentno=r.studentno

注:取右表(此处为student)中的全部元素,过滤掉左表的独有元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL数据库有多种备份方法,以下是其中两种常用的备份方法: 1. 基于pg_dump命令的逻辑备份 逻辑备份是指备份数据库中的逻辑结构,例如表结构、数据等。pg_dump命令可以生成一个文本文件,其中包含了数据库的创建语句和数据插入语句,可以通过该命令进行备份和还原。备份命令如下: ``` pg_dump -h <host> -p <port> -U <username> -F c -b -v -f <backup_file_name> <database_name> ``` 其中,-h表示数据库所在的主机名或IP地址,-p表示数据库的端口号,-U表示连接数据库的用户名,-F表示备份文件的格式,-b表示备份时包含数据库的所有对象,-v表示备份时输出详细信息,-f表示备份文件的名称,<database_name>表示需要备份的数据库名称。 还原备份命令如下: ``` pg_restore -h <host> -p <port> -U <username> -d <database_name> <backup_file_name> ``` 其中,-h表示数据库所在的主机名或IP地址,-p表示数据库的端口号,-U表示连接数据库的用户名,-d表示需要还原的数据库名称,<backup_file_name>表示备份文件的名称。 2. 基于pg_basebackup命令的物理备份 物理备份是指备份数据库在磁盘上的实际文件。pg_basebackup命令可以进行物理备份,该命令会复制数据目录中的所有文件,并在备份时自动创建一个WAL(Write-Ahead Log)归档目录。备份命令如下: ``` pg_basebackup -h <host> -p <port> -U <username> -D <backup_directory> -Ft -z -P ``` 其中,-h表示数据库所在的主机名或IP地址,-p表示数据库的端口号,-U表示连接数据库的用户名,-D表示备份文件的目录,-Ft表示备份文件的格式为tar,-z表示备份文件使用gzip进行压缩,-P表示备份过程中在终端输出进度信息。 还原备份命令与pg_dump类似,可以使用pg_restore命令进行还原。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值