常见概念
数据库
数据库管理系统
数据库管理员
常见操作
登录
下面展示一些 内联代码片
。
mysql -u root -p
退出
exit
数据库实例操作
show databases; # 查看所有数据库实例
create database 数据库实例名 # 查看创建语句
drop database 数据库实例名 # 删除数据库实例名
use 数据库实例名 # 使用数据库实例名
表的操作
新建
语法
下面展示一些 内联代码片
。
create table 表名(
列名1 类型 [约束],
...,
列名N 类型 [约束]
)
案例
create table dept(
deptNo int(2),
name varchar(20),
loc varchar(30)
)
复制表
方式一
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
// An highlighted block
create table 表名 子查询;
方式二
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
create table 表名 like 表名;
修改列
添加列
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
alter table 表 add 列名 类型 约束] [comment '注释'];
修改列
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
alter table 表 change old列名 new列名 类型 约束 [comment '注释'];
alter table 表 modify 列名 类型 约束 [comment '注释'];
删除列
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
alter table 表 drop 列名;
常见的约束
主键
含义:用来区分表中记录数的一列或多列(此时一般称为复合主键) 特点:非空且唯一
外键
含义:表中的一列的值是来自其他表中的主键或唯一列
特点:值只能是引用列的值或为null(前提设置可以为空)
NOT NULL
含义:列的值不能为空
UNIQUE
含义:表中的指定的unique的列必须是唯一的
特点:可以为null
ENUM
SET
CHECK
语法
下面展示一些 内联代码片
。
create table 表名(
字段 类型 [约束]
)
修改约束
添加约束
alter table 表名 add constraint 约束名 约束类型 (字段名)
删除约束
下面展示一些 内联代码片
。
alter table 表名 drop primary key -- 删除主键约束
alter table 表名 drop foreign key 约束名 -- 删除外键约束
alter table 表名 drop index 索引名 -- 删除唯一约束
修改表名
语法
下面展示一些 内联代码片
。
alter table 旧表 rename 新表;
案例
下面展示一些 内联代码片
。
alter table new_book rename old_book;
DML
含义
数据操作语言
分类
insert
update
delete
insert 语句
语法
插入一条记录
下面展示一些 内联代码片
。
insert into 表名 [(列1,...,列N)] values (列1的值,...,列N的值);
批量插入
下面展示一些 内联代码片
。
insert into 表名 [(列1,...,列N)] values (列1的值,...,列N的值);
insert into 表名 [(列1,...,列N)] 子查询;
案例
下面展示一些 内联代码片
。
insert into dept values(50,'开发部','广西');
-- 插入null值
insert into dept values (60,null,null);
insert into dept (deptno) values (70);
-- 批量插入
insert into dept (deptno) values (80),(90);
insert into dept (deptno) select empno from emp;
-- 插入时间方式一
INSERT INTO emp (empno, ename, job,mgr, hiredate, sal, comm, deptno) values(1,'xx','yy',7902,'2011-11-1',100,100,50);
-- sysdate() 是mysql自带的的函数,用来返回当前时间
select SYSDATE() from dual;
-- 插入时间方式二
INSERT INTO emp (empno, ename, job,mgr, hiredate, sal, comm, deptno) values(2,'xx','yy',7902,SYSDATE(),100,100,50);
update语句
语法
下面展示一些 内联代码片
。
UPDATE table SET column = value [, column = value] [where condition];
案例
下面展示一些 内联代码片
。
update emp set deptno = 20 where empno = 7782;
update emp set deptno = 20;
update emp set deptno = 20,sal=sal+100 wher deptno = 10;
-- 报错,思考为什么?
update emp set deptno = 50;
delete语句
语法
下面展示一些 内联代码片
。
delete from table [where condition];
案例
下面展示一些 内联代码片
。
delete from dept where deptno = 10;
-- 思考此处为什么报错?
delete from dept where deptno = 20;
-- 删除所有的员工
delete from emp;
DDL
含义
数据定义语言,比如:create table、create view、truancate等等
truncate
含义
截断表