MySQL学习笔记1(建表和约束)

1.查看编码方式语句:SHOW VARIABLES LIKE 'charater_set_client';


2.修改MySQL目录下的my.ini文件也可修改字符集编码default-character-


set=gbk(修改后需重启MySQL服务)


3.bin目录下的MySQLInstanceConfig.exe,重新配置




4.建表(大小写区分与系统有关)
CREATE DATABASE 数据库名;
DROP DATABASE 数据库名;
DROPP TABLE 表名;
SHOW TABLES;
SHOW DATABASES;
USE 数据库名;
CREATE TABLE 表名;
CREATE TABLE tb_emp(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(18),
sex VARCHAR(2) CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100)
dept_id INT
);


#修改列类型 , 不是任何情况下都可以修改的,当字段只包含空值时可以,


其他情况下可能不成功
ALTER TABLE tb_emp MODIFY name VARCHAR(18);
#增加列
ALTER TABLE tb_emp ADD mobile VARCHAR(100);
#删除列
ALTER TABLEtb_emp DROP COLUMN email;
ALTER TABLE tb_emp DROP mobile;#mysql特有
#修改列名
ALTER TABLE tb_emp CHANGE name emp_name VARCHAR(18);
#修改表名
ALTER TABLE tb_emp RENAME tb_employee;
ALTER TABLE tb_emp to tb_employee; 


5.约束(主键约束,外键约束,唯一约束,检查约束,非空约束)
(1)建表时键约束
CREATE TABLE tb_emp(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
dept_id INT REFERENCES tb_dept(id)#外键约束没起作用
);


(2)建表最后建立约束
CREATE TABLE tb_emp(
id INT AUTO_INCREMENT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
PRIMARY KEY (id),
#建立外键CONSTRAINT FOREIGN KEY 外键名(外键)REFERENCES 主表(字段)
CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(id) 
);
(3)建表后,建立约束,表级
CREATE TABLE tb_emp(
id INT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) ,
age INT ,
address VARCHAR(200),
email VARCHAR(100)
dept_id INT
);


#添加主键
ALTER TABLE tb_emp
ADD PRIMARY KEY(id);


#更改自增长
ALTER TABLE tb_emp
MODIFY COLUMN id INT AUTO_INCREMENT;




#添加外键
ALTER TABLE tb_emp
ADD CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept 


(id);


#添加唯一键
ALTER TABLE tb_emp 
ADD UNIQUE (email);


#添加检查约束
ALTER TABLE tb_emp
ADD CONSTRAINT CHECK (age > 18 AND age < 60);


#删除约束
#修改非空约束
ALTER TABLE tb_emp MODIFY NAME VARCHAR(18);


#删除唯一约束
ALTER TABLE tb_emp DROP INDEX email;


#删除主键约束,注意自动增长问题
ALTER TABLE tb_emp MODIFY id INT;
ALTER TABLE tb_emp DROP PRIMARY KEY (id);


#删除外键约束 mysql下要用它定义的名字
ALTER TABLE tb_emp DROP FOREIGN KEY tb_emp_fk


#默认
CREATE TABLE tb_emp(
id INT AUTO_INCREMENT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) DEFAULT '男' CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
PRIMARY KEY (id),

#建立外键CONSTRAINT FOREIGN KEY 外键名(外键)REFERENCES 主表(字段)

CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(id) 
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值