文章目录

  • 数据库介绍
    • 数据库概述
      • 什么是数据库
    • 数据库管理系统
  • SQL
    • 作用
    • 分类
    • 语法
  • 数据库操作
    • DDL
      • 操作库
        • 创建数据库
        • 查看数据库
        • 修改数据库
        • 删除数据库
        • 使用数据库
      • 操作表
        • 创建表
        • 查看表
        • 修改表
        • 复制表
          • 创建一张同样的表
          • 将⼀张已经存在的表中的数据复制到另一张表中
        • 更新表
        • 删除表
    • DML
      • 插入记录
        • 插入全部字段
        • 插入部分数据
      • 更新记录
      • 删除记录
    • DQL

数据库介绍

数据库概述

什么是数据库

 1、是一个存储数据的仓库。
 2、本质上是⼀个文件系统,还是以文件的方式存在服务器的电脑上的。
 3、 所有的关系型数据库都可以使⽤通⽤的SQL语句进⾏管理的DBMS (DataBase Management System)。

数据库管理系统

 数据库管理系统(DataBase Management System,DBMS)
 指⼀种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统⼀管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

SQL

 SQL的全称是:Structured Query Language,结构化查询语⾔。

作用

 1、 是⼀种所有关系型数据库的查询规范,不同的数据库都支持。
 2、 通用的数据库操作语言,可以用在不同的数据库中。
 3、 不同的数据库 SQL 语句有⼀些区别(方言)。

分类

 1、Data Definition Language (DDL 数据定义语言), 如:建库建表
 2、Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操作增删改。
 3、Data Query Language(DQL 数据查询语言),如:对表中的查询操作。
 4、Data Control Language(DCL 数据控制语言),如:对用户权限的设置。

语法

1、每条语句以分号结尾。
2、 SQL 中不区分大小写关键字中认为大写和小写是⼀样的。(但是字符串中是区分大小写的)
3、三种注释方式:

注释使用方法 说明
- - 注释内容 - - 后面必须加空格
/*
注释内容
*/
多行注释
# 注释内容 这是MySQL独有的注释方式

数据库操作

DDL

操作库

创建数据库

 创建数据库:
  CREATE DATABASE 数据库名;
 判断数据库是否已经存在,不存在则创建数据库:
  CREATE DATABASE IF NOT EXISTS 数据库名;
 创建数据库并指定字符集:
  CREATE DATABASE 数据库名 CHARACTER SET 字符集;

如:

-- 直接创建数据库
create database db1;-- 判断是否存在,如果不存在则创建数据库
create database if not exists db2;-- 创建数据库并指定字符集为 gbk
create database db3 default character set gbk;
查看数据库

 查看所有的数据库
  show databases;
 查看某个数据库的定义信息
  show create database db3;
  show create database db1;

修改数据库

 修改数据库默认的字符集
  ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
具体操作:

-- 将db3数据库的字符集改成utf8
alter database db3 character set utf8;
删除数据库

 删除数据库的语法:
  DROP DATABASE 数据库名;
具体操作:

-- 删除db2数据库
drop database db2;
使用数据库

 查看正在使⽤的数据库
  SELECT DATABASE(); # 使⽤的⼀个mysql中的全局函数
 使⽤/切换数据库
  USE 数据库名;
具体操作:

-- 查看正在使⽤的数据库
select database();
-- 改变要使⽤的数据库
use db4;

操作表

前提:先使用某个数据库.

创建表

创建表的格式:

CREATE TABLE 表名 (字段名 1 字段类型 1,字段名 2 字段类型 2
);

关键字说明:

关键字 说明
create 创建
table

具体操作:

-- 创建student表包含id,name,birthday字段
create table student (id int, -- 整数name varchar(20), -- 字符串birthday date -- ⽣⽇,最后没有逗号
);

MySQL数据类型:

查看表

 查看某个数据库中的所有表:
  SHOW TABLES;
 查看表结构:
  DESC 表名;
 查看创建表的SQL语句:
  SHOW CREATE TABLE 表名;

具体操作:

-- 查看day21数据库中的所有表
use day21;
show tables;
-- 查看student表的结构
desc student;
修改表

 添加表列 ADD:
  ALTER TABLE 表名 ADD 列名 类型;
具体操作:

-- 为学⽣表添加⼀个新的字段remark,类型为varchar(20)
alter table student add remark varchar(20);

 修改列类型 MODIFY:
  ALTER TABLE 表名 MODIFY 列名 新的类型;
具体操作:

-- 将student表中的remark字段的改成varchar(100)
alter table student modify remark varchar(100);

 修改列名 CHANGE:
  ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
具体操作:

-- 将student表中的remark字段名改成intro,类型varchar(30)
alter table student change remark intro varchar(30);

 删除列 DROP:
  ALTER TABLE 表名 DROP 列名;
