DDL-数据库操作、 DML数据操作

DDL之数据库操作:database

创建数据库

格式:

  • create database 数据库名;
  • create database 数据库名 character set 字符集;
#创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
create database webdb_1;

#创建数据库 并指定数据库中数据的编码
create database webdb_2 character set utf8;

查看数据库

查看数据库MySQL服务器中的所有的数据库:
show databases;

查看某个数据库的定义的信息:
show create database webdb_1;

使用某个数据库:
use webdb_1;

查看正在使用的数据库:
select database();

删除数据库

drop database webdb_2;

DDL之表操作:table

创建表

create table 表名(
   字段名 类型(长度) [约束],
   字段名 类型(长度) [约束],
   ...
);

类型:
    varchar(n)  字符串
    int         整形
    double      浮点
    date        时间
    timestamp   时间戳
约束:
    primary key 主键,被主键修饰字段中的数据,不能重复、不能为null。

CREATE TABLE category (  // 创建一个商品表
    cid VARCHAR(32) PRIMARY KEY,
    cname VARCHAR(50)
);

查看表

查看数据库中的所有表:
show tables;

查看表结构
desc category;  // category 商品表名

删除表

drop table category;

修改表

修改表添加列
alter table 表名 add 列名 类型(长度) [约束];
例如:
    为商品类别表添加一个新的字段为 分类描述 varchar(20)
    alter table category add `desc` varchar(20);

修改表修改列的类型长度及约束
alter table 表名 modify 列名 类型(长度) 约束;
例如:
    为商品类别表的描述字段进行修改,类型varchar(50) 添加约束 not null
    alter table category modify `desc` varchar(50) not null;

修改表修改列名
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
例如:
    为商品类别表的分类名称字段进行更换 更换为 cdesc varchar(30)
    ALTER TABLE `area` CHANGE `desc` `a_desc`  VARCHAR(30)

修改表删除列
alter table 表名 drop 列名;
例如:
    删除商品分类表中cdesc这列
    alter table category drop cdesc;

修改表名
rename table 表名 to 新表名;
例如:
    为分类表category 改名成 producttype
    rename table category to producttype;

DML数据操作语言

插入表记录:insert

-- 添加数据
-- 最标准写法(列与值是一一对应的)
INSERT INTO category (cid,cname) VALUES (1,‘家用电器‘);

-- 简易写法(值得顺序必须和列循序一致)
INSERT INTO category values (2,‘手机/运营商/数码‘);

-- 便捷写法(一次性插入多条语句可以共享前置语法)
INSERT INTO category values (3,‘电脑/办公‘),(4,‘家居/家具/家装/厨具‘),(5,‘男装/女装/童装/内衣‘);

更新表记录:update

--更新所有记录的指定字段
-- 将家用电器更新为 美妆/个护清洁/宠物
update category set cname = ‘美妆/个护清洁/宠物‘ where cname = ‘家用电器‘;

--更新符合条件记录的指定字段
-- 将ID为5的数据更新为 男鞋/运动/户外
update category set cname = ‘男鞋/运动/户外‘ where cid = 5;

删除记录:delete

-- 删除表中的部分数据
delete from 表名 where 条件;
-- 删除ID为1的数据
delete from category where cid = 1;

-- 删除商品类别表的所有数据
delete from category;
-- 摧毁商品类别表的表结构然后重新创建 截断
truncate table category;

SQL约束

主键约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

主键的意义与作用

主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。

一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列

作用:

1)保证实体的完整性;

2)加快数据库的操作速度

3) 在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

4) DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

添加主键约束

创建表时,在字段描述处,声明指定字段为主键:

create table persons(
pid int PRIMARY key,
pname varchar(30),
sex VARCHAR(1),
age int,
pfrom varchar(50)
)

自动增长列

我们通常希望在每次插入新记录时,数据库自动生成字段的值。

