DDL\DML

这篇具有很好参考价值的文章主要介绍了DDL\DML。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

查询字段

1、查询指定字段

select 字段1, 字段2 ,...] from 表名;

select ename, sal from emp;

select ename from emp;

2、查询全部字段

select * from 表名;

select * from emp;

条件查询

使用 where 语句,放在 from 后        

select * from emp where 条件;

select * from emp where empno>7500;

运算符

3、算术运算符:+ - * / %

# 员工年工资

select * from emp where sal * 12 > 20000;

4、比较运算符:

DDL\DML,数据库MySQL知识储备,sql,数据库,mysql

 5、逻辑运算符:and or not

select * from emp where job = 'salesman' and sal > 1500;

存储在表中的数据是一种类型的数据,不同类型的数据应放到不同的表中,否则会使以后的检索和访问很困难。

数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的, 这表示数据库中没有其他表具有相同的名字。

表由一个或多个列组成。每一列存储一列特定的信息,列称为字段,每个列都有相应的数据类型。数据类型定义列可以存储的数据种类。例如,某一列中需要存储数字,该列的数据类型应该定义为数值类型。

数据类型

1、整型

DDL\DML,数据库MySQL知识储备,sql,数据库,mysql

文章来源地址https://www.toymoban.com/news/detail-604275.html

2、浮点型和定点型

DDL\DML,数据库MySQL知识储备,sql,数据库,mysql

 3、日期时间类型

DDL\DML,数据库MySQL知识储备,sql,数据库,mysql

 4、字符型

DDL\DML,数据库MySQL知识储备,sql,数据库,mysql

DDL(数据定义语言)

Data Definition Language,用于定义和管理数据库中的对象和结构,如表、列、索引等。

创建表

create table [if not exists] 表名(

    字段1 字段类型 [列级约束条件],

    字段2 字段类型 [列级约束条件],

    ...

    [表级约束条件]

);

create table users(

  id int,

  name varchar(20)

);

查看表

1、显示数据库中的表

show tables;

2、查看表的基本结构

desc 表名;

desc users;

3、查看数据库/表的创建语句

show create database 数据库名;

show create table 表名;

修改表

理想状态下,当表中存储数据以后,该表就不应该再被更新。在表的设计过程中需要花费大量时间来考虑,以便后期不对该表进行大的改动。

1、添加字段

alter table 表名

add column 新列名 数据类型 [约束条件] [first | after 列名];

2、修改字段的类型

alter table 表名

modify column 列名 数据类型 [约束条件];

3、修改字段的位置

alter table 表名

modify column 列名 数据类型 first | after 列名;

4、修改字段名

alter table 表名

change column 旧列名 新列名 数据类型 ;

5、删除字段

alter table 表名

drop column 列名

重命名表

alter table 旧表名

rename to 新表名;

删除表

drop table [if exists] 表1[, 表2, 表3...];

DML(数据操作语言)

Data Manipulation Language,用于操作数据库中的实际数据,如插入、更新、删除和查询数据。

插入数据

插入完整的行,所有字段,每一个字段都必须提供一个值,如果某个字段没有值,应该使用 NULL,每个字段必须以他们在表中定义的顺序给出。这种语法简单,但是不安全,应该避免使用。

insert into 表名

values (

    字段1的值,

    字段2的值,

    ...

);

更安全的方法是,在表名后的括号中给出字段名,values 中的值的顺序与前面给出的字段的顺序相同,一一对应。不需要与表中定义的顺序相同,没有值的字段可以不提供。

insert into 表名 (

    字段1,

    字段2,

    ...

)

values (

    字段1的值,

    字段2的值,

    ...

);

values 后面可以跟多个括号,括号间用逗号分隔,每个括号代表要插入的一条数据。

单条 insert 语句插入多条数据比多条 insert 语句快。

更新数据

update 表名

set 字段1 = 字段1的值,

     字段2 = 字段2的值,

     ...

where 限制条件;

记得加 where 限制条件,否则更新整个表中的每一条数据。

删除数据

delete from 表名

where 限制条件;

同样,不加限制条件会删除整个表中每一条数据。

物理删除,无法恢复。

注意:在对 update 或 delete 使用 where 前,应该先用 select 语句进行测试,保证它的过滤结果是正确的。

约束

constraint

约束类型

非空约束

默认约束

唯一约束

主键约束

外键约束

关键字

not null

default

unique

primary key

foreign key

非空约束

NOT NULL,是否不可以为空(NULL),NULL 值就是没有值或缺值,非空就是不可以在插入时不给出该列的值,该列必须有值。

  1. 创建表时设置非空约束

