首页 > 数据库 >DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记

DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记

时间:2024-04-02 18:56:05浏览次数:27  
标签:last name Language 数据库 DML 查询数据库 table id select

****************************************************************************************
DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记
录,并检查数据完整性。
主要的语句关键字包括 INSERT 、 DELETE 、 UPDATE 、 SELECT 等。
SELECT是SQL语言的基础,最为重要。

数据导入指令;source d:\xxxx.sql 
1. 基本的select 语句
    select 标识选择哪些列
    FROM 标识从哪个表中选择
    选择全部列: select * from students;
    选择特定的列: select id, last_name from students; 
    列的别名:  select last_name ln from students; -- ln 就是别名
    去除重复行:select DISTINCT last_name from students; -- DISTINCT 其实是对后面所有列名的组合进行去重
    我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来。
2. 显示表结构
    desc 表名称 
WHERE 语句
    select 字段1,字段2 FROM 表名 where 过滤条件
3. 排序数据
3.1 排序规则
    使用order by 子句排序
        ASC:升序;DESC:降序 ;ORDER BY 子句在select 语句的结尾
        select id,last_name, email from students ORDER BY id DESC ;
        SELECT id, last_name,email from students order by class_id, id ASC; 
        -- 多表排序:在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第
    --  列数据中所有值都是唯一的,将不再对第二列进行排序。
3.2 分页 
    LIMIT 位置偏移量,行数
    *公式:(当前页数-1)*每页条数,每页条数
    -- 前10条记录:
    SELECT * FROM 表名 LIMIT 0,10;或者 SELECT * FROM 表名 LIMIT 10;
    -- 第11至20条记录:
    SELECT * FROM 表名 LIMIT 10,10;
    -- 第21至30条记录:
    SELECT * FROM 表名 LIMIT 20,10;
    注意:LIMIT 子句必须放在整个SELECT语句的最后!
4. REGEXP 运算符
    (1)‘^’匹配以该字符后面的字符开头的字符串。
            查询last_name 以字母a 为开头的记录:
            select * from students WHERE last_name REGEXP '^a';
    (2)‘$’匹配以该字符前面的字符结尾的字符串。
            查询last_name 以字母b 为开头的记录:
            select * from students WHERE last_name REGEXP 'b$';
    (3)‘.’匹配任何一个单字符。
            查询last_name中包含x和y的记录:
            select * from students WHERE last_name REGEXP 'x.y';
    (4)“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。为了命名字符的范围,使用一个‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
            查找last_name字段中包含字母‘o’或者‘t’的记录,SQL语句如下:
            select * from students WHERE last_name REGEXP '[ot]';
    (5)‘*’匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的‘x’字符,“[0-9]*”匹配任何数量的数字,而“*”匹配任何数量的任何字符。
   (6)使用{n,}或者{n,m}来指定字符串连续出现的次数 “字符串{n,}”表示至少匹配n次前面的字符;“字符串
      {n,m}”表示匹配前面的字符串不少于n次,不多于m次。例如,a{2,}表示字母a连续出现至少2次,也可以大于2次;a{2,4}表示字母a连续出现最少2次,最多不能超过4次。
             在fruits表中,查询f_name字段值出现字母‘x’至少2次的记录,SQL语句如下:
             SELECT * FROM fruits WHERE f_name REGEXP 'x{2,}';
             在fruits表中,查询f_name字段值出现字符串“ba”最少1次、最多3次的记录,SQL语句如下:
             SELECT * FROM fruits WHERE fname REGEXP 'ba{1,3}';
    5. 创建和管理表
    5.1 一条数据存储过程: 创建数据库-->确认字段--> 创建数据表--> 插入数据
            从Mysql 数据库系统从大到小依次为: 数据库服务器,数据库,数据表,数据表的行和列
    5.2 创建和管理数据库
            方式一:创建数据库:create database 数据库名;
            方式二:创建数据库并指定字符集:create database 数据库名 character set 字符集
            方式三:判断数据库是否存在,不存在则创建数据库(推荐 )create DATABASE if not EXISTS 数据名
    5.3 使用数据库
            查看当前所有数据库: show databases;
            查看当前正在使用的数据库:select database atguigudb;
            查看指定数据库下所有的表:show tables from 数据库名
            使用/切换数据库:USE 数据库名;
    5.4 修改数据库
            更改数据库字符集:ALTER database 数据库名 character set 字符集 #比如:gbk,utf8. 
            删除指定数据库: drop database 数据库名;
            删除指定数据库 :drop database if exists 数据库名;
    6. 创建表 
    6.1.1 创建表方式一
            create table [if not exists] 表名(
            字段1,数据类型 [约束条件][默认值],
            字段2,数据类型 [约束条件][默认值],
            字段3,数据类型 [约束条件][默认值],
            ......
            表约束条件
            );-- 加上了IF NOT EXISTS关键字,则表示:如果当前数据库中不存在要创建的数据表,则创建数据表;如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。
            必须指定:表名 列名(或字段名),数据类型,长度
            可选指定:约束条件,默认值
            create table employee1(
            id int primary key,
            last_name varchar(25),
            email varchar(35),
            hire_date DATE,
            salary double );
            desc employee1
6.1.2 创建表方式二
            使用AS subquery 选项
            指定的列和子查询中的列要一一对应,通过列名和默认定义列
            CREATE table emp1 as SELECT * from employees; d
            CREATE table emp2 as select employee_id,last_name,salary*12 annsal from employees where department_id = 80;
          SELECT * from emp2;
