一.创建数据库
创建数据库
create database test;
使用数据库
use test;
二.查看数据库中的表
查看表
show tables;
三.创建数据表
create table pet(
name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth date,
death date,); #注意这里多打了一个,所以运行错误了
create table pet(
name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth date,
death date);
查看创建表的结构
describe pet;
插入
insert into pet
values (‘aa’,‘bb’,‘cc’,‘f’,‘1999-03-30’,NULL);
mysql常用数据类型
https://www.runoob.com/mysql/mysql-data-types.html
数值
注意范围
类型前面加unsigned
create table testType(
number tinyint
)
create table testType(
number tinyint unsigned
)
时间
按照格式选择
注意格式
DATE YYYY-MM-DD
TIME HH:MM:SS
字符
注意范围(长度)
CHAR
varchar
日期注意格式,数值和字符串注意长度(范围)
删除和更新
1.首先插入一部分
INSERT INTO pet VALUES('kk1','cc1','dog1','1','1998-1-2',null);
INSERT INTO pet VALUES('kk2','cc2','dog2','2','1998-2-2',null);
INSERT INTO pet VALUES('kk3','cc3','dog3','1','1998-3-2','1998-12-2');
INSERT INTO pet VALUES('kk4','cc4','dog4','2','1998-4-2',null);
2.使用delete命令删除一行
DELETE FROM tablesName WHRER 条件;
3.使用truncate清空数据
truncate table pet;
使用describe 依然可以看到表的情况
4.使用drop删除表结构
drop table pet;
无法使用describe了
3.使用update命令修改数据
UPDATE tableName SET 字段1=值1,字段2=值2 ... WHERE 条件;
mysql建表中的约束
1 主键约束
它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空
create table user(
id int primary key,
name varchar(20)
);
insert into user values(1,'fuck');
descirbe user;
不可以为null
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
±------±------------±-----±----±--------±------+
2.复合主键
create table user2(
id int,
name varchar(20),
password varchar(20),
primary key(id,name)
);
运行describe user2;
id,name不可为null
INSERT INTO user2 VALUES (1,'老王','123456');
INSERT INTO user2 VALUES (2,'老王','123456');
INSERT INTO user2 VALUES (1,'老李','123456');
插入成功,说明复合主键可以出现部分字段重复
3.自增约束
create table user3(
id int primary key auto_increment,
name varchar(20)
)
±------±------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±---------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
±------±------------±-----±----±--------±---------------+
INSERT INTO user3(name) VALUES('张三');
INSERT INTO user3(name) VALUES('李四');
插入成功后主键自动加入
insert into user3 values(2,'sb3');
再插入重复会报错,主键的因故
insert into user3 values(3,'sb3');
insert into user3 values(5,'sb3');
不顺序的插入也可以。
INSERT INTO user3(name) VALUES('sb4');
再插入会从第6(5+1)开始。
4唯一约束
CREATE TABLE user5(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);
新增name为唯一约束:
ALTER TABLE user5 ADD UNIQUE(name);
或者声明的时候加unique
CREATE TABLE user5(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) unique
);
±------±------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±---------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | UNI | NULL | |
±------±------------±-----±----±--------±---------------+
主键约束和唯一约束可以共存,唯一约束可以为null
INSERT INTO user5(name) VALUES ('cc');
INSERT INTO user5(name) VALUES ('cc');
执行报错
5. 非空约束
CREATE TABLE user5.5(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) not null
);
6.默认约束
status INT DEFAULT 0 COMMENT'用户状态0:启用 1:禁封 默认:0'
create table user6(
id int primary key auto_increment comment'主键id',
name varchar(20) not null,
phone_number varchar(20) not null comment'用户手机号,不能为空',
status int default 0 comment'用户状态0:启用 1:封禁 默认:0'
);
7.外键约束
建表classes
CREATE TABLE classes(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'班级表id',
name VARCHAR(20) COMMENT'班级名称'
);
建表student ,设置外键class_id
FOREIGN KEY (class_id) REFERENCES classes(id)
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT COMMENT'学生表id',
name VARCHAR(20) COMMENT'学生姓名',
class_id int COMMENT'教室id,这张表中的class_id是classes表中id的值',
FOREIGN KEY (class_id) REFERENCES classes(id)
);
被引用的列,在引用值全部被删光之前无法删除
8.如何建表之后添加/删除约束
CREATE TABLE user4(
id INT,
name VARCHAR(20)
);
增加主键
ALTER TABLE user4 add PRIMARY KEY(id);
删除主键
ALERT TABLE user4 DROP PRIMARY KEY;
使用modify 修改字段.添加约束:
主键
ALTER TABLE user4 MODIFY id INT PRIMARY key;
自增长
ALTER TABLE user4 MODIFY id INT AUTO_INCREMENT;