Mysql笔记(一)创建数据库、创建表、修改表、删除表,以及建立约束
这是我在学习Mysql之路上做的笔记,今天将它粘出来。这一篇比较基础主要是创建数据库、创建表、修改表、删除表,以及建立约束:非空约束、主键约束、外键约束、唯一值约束。有错误的欢迎大家指出。。。
-- 命令行创建数据库
#1、创建数据库
CREATE DATABASE luo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#2、给数据库授权,
#其中密码是可选项;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON luo.* TO [email protected]_3309 identified by 'root';
#删除数据库和#使用数据库
DROP DATABASE luo;
USE luo;
CHAR的长度是固定的,而VARCHAR的长度是可以变化的,
比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用3个字节的长
#创建部门表
CREATE TABLE tb_dept(
deptno INT PRIMARY KEY auto_increment COMMENT '部门编号',
dname VARCHAR(18) COMMENT '部门名称',
loc VARCHAR(100) COMMENT '部门地址'
)engine=innodb DEFAULT charset=utf8;
#显示表的结构
DESC tb_dept;
#删除表,信息以及结构
DROP TABLE tb_dept;
-- 删除
#DELETE删除表数据,保留表结构,可以回滚
DELETE FROM tb_dept WHERE dname='销售部';
#DROP删除表结构和数据:删除最快,直接从内存删除
DROP TABLE tb_dept;
#TRUNCATE清空一个表数据,不可以回滚
TRUNCATE TABLE tb_dept;
#修改列类型
ALTER TABLE tb_dept MODIFY dname INT;
ALTER TABLE tb_dept MODIFY COLUMN dname VARCHAR(18);
#增加列
ALTER TABLE tb_dept ADD COLUMN phone VARCHAR(15);
#删除列
ALTER TABLE tb_dept DROP COLUMN phone;
#更改列名
ALTER TABLE tb_dept CHANGE dname dept_name VARCHAR(18);
ALTER TABLE tb_dept CHANGE COLUMN dept_name dname VARCHAR(18);
#更改表名两种方法
ALTER TABLE tb_dept RENAME dept;
RENAME TABLE dept TO tb_dept;
-- 1、创建表国家/地区,并确保不会在表格中输入除中国China,美国America,日本Japan之外的任何国家/地区
CREATE TABLE countries(
country_id VARCHAR(5) NOT NULL,
country_name enum('China','America','Japan') DEFAULT 'China'
)ENGINE=INNODB DEFAULT charset=utf8;
INSERT countries VALUES('1','America');
INSERT countries(country_id) VALUES('1');
SELECT *FROM countries;
DROP TABLE IF EXISTS countries;
建立约束:非空约束、主键约束、外键约束、唯一值约束
#约束:保证数据库的完整性
#1、非空约束 not null
#2、主键约束primary key
/*一个表只允许有一个主键,
作用:唯一确定一行数据的字段
主键可以是一个字段也可以是多字段的组合
当创建主键约束时,MySQL会为主键创建索引
*/
#3、外键约束foreign key
#4、唯一值约束unique
#5、检查约束check在MySQL中不起作用,CHECK子句会被分析,但是会被忽略。
#在建表时建立约束
#创建员工表
CREATE TABLE tb_emp(
empno INT PRIMARY KEY auto_increment COMMENT '员工编号',
ename VARCHAR(18) NOT NULL COMMENT '员工姓名',
job varchar(8) COMMENT '员工职位' enum(),
mgr int COMMENT '上级领导',
hiredate DATE COMMENT '入职时间',
sal int COMMENT '薪资',
comm int COMMENT '奖金',
phone VARCHAR(18) UNIQUE COMMENT '电话',
dept_id int COMMENT '部门编号',
CONSTRAINT fk_emp FOREIGN KEY (dept_id) REFERENCES tb_dept(deptno)
)COMMENT='员工表';
#显示表的结构
DESC tb_emp;
#显示创建表的命令
SHOW CREATE TABLE tb_emp;
#删除表
DROP TABLE tb_emp;
#在建表之后建立约束
#创建员工表
CREATE TABLE tb_emp(
empno INT COMMENT '员工编号',
ename VARCHAR(18) COMMENT '员工姓名',
job VARCHAR(8) COMMENT '员工职位',
mgr INT COMMENT '上级领导',
hiredate DATE COMMENT '入职时间',
sal INT COMMENT '薪资',
comm INT COMMENT '奖金',
phone VARCHAR(18) COMMENT '电话',
dept_id INT COMMENT '部门编号'
)COMMENT='员工表';
#非空约束NOT NULL
ALTER TABLE tb_emp MODIFY ename VARCHAR(18) NOT NULL;
#删除非空约束
ALTER TABLE tb_emp MODIFY ename VARCHAR(18);
#主键约束PRIMARY KEY
ALTER TABLE tb_emp ADD PRIMARY KEY (empno);
#删除主键约束
ALTER TABLE tb_emp DROP PRIMARY KEY;
#外键约束FOREIGN KEY
ALTER TABLE tb_emp ADD
CONSTRAINT fk_emp FOREIGN KEY (dept_id) REFERENCES tb_dept(deptno);
#删除外键约束(外键的名字由MySQL自动非配的,自己给的不起作用,Sql标准要起名)
ALTER TABLE tb_emp DROP
FOREIGN KEY fk_emp;
#唯一约束UNIQUE
ALTER TABLE tb_emp ADD UNIQUE(phone);
#删除唯一约束
ALTER TABLE tb_emp DROP INDEX phone;
#修改字段为自动增长
ALTER TABLE tb_emp
MODIFY empno INT auto_increment;
#取消字段自动增长
ALTER TABLE tb_emp
MODIFY id INT
上一篇: 使用webpack打包项目需要的包
下一篇: Roller4.0中文标题乱码解决方案
推荐阅读
-
mysql数据库表的创建以及字段的增删改查操作及一些常用的查询命令介绍
-
DDL创建数据库,表以及约束(极客时间学习笔记)
-
MySQL学习笔记之创建、删除、修改表的方法_MySQL
-
mysql语句:创建建数据库、创建建数据表、查看数据库、查看数据表+新增、修改、删除表记录
-
MySQL数据库(四):DML(增、改、删)、DDL(表的创建、修改、删除、复制等)、约束、标识列(自增长列)
-
MySQL学习总结(六)DDL语言之库的创建/修改库名/修改库的字符集/库的删除/表的创建/修改列名/添加列/修改列的类型或约束/删除列/修改表名/表的删除/表的复制
-
七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)
-
SQL系列一——数据库与表操作以及创建约束
-
mysql创建create,修改alter,删除drop 数据库和表,以及解决显示中文乱码问题
-
MySQL学习(3) - 数据库和表的基本操作(创建、删除、查看、修改)