具体操作:

-- 删除student表中的字段intro
alter table student change remark intro varchar(30);

 修改表名:
  RENAME TABLE 表名 TO 新表名;
具体操作:

-- 将学⽣表student改名成student2
rename table student to student2;

 修改字符集 character set:
  ALTER TABLE 表名 character set 字符集;
具体操作:

-- 将student2表的编码修改成gbk
alter table student2 character set gbk;
复制表
创建一张同样的表

 语法:
  CREATE TABLE 新表名 LIKE 旧表名;
具体操作:

-- 创建s1表,s1表结构和student表结构相同
create table s1 like student;
desc s1;
将⼀张已经存在的表中的数据复制到另一张表中

 将表名2中的所有的列复制到表名1中:
  INSERT INTO 表名 1 SELECT * FROM 表名 2;
 只复制部分列:
  INSERT INTO 表名 1(列 1, 列 2) SELECT 列 1, 列 2 FROM student;
具体操作:

-- 创建 student2 表,student2 结构和 student 表结构⼀样
drop table student2;
create table student2 like student;
-- 将 student 表中的数据添加到 student2 表中
insert into student2 select * from student;
-- 如果只想复制 student 表中 name,age 字段数据到 student2 表中,两张表都写出相应
的列名
insert into student2 (name,age) select name,age from student;
select * from student2;
更新表
UPDATE 表名 SET 列名=值 [WHERE 条件表达式]
# UPDATE: 需要更新的表名
# SET: 修改的列值
# WHERE: 符合条件的记录才更新
# 你可以同时更新⼀个或多个字段。
# 你可以在 WHERE ⼦句中指定任何条件。

不带条件修改数据:
UPDATE 表名 SET 字段名=值; -- 修改所有的⾏
带条件修改数据:
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
具体操作:

-- 不带条件修改数据,将所有的性别改成⼥
update student set sex = '⼥';
-- 带条件修改数据,将 id 号为 2 的学⽣性别改成男
update student set sex='男' where id=2;
-- ⼀次修改多个列,把 id 为 3 的学⽣,年龄改成 26 岁,address 改成北京
update student set age=26, address='北京' where id=3;

注意:如果update和delete不能执行,需要修改数据库安全模式
SET SQL_SAFE_UPDATES = 0;

删除表

 直接删除表:
  DROP TABLE 表名;
 判断表是否存在,如果存在则删除表:
  DROP TABLE IF EXISTS 表名;
具体操作:

-- 直接删除表 s1 表
drop table s1;
-- 判断表是否存在并删除 s1 表
drop table if exists `create`;

区别:
 与直接删除的区别:如果表不存在,不删除,存在则删除。

DML

 用于对表中的记录进行增删改操作。

插入记录

INSERT [INTO] 表名 [字段名] VALUES (字段值);
# INSERT INTO 表名:表示往哪张表中添加数据
# (字段名 1, 字段名 2, ...):要给哪些字段设置值
# VALUES (值 1, 值 2, ...):设置具体的值
插入全部字段
-- 所有的字段名都写出来
INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3...) VALUES (值 1, 值 2, 值 3);
-- 不写字段名
INSERT INTO 表名 VALUES (值 1, 值 2, 值 3...);
插入部分数据

INSERT INTO 表名 (字段名 1, 字段名 2, ...) VALUES (值 1, 值 2, ...);

 注意:没有添加数据的字段会使用 NULL

更新记录

具体操作:
 向学生表中,插入部分列:

insert into student (id,name,age,sex) values (1, '孙悟空', 20, '男');
insert into student (id,name,age,sex) values (2, '孙悟天', 16, '男');

 向表中插入所有字段:

-- 插⼊所有列
insert into student values (3, '孙悟饭', 18, '男', '⻳仙⼈洞中');
-- 如果只插⼊部分列,必须写列名
insert into student values (3, '孙悟饭', 18, '男');
select * from student;

删除记录

DELETE FROM 表名 [WHERE 条件表达式]
# 如果没有指定 WHERE ⼦句,MySQL 表中的所有记录将被删除。
# 你可以在 WHERE ⼦句中指定任何条件

 不带条件删除数据:
  DELETE FROM 表名;
 带条件删除数据:
  DELETE FROM 表名 WHERE 字段名=值;
 使⽤ truncate 删除表中所有记录:
  TRUNCATE TABLE 表名;
 truncate 和 delete 的区别:
  truncate 相当于删除表的结构,再创建⼀张表。
具体操作:

-- 带条件删除数据,删除 id 为 1 的记录
delete from student where id=1;
-- 不带条件删除数据,删除表中的所有数据
delete from student;

DQL

 以后填坑。
填坑:【数据库基础笔记】2、DQL查询

