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;
扫描二维码关注公众号,回复: 4736655 查看本文章

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数据操作

猜你喜欢

转载自www.cnblogs.com/zss0520/p/10205070.html