create table 表名(

    字段名 字段类型 not null,

    ...

);

drop table if exists users;

create table users(

    id int not null,

    name varchar(20)

);

# 报错,id没有默认值,不允许为空

insert into users(name) values("李四");

  1. 已有字段添加非空约束

alter table 表名

modify column 字段名 字段类型 not null;

  1. 删除非空约束(修改为允许为空)

alter table 表名

modify column 字段名 字段类型;

注意:不要混淆 NULL 值和空串,NULL值是没有值,空串是 ''(两个单引号,中间没有字符)

默认约束

       DEFAULT如果在插入行时没有给出值,通过 DEFAULT 指定此时使用的默认值。

create table 表名(

    字段名 字段类型 default 默认值,

    ...

);

drop table if exists users;

create table users(

    id int not null default 666,

    name varchar(20)

);

# 不报错

insert into users(name) values("李四");

select * from users;

唯一约束

       用于确保特定列或列组合的唯一性,被约束的列的值在整个表中是唯一的,唯一约束默认允许空值(null),因此多个空值不违反唯一约束。

  1. 列级

create table 表名(

    字段名 字段类型 unique,

    ...

);

drop table if exists users;

create table users(

    id int not null default 666,

    name varchar(20) unique

);

insert into users(id, name) values(1, "李四");

insert into users(id, name) values(2, "李四");

insert into users(id) values(3);

insert into users(id) values(4);

  1. 表级,可以给约束起名,可以创建多列的唯一约束(联合唯一约束)

create table 表名(

    字段1 字段类型,

    字段2 字段类型,

    ...

    [constraint 约束名] unique(字段1[, 字段2, ...])

);

drop table if exists users;

create table users(

    id int not null default 666,

    name varchar(20),

    unique(id, name)

);

insert into users(id, name) values(1, "李四");

insert into users(id, name) values(2, "李四");

insert into users(id, name) values(1, "张三");

insert into users(id, name) values(1, "李四");#报错

insert into users(name) values("李四");

insert into users(name) values("李四");#报错

insert into users(id) values(5);

insert into users(id) values(5);

  1. 已有字段添加唯一约束

alter table 表名

modify 字段名 字段类型 unique ;

alter table 表名

add [constraint 约束名] unique(字段名) ;

  1. 删除唯一约束

alter table 表名

drop index 约束名;

alter table 表名

drop key 约束名;

主键约束

       唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。

因此:

  1. 每一个表都应该定义主键
  2. 主键的值不应该修改
  3. 不使用可能会修改值的列作为主键(与业务无关,通常使用 id 作为主键)

特点:

  1. 唯一性:主键要求每一行数据的主键值都必须是唯一的,不允许有重复值。
  2. 非空性:主键要求主键列的值不能为空,即不能为 NULL。
  3. 单一性:每个表只能有一个主键。主键可以由一个列或多个列组成,形成复合主键
  4. 列级

create table 表名(

    字段名 字段类型 primary key,

    ...

);

drop table if exists users;

create table users(

    id int primary key,

    name varchar(20) unique

);

insert into users(id, name) values(1, "张三");

insert into users(id, name) values(1, "李四");

insert into users(name) values("王五");

insert into users(id) values(2);

  1. 表级,可以给约束起名,可以创建多列的联合主键

create table 表名(

    字段1 字段类型,

    字段2 字段类型,

    ...

    [constraint 约束名] primary key(字段1[, 字段2, ...])

);

  1. 删除主键

alter table 表名

drop primary key;

自动递增

auto_increment:设置 auto_increment 的列,当每增加一行时自动增量。每个表只允许一个 auto_increment 列。

create table 表名(

    字段1 字段类型 auto_increment

);

drop table if exists users;

create table users(

    id int primary key auto_increment,

    name varchar(20) unique

);

insert into users(name) values("李四");

insert into users(name) values("张三");

insert into users(id,name) values(5, "王五");

insert into users(name) values("赵六");

外键约束

外键为表中的某一字段,该字段是另一表的主键值,外键用来在两个表的数据之间建立联结,一个表中可以有一个或多个外键。外键的作用是保持数据的一致性、完整性。

注意:

  1. 外键字段可以为null,外键为空的数据也叫孤儿数据
  2. 有了外键引用之后,表分为父表和子表
    • 创建表时先创建父表,再创建子表
    • 插入数据时,先插入父表数据,再插入子表数据
    • 删除时先删除子表,再删除父表
  3. 子表外键类型要与父表外键类型一致

