戚权20201014
知识点
数据库
创建数据库
CREATE DATABASE company_info;
使用数据库
USE company_info;
删除数据库
DROP DATABASE hws_20191106;
创建表
CREATE TABLE dept(
deptno INT DEFAULT 1 COMMENT '部门编号', int型默认默认为1
deptname VARCHAR(20) DEFAULT NULL COMMENT '部门名称' 默认为空,comment:注释
)CHARACTER SET utf8; //编码格式
查看表
DESCRIBE dept;
创建和某表结构一样的表
CREATE TABLE d LIKE dept;
删除表
DROP TABLE table_name
添加列
ALTER TABLE d ADD id int;
修改列
ALTER TABLE d MODIFY id VARCHAR(20);
修改列名
ALTER TABLE d CHANGE id ss VARCHAR(20);
删除列
ALTER TABLE d DROP ss;
重命名表
RENAME TABLE d to dd;
CRUD 操作
添加数据
-- 不推荐使用
INSERT INTO dept VALUE(1,'研发部');
-- 2
INSERT INTO dept VALUES(2,'销售部');
INSERT INTO dept VALUES(3,'行政部'),(4,'技术部');
-- 3
INSERT INTO dept(deptno,deptname)VALUES(5,'安保部');
查询数据
-- 查询所有数据
SELECT *FROM dept;
-- 查询某列的数据
SELECT deptname FROM dept;
-- 根据条件查询*
SELECT deptno FROM dept WHERE deptname='销售部';
修改数据
--全部修改为6
UPDATE dept SET deptno=6;
--根据条件修改
UPDATE dept SET deptno=1 WHERE deptname='研发部';
UPDATE dept SET deptno=2 WHERE deptname='销售部';
UPDATE dept SET deptno=3 WHERE deptname='行政部';
UPDATE dept SET deptno=4 WHERE deptname='技术部';
UPDATE dept SET deptno=5 WHERE deptname='安保部';
删除数据
-- 删除数据 ,一定要加 where 条件
DELETE FROM dept WHERE deptno=5;
-- 全部删除
DELETE FROM dept;
-- 清空/截断 所有数据(慎用)
TRUNCATE TABLE dept;
命令行备份
mysqldump -h127.0.0.1 -uroot -proot db_name>path;
使用mysqldump 命令备份数据库
-h指定数据库所在的服务器的ip地址
-u指定登录数据库的密码
db_name是要备份的数据库的名称
使用输出目标操作符>,指定输出的文件具体路径c:/back.sql
命令行还原
mysql -h127.0.0.1 -uroot -proot db_name<back.sql
约束
主键约束
- 主键约束最显著的特征是主键列中的值是不允许重复的,通过主键约束可强制表的实体完整性。当创建或更改表时可通过定义 primary key约束来创建主键。一个表只能有一个primary key约束,且primary key约束中的列不能接受NULL值。
- alter table tab_name add constraint pk_name primary key (deptno);
-- 创建表时
CREATE TABLE
table_name
(
id
int(0) NOT NULL,
name
varchar(20) ,PRIMARY KEY (
id
) -- 设置主键);
-- 设置主键是deptno
ALTER TABLE dept ADD CONSTRAINT pk_name PRIMARY KEY(deptno);
自增长列
并不是所有表在设计完成后都能找到适合作为主键的列,为此数据库提供了自增长列,自增长列是int类型的,其值是int类型的,其值是由数据库自动维护的,是永远都不会重复的,因此自增长是最适合作为主键列的。在创建表时,通过auto_increment关键字来标识自增长列,在MySQL数据库中自增长列必须时主键列。
自增长与主键
CREATE TABLE emp(
empNo INT PRIMARY KEY AUTO_INCREMENT,
job VARCHAR(10),
mgr INT,
sal DOUBLE,
comm DOUBLE,
deptno INT
)CHARACTER SET utf8;
唯一约束
- 对于非主键列中的值也要求唯一性时,就需要唯一约束
ALTER TABLE dept ADD CONSTRAINT UNIQUE(deptname);
默认约束
- 为列中的值设置默认值,default ....,如果已经定了值,默认值就无效了
外键约束
- 表中列的值来自于另外一张表的主键或唯一键的列称为外键FK,将被引用值得表称为主表或父表,将引用值得表称为从表或子表。
alter table userinfo add constraint foreign key fk_dept_no (dept_no) REFERENCES dept(deptno);
dept 是主表, userinfo 是从表
在 userinfo 表中添加或修改时, dept_no 列的值必须是 dept 表中 deptno 字段中的存在值
删除从表数据可以直接删除
删除主表数据时,会先检查从表中有没有对此数据的关联,如果有不能直接删除
on delete CASCADE/ on update CASCADE 级联删除 / 级联更新
总结
今天开始了数据库的学习,感觉开始不是很难还能适应.
近期评论