MySQL数据库基础——SQL语句之DDL、DML

目录

一、数据库概述

    1.数据库(DataBase)

    2.数据库的相关概念

二、MySQL数据库

    1.定义:

    2.sql

三、DDL

1.定义:

2.创建删除数据库

3.数据库表的基本概念

4.创建数据库表

四、DML

1.定义:

2.插入数据

3.修改数据

4.删除数据


一、数据库概述

    1.数据库(DataBase)

       为了方便数据的存储和管理,它将数据按照特定的规则存储在磁盘上,就是一个存储数据的仓库。

    2.数据库的相关概念

      ● DB:数据库(DataBase) 存储数据的容器,它保存了一系列有组织的数据。

      ● DBMS:数据库管理系统(DataBase Management System) 又称为数据库软件或数据库产品,用于创建或管理DB。

二、MySQL数据库

    1.定义:

● MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,目前属于

   Oracle旗下产品。MySQL 流行的关系型数据库管理系统。

● MySQL的常用命令: 

       查看当前所有的数据库:show databases;

       选择指定的库:use 库名

       查看当前的所有表:show tables;

       查看其他库的所有表:show tables from 库名;

       查看mysql版本: select version();

    2.sql

       ●结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

       SQL优点:不是某个特定数据库供应商专有的语是言,几乎所有DBMS都支持SQL简单易学,灵活使用可以进行非常复杂和高级的数据库操作。

       SQL语句使用方法:无论是进行建库,建表或是插入数据、查询等操作。只要写出相应的一条或多条SQL语句,就用鼠标选中这几条语句,按F9执行。若出现 “共 n 行数据受影响” 表示执行成功

以下以一条修改表信息的语句为例:

三、DDL

1.定义:

       数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据库表结构的语言。

       ●常用的语句:create ,alter,drop,rename

2.创建删除数据库

      (1)创建数据库(CREATE DATABASE 数据库名),设置字符集编码(CHARSET 基字符集)