【数据库基础笔记】1、MySQL数据库与操作相关推荐

  1. 数据库基础笔记(MySQL)1 —— 基础概念

    (写算法题目把自己心态搞崩了,休息两天顺便把之前学的数据库手写笔记记录在网上方便查阅,因为只是自己学的时候做的笔记,如果有错误欢迎大家指正,过两天再重回算法的怀抱哈哈) 如何下载配置 这个感觉视频讲的 ...

  2. 数据库基础笔记(MySQL)2 —— 基础查询

    查询数据库信息 查询 MySQL数据库 的版本号 select version(); 查看当前使用的数据库 select database(); 查询表结构 查询表结构(desc 是 describe ...

  3. 数据库基础笔记(MySQL)3 —— 基础操作

    表操作 表的创建 ( create ) create table 表名 ( 字段1 数据类型,字段2 数据类型 - ) ; 例:create table table_1 ( id int , name ...

  4. 数据库基础笔记(MySQL)7 —— 存储引擎和视图 ( 完结撒花 )

    存储引擎 实在是学浅才疏,只能大致写点,放篇大佬的,看详细的去吧 传送门 ,等我闲下来学会了再来补充 即一个表存储数据的方式,不同的存储引擎会提供不同的功能,性能等 可以用 engine 指定存储引擎 ...

  5. 数据库基础笔记(MySQL)6 —— 基础事务

    事务 只与 DML 语句有关 ( 关于数据的 增删改 ) 一个事务由一条或多条 DML 语句组成,一个事务在提交事务后才会将数据彻底修改到数据库中,再提交前,我们可以用回滚回到指定位置,相当于可以撤回 ...

  6. 数据库基础笔记(MySQL)5 —— 基础索引

    索引 索引是帮助 MySQL 高效获取数据的数据结构,可以在字段上添加,用于提高查询效率( 可以给一个字段添加,也可以给多个字段联合添加 ) 创建索引,就相当于为这个字段中的数据创建一个 B+ 树,如 ...

  7. 数据库基础笔记(MySQL)4 —— 基础约束

    约束 我们可以给表中的字段加上一些约束,来保证表中的数据是有效的 按约束的功能分类 非空约束 : not null 唯一性约束 : unique 主键约束 : primary key 外键约束 : f ...

  8. linux数据库创建score表,MySQL数据库学习笔记

    MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...

  9. 徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么?

    徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么? 完成:第一遍 1.数据库并发控制通过什么实现? 当多个事务并发方法对同一个数据进行操作 通过数据库锁实现对数据库的并发控制. 2.锁类 ...

  10. php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据

    php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...

最新文章

  1. 191127注意事项
  2. C# 串口编程 — MVVM MVVM Light 实例
  3. mysql5.5 mysqli_php5.5.38增加mysqli扩展
  4. 【Leetcode | 9】217. 存在重复元素
  5. 服务器c的环境配置文件,配置linux服务器环境(jdk+tomcat+mysql+nginx+redis+svn+nexus的maven私服)...
  6. 牛顿法python代码_python 牛顿法实现逻辑回归(Logistic Regression)
  7. windows 2008 ftp配置及用户权限管理
  8. Delphi MlSkin v3.9 (2019.4.15)发布啦! 它能让你的程序拥有像QQ一样多彩炫丽的外观...
  9. Hackerlands:城市Hackerspaces的农村版本
  10. 设计导航-超全智能的设计师导航网站
  11. python基础知识大一总结与反思_Python第一课教学设计及反思
  12. ACLEMNLP'21 | 基于神经转移模型的论辩挖掘任务
  13. BZOJ 1230: [Usaco2008 Nov]lites 开关灯( 线段树 )
  14. 安装电脑硬件要求_2019,8月,精雕设计多档次电脑硬件配置推荐
  15. 路径规划-人工势场法(Artificial Potential Field)
  16. 你一生中要听的一百首英文电影插曲
  17. 数据库设计之数据字典的使用与设计
  18. java rmi tcp_Tomcat启动失败报错[RMI TCP Connection(4)-127.0.0.1] [RMI TCP Connection(3)-127.0.0.1]...
  19. ECl@SS学习笔记(1)
  20. 关于ARM的一些笔记

热门文章

  1. reshape long和wide函数怎么用?运用具体的例子实现.
  2. WireShark抓包TCP三次握手和四次挥手
  3. 2018 第19界深圳国际机械制造工业展览会 3月29日 - 4月1日
  4. 《Axure官方教程译读》之0203:Blinking Text Tutorial
  5. Android - 拍照身份证,使用Paint自定义蒙版,拍限定框内照片
  6. GET请求可以使用@RequestBody来接收参数吗
  7. java 原码反码及补码 总结
  8. Ubuntu18双系统安装+遇到的问题+后续软件安装
  9. ZCMU--5194: 纪昌学射(C语言)
  10. poj3034Whac-a-Mole(dp)