6.2 使用alter table 语句修改已经存在的数据表的结构
6.2.1 追加列
            alter table 表名 add column字段名 字段类型;
            alter table emp2 add hire_date DATE;
            修改列
            alter table 表名 modify column 字段名1 字段类型
            alter table emp2 modify last_name VARCHAR(30);
            重命名列
            alter table 表名 change column 列名 新列名 新数据类型
            alter table emp2 change last_name `name` varchar(25);
            删除一个列
            alter table 表名 drop [column]字段名
            alter table emp2 drop annsal;
6.3   删除表
            drop table if exists 表名
            drop table if exists emp1 
6.4   清空表
            truncate table -- 删除表中所有数据,释放表的存储空间 不建议使用
            truncate语句不能回滚,而使用delete 语句删除数据可以回滚。
        
7 数据处理之增删改
7.1 插入数据
        方式一:values的方式添加,使用这种语法一次只能向表中插入一条数据
        情况1 :为表中的所有字段按默认顺序插入数据,插入的值的顺序必须和数据表中定义时的顺序一致
        insert into 表名 VALUES(value1, value2,value3......)
        情况2 指明要添加的字段 (推荐)
        INSERT INTO emp1(id,hire_date,salary,`name`)
        VALUES(2,'1999-09-09',4000,'Jerry');
        # 说明:没有进行赋值的hire_date 的值为 null
        INSERT INTO emp1(id,salary,`name`)
        VALUES(3,4500,'shk');
        情况3 同时插入多条记录 (推荐)
        INSERT INTO emp1(id,NAME,salary)
        VALUES(4,'Jim',5000),(5,'张俊杰',5500);
7.2 更新数据
        使用update语句更新数据
        update employees 
        set department_id = 70 where employee_id = 113; 
7.3 删除数据
        delete from table_name where <condition>
        delete from students where id = 3;
        如果省略where 的子句,则表中的全部数据将全被删除
        delete from stu1

 

标签:last,name,Language,数据库,DML,查询数据库,table,id,select
From: https://www.cnblogs.com/clairedandan/p/18111281

相关文章

  • SQL语句中 DDL 、DML 、DQL 、DCL学习、看板
    DDL语句(数据定义语言)DDL(DataDefinitionLanguage)语句:数据定义语言,主要是进行定义/改变表的结构,数据类型,表之间的连接操作.常用的语句关键字有CREATE,DROP,ALTER等.CREATETABLE表名(列名1数据类型,列名2数据类型,列名3数据类型,...)​ALTERTABLE表名;......
  • GPT-1原理-Improving Language Understanding by Generative Pre-Training
    文章目录前言提出动机模型猜想模型提出模型结构模型参数模型预训练训练的目标训练方式训练参数预训练数据集预训练疑问点模型微调模型输入范式模型训练微调建议微调疑问点实验结果分析GPT-1缺陷前言首先想感慨一波这是当下最流行的大模型的的开篇之作,由OpenAI提......
  • 【WEEK5】 【DAY5】DML Language【English Version】
    2024.3.29FridayContents3.DMLLanguage3.1.ForeignKeys(ForUnderstanding)3.1.1.Concept3.1.2.Purpose3.1.3.SeveralMethodstoAdd(Write)ForeignKeys3.1.3.1.CreatingtheTablewithDirectReferenceInside(thepartbeingreferencedoftherefe......
  • 【WEEK5】 【DAY5】DML语言【中文版】
    2024.3.29Friday目录3.DML语言3.1.外键(了解)3.1.1.概念3.1.2.作用3.1.3.添加(书写)外键的几种方法3.1.3.1.创建表时直接在主动引用的表里写(被引用的表的被引用的部分)3.1.3.2.先创建表后修改表以添加外键3.1.3.3.以上操作都是物理外键,数据库级别的外键,不建议使用->避免数......
  • A Systematic Survey of Prompt Engineering in Large Language Models: Techniques a
    本文是LLM系列文章,针对《ASystematicSurveyofPromptEngineeringinLargeLanguageModels:TechniquesandApplications》的翻译。大型语言模型中提示工程的系统综述:技术与应用摘要1引言2提示工程3结论摘要提示工程已经成为扩展大型语言模型(LLM)和视......
  • Large Language Models As Evolution Strategies
    本文是LLM系列文章,针对《LargeLanguageModelsAsEvolutionStrategies》的翻译。作为进化策略的大型语言模型摘要1引言2相关工作3背景4将LLMS转化为ES算法5LLMS作为零样本进化策略6EVOLLM消融研究7EVOLLM与教师微调8讨论摘要大型Transformer模......
  • MySQL单表操作学习DDL_DML_DQL语句,以及模糊查询
    1.DDL语句CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`creatDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyi......
  • MySQL学习必备SQL_DDL_DML_DQL
    CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(3)u......
  • MySQL学习必备SQL_DDL_DML_DQL
    MySQL创建数据库需要自行创建,数据库名称可以为【schoolDB】,字符集【utf8】,排序规则【utf8_general_ci】。1、学生表DDLCREATETABLE`student`( `id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号', `createDate`datetimeDEFAULTNULL, `userName`varchar(2......
  • Large Language Models Based Fuzzing Techniques: A Survey
    本文是LLM系列文章,针对《LargeLanguageModelsBasedFuzzingTechniques:ASurvey》的翻译。基于大型语言模型的模糊化技术综述摘要1引言2背景3基于LLM的模糊测试分析4关于未来工作和挑战的讨论5结论摘要在软件发挥关键作用的现代,软件安全和漏洞分析......