mysql
终端操作:
对数据库操作
1. show databases; #查看所有数据库信息。
2. create database [数据库名称]; #创建数据库
3. drop database [数据库名称]; #删除数据库
4. use [数据库名称]; # 进入到对应的数据库里面
对表操作
5. show tables; # 查看所有表
6. create table [表名] (id int(4),name varchar(40));#创建表
7. create table [新表名] like [旧表名]; #复制表的结构
8. alter table [表名] add [列名] int(4) comment '工资'; #给表添加列,comment '工资' 这是注释。
9. show create table new1; 查看表的结构
10. alter table [表名] change 【旧列名】 【旧列名】 int(40); #修改列名,要添加新列名的数据类型。
11. alter table new1 modify newmoney varchar(40) comment '新工资';# modify 修改列的数据类型,注释,不修改名字
12. alter table new1 drop [newmoney];
常见约束
-
主键
含义:用来区分表中记录数的一列或多列(此时一般称为复合主键)
特点:非空且唯一
-
外键
含义:表中的一列的值是来自其他表中的主键或唯一列
特点:值只能是引用列的值或为null(前提设置可以为空)
-
NOT NULL
含义:列的值不能为空
-
NOT NULL
含义:列的值不能为空
修改约束
-
添加约束
alter table 表名 add constraint 约束名 约束类型 (字段名)
-
删除约束
alter table 表名 drop primary key -- 删除主键约束
alter table 表名 drop foreign key 约束名 -- 删除外键约束
alter table 表名 drop index 索引名 -- 删除唯一约束
DML
- insert
- update
- delete
insert
- 插入一条
insert into new1 values(2,'xiaoming');
# 可以给具体的列插入值
insert into 表名 [(列1,...,列N)] values (列1的值,...,列N的值),(列1的值,...,列N的值),...;
- 批量插入
insert into 表名 [(列1,...,列N)] values (列1的值,...,列N的值),(列1的值,...,列N的值),...;
insert into new1 values(3,'xiaohong'),(4,'longzaitian');
insert into 表名 [(列1,...,列N)] 子查询;
insert into new1 select * from new1;
-- 插入时间方式一
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;
delete语句
语法
delete from table [where condition];
案例
delete from dept where deptno = 10;
DDL
含义
数据定义语言,比如:create table、create view、truancate等等
truncate
含义
截断表
和delete区别
-
truncate是DDL语言,delete是DML语言
-
truncate只能删除表中的全部记录,delete可以指定删除记录
-
trancate会是否表空间,delete不会是否表空间
-
trancate 先删除表,再创建表(注意外键)
-
trancate不能回滚,delete可以回滚