栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库基本操作

数据库基本操作

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)中的全部元素,过滤掉左表的独有元素。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/326807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号