MySQL简介、DDL语言、DML语言

什么是数据库?

        数据库(Database,简称DB)概念: 长期存放在计算机内,有组织、可共享的大量数据的集合,是一个 数据“仓库” 。

        作用:存放、管理数据

分类

关系型数据库

        常见的关系型数据库:MySQL、ORACLE、PostgreSQL

NoSQL

        常见的NoSQL数据库:redis、mongoDB

为什么学习MySQL

        特点:操作便捷;小巧,功能齐全;免费、开源的数据库;可运行于windows或linux系统

数据库结构

数据库(Database):以文件的形式存放在磁盘上,即对应于一个或多个物理文件。

数据表(Table):简称表,由一组数据记录组成, 数据库中的数据是以表为单位进 行组织的。一个表是一组相关的 按行排列的数据;每个表中都含 有相同类型的信息。

字段(Field):也称域。表中的每一列称为一个 字段。每个字段都有相应的描述 信息。

记录(Record): 表中的每一行称为一个记录,它由若干个字段组成。

索引(Index) :索引实际上是一种特殊类型的表, 其中含有关键字段的值和指向实 际记录位置的指针,可以提高访 问数据库的效率。

SQL语句: 结构化查询语句命令,用来从一 个或多个表中获取一组指定的记录,或者对某个表执行指定的操作。

SQL语句分类

        SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库 脚本文件的扩展名。

DDL(数据定义语言)

作用:定义和管理数据对象, 如数据库,数据表等

常见命令:CREATE、DROP、ALTER

DML(数据操作语言)

作用:用于操作数据库对象中所包含的数据

常见命令:INSERT、UPDATE、DELETE

DQL(数据查询语言)

作用:用于查询数据库数据

常见命令:SELECT

DCL(数据控制语言)

作用:用来管理数据库的语言,包括管理权限及数据更改

常见命令:GRANT、COMMIT、ROLLBACK

数据库表的字段类型

字符串类型

类型特点空间上时间上使用场景
CHAR(M)固定长度浪费存储空间效率高存储不大,对速度要求高
VARCHAR(M)可变长度节省存储空间效率低非CHAR的情况

数值类型

tinyint【taɪni】:非常小的数据

int:标准整数

bigint:较大的整数

Decimal:字符串形式的浮点数

日期和时间类型

DATETIME:格式:YY-MM-DD hh:mm:ss

        设置当前 创建时间,或者是更新时间时给TIMESTAMP或者DATETIME字段 设置 DEFAULT CURRENT_TIMESTAMP 添加当前默认时间

DDL语言

库的操作

创建数据库

语法:create database 库名

create database xiaozhao2;

删除数据库

语法:drop database 库名

drop database xiaozhao2;

使用库 / 切换库

语法:use 库名

use xiaozhao2;

查看所有的库

show databases;

表的操作

查看所有的表

show tables;

创建表

语法:

-- create table 表名(
--     字段名  类型  属性,
--     字段名  类型  属性,
--     ... 
--     字段名  类型  属性
-- );

CREATE TABLE STUDENT(
    stu_name varchar(10),
    stu_age tinyint,
    stu_birthday datetime,
    stu_id char(18),
    stu_score decimal(4,1)
);

查看表结构

方式一:desc 表名
desc student;

方式二:show create table 表名
show create table student;

表结构修改

语法:alter table 表名 关键词 数据;

关键词:rename as 、 add、  drop、  modify、 change

1. 修改表名

语法:alter table 旧表名 rename as 新表名;

alter table student rename as xuesheng;
2. 添加字段

语法:alter table 表名 add 新字段名 类型  属性;

alter table xuesheng
    add stu_qq varchar(20) comment '这是学生的qq号'

(其中,comment是备注)

3.删除字段

语法: alter table 表名  drop 字段名;

alter table xuesheng drop stu_age;
4.修改字段
 方式一

语法:alter table 表名 modify 字段名 要修改的类型 要修改的属性;

使用modify 只能修改 数据类型 和 属性,并且修改是覆盖性的

alter table xuesheng modify stu_name varchar(100);
alter table xuesheng modify stu_qq int;
方式二

语法:alter table 表名 change 旧字段名  新字段名 要修改类型  要修改属性;

change 数据类型 和 属性 还可以修改字段名

alter table xuesheng 
	change stu_qq qq varchar(20) comment '这是qq号';
删除表

语法:drop table 表名

drop table xuesheng;

DML语言

新增(INSERT)

语法:INSERT INTO 表名 (字段名,字段名,...,字段名) VALUES (值,值,...,值)

全字段插入

INSERT INTO student (sid,sname,birthday,ssex,classid)
VALUES(9,'张三','2007-1-1','男',1)

部分字段插入

INSERT INTO student(sname,ssex) VALUES('陈小远','男');

一次性添加多条数据

方式一

语法:INSERT INTO 表名 (字段名..) VALUES(值..),(值..),(值..)...

INSERT INTO student (sname,ssex) VALUES('xn','女'),('ztt','女'),('zad','女');
方式二

语法:INSERT INTO SELECT (注意:插入和被插入的表都必须存在)

创建一个空表:

CREATE TABLE newstu(
    xingming VARCHAR(10),
    xingbie VARCHAR(10),
  classid int
);

把student表中的数据插入到newstu里:

INSERT INTO newstu(xingming,xingbie,classid) SELECT sname,ssex,classid from student
方式三

被插入表不能存在:

create table stu1 select sid,sname,birthday from student

修改(update)

简单的修改

语法:UPDATE 表名 SET 字段名=字段值, 字段名=字段值, 字段名=字段值

UPDATE stu1 SET birthday='2005-7-9'

条件修改

语法:UPDATE 表名 SET 字段名=字段值, 字段名=字段值, 字段名=字段值【WHERE子句条件】

UPDATE stu1 SET birthday='2002-2-2' WHERE sname='陈小远';

注意:NULL不会被改变,因为null是类型,不是值,不能参与运算 

UPDATE newstu SET classid=200
WHERE xingbie != '男';
UPDATE newstu SET classid=300
WHERE xingbie <> '女'; -- <>是不等于的意思

删除(drop)

语法1:DELETE FROM 表名

DELETE FROM newstu;

语法2:DELETE FROM 表名 【WHERE条件子句】

DELETE FROM stu1  WHERE sid = 1;

清空表

方法1

语法:DELETE 表名(只删除了数据)

方法2

语法:TRUNCATE 表名(不仅删除了数据,还删除了索引)

方法3

语法:DROP 表名(不仅删除了数据,还删除了索引,表结构也被删了)

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值