CREATE DATABASE IF NOT EXISTS test CHARSET utf8

      (2)删除数据库(DROP DATABASE 数据库名 / [IF EXISTS数据库名];

DROP DATABASE test;

      (3)修改字符集(ALTER DATABASE 数据库名 CHARSET gbk;

ALTER DATABASE test CHARSET gbk;

3.数据库表的基本概念

    (1)数据表

             表(table)是数据存储的最常见和最简单的形式,是构成关系型数据库的基本元素。表

的最简单形式是由行和列组成,分别都包含着数据。 每个表都有一个表头和表体,表头定义表名

和列名。表中的行被看作是文件中的记录,表中的列被看作是这些记录的字段。

    (2)字段 

             字段是表里的一列,用于保存每条记录的特定信息。如客户订单表的字段包括“订单 ID”、

“姓名”、“客户ID”、“职务”、“地区”、“运货商”、“国家”等。数据表的一列包含了特定字段的全部信

息。

    (3)记录

             记录也被称为一行数据,是表里的一行数据。

4.创建数据库表

(1) 对于具体的某一个表,在创建之前,需要确定表的下列特征:

       ● 表名(表信息)

       ● 表中的字段

       ● 字段的数据类型和长度

       ● 哪些约束

(2)具体建表步骤

       Ⅰ输入表名:学生信息---学生表

CREATE TABLE student

        确定列名:学生具体信息--姓名,年龄,性别......

       Ⅲ 列的数据类型:

        字符串型:① char(n)长度为n的定长字符串,设n=5,存入两个字符,其长度还是5,剩

下三位会补空格。一般存储定长数据

                            ② varchar(n)长度为n的变长字符串,设n=5,存入两个字符,长度就为2

       ● 日期类型:① date 年 月 日

                            ② datetime 年 月 日 时 分 秒

       ● 整 数 型:  ① TINYINT 字节1

                            ② SMALLINT 字节2

                            ③ MEDIUMINT 字节3

                            ④ INT 字节4

                            ⑤ BIGINT 字节8

       ● 浮 点 型:  ① decimal(M,D)

                             M:精度,数据的总长度

                             D:标度,小数点后的长度

如下,我们以一个学生表为例,建立一个没有任何约束的普通表。列名分别为:学号,姓名,性别,生日,电话,地址,身高,注册时间。

CREATE TABLE student (
  num INT,
  NAME VARCHAR (10),
  gender CHAR (1),
  birthday DATE,
  tel CHAR (11),
  address VARCHAR (30),
  height DECIMAL (3, 2),
  reg_time DATETIME
)

       Ⅳ 删除表(DROP TABLE [if exists ]表名

DROP TABLE student

       Ⅴ 创建表,为列添加约束(以如上学生表为例)

① PRIMARY KEY 主键,在一张表中代表唯一的一条记录,不能为空,不能重复

② AUTO_INCREMENT 设置主键列自动增长,只能修饰主键列,而且主键列类型为整形

-- 每位学生学号是唯一的,不能为空,只能有一个学号
-- 为学号添加主键约束(唯一不能重复,不能为空,一个表只能有一个列设置主键)
num INT PRIMARY KEY AUTO_INCREMENT

③ NOT NULL 不为空

NAME VARCHAR(10) NOT NULL

④ UNIQUE 唯一约束,约束的列不能出现重复数据,可以添加到多个列

-- 几个学生不可能有同一个手机号
tel CHAR(11) NOT NULL UNIQUE

⑤ CHECK 约束,如设置身高项不超过2.13,

height DECIMAL(3,2) check(height<2.13)

年龄不小于18岁,超过的数据不录入数据库

age varchar(3) check(age>18)

⑥ comment ' 注释 '  —— 字段注释

NAME VARCHAR(10) NOT NULL COMMENT'姓名'

⑦ DEFAULT 设置默认值

-- 默认性别为男性
gender CHAR(1) NOT NULL DEFAULT'男'

完整代码:

CREATE TABLE student (
  num INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号 主键',
  NAME VARCHAR (10) NOT NULL COMMENT '姓名',
  gender CHAR (1) NOT NULL DEFAULT '男' COMMENT '性别',
  birthday DATE,
  tel CHAR (11) NOT NULL UNIQUE,
  address VARCHAR (30),
  height DECIMAL (3, 2) CHECK (height < 2.13),
  reg_time DATETIME
)

       Ⅵ 修改表名(RENAME TABLE 旧表名 TO 新表名

RENAME TABLE student TO stu

       Ⅶ 复制表结构(CREATE TABLE 新表名 LIKE 被复制表名;

CREATE TABLE stu LIKE student;

       效果如下:

我们可以发现,由student表复制而来的stu表结构与之一模一样,证明成功复制了表的结构。

四、DML

1.定义:

● 数据操纵语言DML(Data Manipulation Language

常用语句: insert,delete,update

2.插入数据

(1)方式1: INSERT INTO 表名(列1,列2......,列n) VALUES(值1,值2.....,值n); 

-- 为上面创建的学生表插入数据
INSERT INTO student (NAME,gender,tel) VALUES('张三','男','12345678912');
INSERT INTO student (NAME,gender,tel,address,height,reg_time) VALUES('张三','女','12345678212','汉中',1.86,NOW());

(2)方式2: INSERT INTO 表名 set 列名1=值1,..列名n=值n; 

INSERT INTO student SET NAME = '李四',gender = '男',tel = '12345678989',height = 1.88;

(3)方式3: INSERT INTO 表名(列1,列2......,列n) VALUES(值1,值2.....,值n),(值1,值2.....,值n); 

INSERT INTO student (NAME,gender,birthday,tel,address,height,reg_time) 
       VALUES('王五','男','2003-4-5','12374859632','西安',1.75,NOW()),
             ('赵六','男','2003-4-5','12374857732','西安',1.60,NOW()),
             ('思路','男','2003-4-5','12374859882','西安',1.65,NOW());

以下是效果图:

(4)方式4:INSERT INTO 表名(列1,列2......,列n) 查询语句(查询的列数与插入列数匹配)

-- stu表是在DDL语句中通过复制student表结构得到的
INSERT INTO stu(NAME,gender,birthday,tel,address,height,reg_time) 
SELECT NAME,gender,birthday,tel,address,height,reg_time FROM student

以下是效果图:

3.修改数据

(1)格式:UPDATE 表名 SET 列名 = ‘新值’WHERE 条件

-- 修改student表中学号为42的学生的住址、身高、注册时间
UPDATE student SET address = '汉中',height = '1.86',reg_time = NOW() WHERE num = 42
UPDATE student SET birthday = '2022-4-3' WHERE num = 42
       UPDATE student SET birthday = '2023-6-3' WHERE num = 43
       UPDATE student SET birthday = '2023-7-3' WHERE num = 44

 如下为效果图:

4.删除数据

(1)格式:DELETE FROM 表名 WHERE 条件

-- 删除学号为51的学生信息
DELETE FROM stu WHERE num = 51

删除前: 

删除后:

有关数据库基础篇之SQL语句--DDL、DML部分的知识分享到这里就结束了,希望能对您有所帮助。如有不正,恳请及时指出,共同学习,一起进步!

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值