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