在子表创建外键:

[constraint 外键名] foreign key (列名) references 主表名(主键);

create table student(

    id int primary key auto_increment,

    name varchar(20) unique

);

create table score(

    id int primary key auto_increment,

    student_id int ,

    degree int,

    constraint fk1 foreign key (student_id) references student(id)

);

insert into score(student_id, degree) values(1, 90);#报错

insert into student(name) values("李四");

insert into score(student_id, degree) values(1, 90);

insert into score(degree) values(90);

delete from student where id=1;#报错

delete from score where student_id=1;

delete from student where id=1;

到了这里,关于DDL\DML的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库基础(八):DML数据操作语言

    文章目录 DML数据操作语言 一、DML包括哪些SQL语句 二、数据的增删改(重点) 1、数据的增加操作 2、数据的修改操作 3、数据的删除操作 insert插入、update更新、delete删除 增加:insert 删除:delete 修改:update 1、数据的增加操作  基本语法: 特别注意:在SQL语句中,除了数字,

    2024年02月19日
    浏览(48)
  • MySQL数据库——DML基本操作

    前面我们学习了MySQL——DDL操作,对数据库和表的结构的操作,那么今天我将为大家分享MySQL——DML操作,对表数据的操作。 MySQL DML操作有以下几种: 插入操作(INSERT):用于向数据库中插入新的数据行。可以一次插入单行数据,也可以使用一条SQL语句一次性插入多行数据。

    2024年02月15日
    浏览(58)
  • mysql 数据库定义语言(DDL)

    目录 库的操作 数据库创建 数据库编码集 数据库删除 数据库修改 数据库查询 数据库备份 表的操作 表的创建 查询表 删除表 修改表 这里先声明一下,这篇文章主要是讲数据库表的定义操作,也就是 DDL,只要是对数据库以及表结构操作的 SQL 数据库的创建,其实在之前我们浅

    2024年02月12日
    浏览(38)
  • 【MySQL】数据库SQL语句之DML

    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、放松等,哈哈哈,所以博客就这样被搁了。   今天感觉不错,给大

    2024年02月08日
    浏览(62)
  • DDL\DML

    1、查询指定字段 select 字段1, 字段2 ,...] from 表名; select ename, sal from emp; select ename from emp; 2、查询全部字段 select * from 表名; select * from emp; 条件查询 使用 where 语句,放在 from 后         select * from emp where 条件; select * from emp where empno7500; 3、算术运算符:+ - * / % # 员工年工资

    2024年02月16日
    浏览(34)
  • MySQL数据库的DDL语法汇总

    DDL(数据定义语言):针对数据库对象结构的操作,如:数据库、表、视图、索引等 DML(数据操纵语言):对数据库对象中的数据进行操作,比如数据的增删改查 DCL(数据控制语言):授权及取消授权等 TCL(事务控制语言):对事务的控制,如事务的提交及回滚 创建数据库

    2024年02月09日
    浏览(54)
  • MySQL-DDL-数据库操作

    开发项目流程 DDL:Data Definition Language,数据定义语言,用来定义数据库对象(数据库、表) 常见操作 查询 查询所有数据库:show databases; 查询当前数据库:select database(); 使用 使用数据库:use 数据库名称; 创建 创建数据库:creste database[if not exists] 数据库名称; 删除

    2024年02月15日
    浏览(44)
  • MySQL数据库——DDL基本操作

    DDL 操作是与数据库结构相关的操作,它们不涉及实际的数据操作,而是用于管理数据库的结构和元数据。今天我将为大家分享关于MySQL数据库的DDL操作。 SQL 功能 show databases; 查看所有的数据库 create database [if not exists] 数据库名 [charset/character=utf8]; 创建数据库 use 数据库名; 选

    2024年02月15日
    浏览(83)
  • 【MySQL】:DDL数据库定义与操作

    🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! SQL是一种强大的语言,根据其功能可以分为DDL、DML、DQL和DCL四类。其中,DDL用于定义数据库对象,如数据库、表和字段。本文将深入探讨DDL的数据库操作,包括查询数据库、创建数据库

    2024年02月01日
    浏览(52)
  • 数据库MySQL(三):DML、DQL、DCL

    数据操作语言(Data Manipulation Language,DML) 该语言主要对数据库表中的数据进行增删改 数据查询语言(Data Query Language,DQL) 该语言主要用于查询数据库表的记录 命令格式 SELECT [DISTINCT]    字段1 [AS 字段别名], [字段2 [AS 字段别名]], … FROM    表名列表 WHERE    条件

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包