我们可以在表中使用 auto_increment(自动增长列)关键字,自动增长列类型必须是整形,自动增长列必须为键(一般是主键)。

下列 SQL 语句把 "persons" 表中的 "pid" 列定义为 auto_increment 主键

create table persons(
pid int PRIMARY key AUTO_INCREMENT,
pname varchar(30),
sex VARCHAR(1),
age int,
pfrom varchar(50)
)

向persons添加数据时,可以不为pId字段设置值,也可以设置成null,数据库将自动维护主键值:

-- 标准写法
insert into persons (pname,sex,age,pfrom) values (‘孙建国‘,‘男‘,35,‘北京市‘);
-- 简易写法
insert into persons values (null,‘赵文明‘,‘男‘,24,‘河北省‘);

扩展:默认AUTO_INCREMENT 的开始值是 1,如果希望修改起始值,请使用下列 SQL 语法:

ALTER TABLE Persons AUTO_INCREMENT=100

非空约束

NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

下面的 SQL 语句强制所有列不接受 NULL 值:

create table persons(
pid int not null PRIMARY key AUTO_INCREMENT,
pname varchar(30) not null,
sex VARCHAR(1) not null,
age int not null,
pfrom varchar(50) not null
)

注意 : 主键如果标记为primary key 就已经不为null了,所以此处not null 可以省略;DDL-数据库操作、 DML数据操作

原文地址:https://www.cnblogs.com/zss0520/p/10205070.html

时间: 2024-11-05 19:05:30

DDL-数据库操作、 DML数据操作的相关文章

数据存储——SQLite数据库存储——SQL语句——DML数据操作语言、内置函数聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

Oracle基础(十) DML数据操作

一.DML数据操作语言 主要用于检索.插入和修改数据库信息.它是最常用的SQL命令,如INSERT(插入).UPDATE(更新).SELECT(选择).DELETE(删除). 1.INSERT插入语句: 语法: INSERT INTO tablename[column1[,column2...]] VALUES (value1[,value2...]); 说明: INSERT INTO:为插入的关键字. tablename:表示要插入的表. column1:可选参数,表示要插入的列,多个列使用,

数据存储——SQLite语句之DML 数据操作语言和内置函数之聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

6.1课堂笔记—DML(数据操作语言),DQL查询语句

一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%storage_engine%'; 1.表中插入数据 #添加课程 INSERT INTO `subject` VALUES (5,'C#',160,1); #插入多门课程 INSERT INTO `subject`(subjectName,classHour,gradeID) VALUES ('数学',

SQL入门-DML数据操作语言

DML数据操作语言 1.针对数据行的操作 加大 -U 使用严格模式,限制update 和where语句 mysql -uroot -p -U 严格模式下删除数据需要使用索引,作为条件才能删除 mysql> delete from anyux.test; ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column--

DML数据操作语言

DML: 数据操作语言INSERT, DELETE, UPDATE, SELECT 常用的语句,增.删.改.查: INSERT: 一次插入一行或多行数据: Syntax: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDAT

SQL不同服务器数据库之间的数据操作整理(完整版)

---------------------------------------------------------------------------------- -- Author : htl258(Tony) -- Date : 2010-06-25 22:23:18 -- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) -- Jul 9 2008 14:43:34 -- Copyright (c) 1

SQLServer服务器数据库之间的数据操作(完整版)

分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Author : htl258(Tony) -- Date : 2010-06-25 22:23:18 -- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) -- Jul 9 2008 14:43:34 -- Cop

Java使用jdbc连接Sqlite数据库进行各种数据操作的详细过程

前言:      SQLite是遵守ACID 的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.       不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协议是在编程语言内的直接API调用.这在消耗总量.延迟时间和整体简单性上有积极的作用.整个数据库(定义.表.索引和数据本身)都在宿主主机上存储在一个单一的文件中.它的简单的设计是通过在开始一个事务的时候锁定整个数