一 、数据库操作
/*
创建数据库
create database 数据库名;
*/
CREATE DATABASE mybase;/*
删除数据库
drop database 数据库;
*/
DROP DATABASE mybase;
/*
查看数据库信息
show create database 数据库名;
*/
SHOW CREATE DATABASE mybase;
/*
查询所有数据库
*/
SHOW DATABASES;
/*
使用数据库
use 数据库名;
*/
USE mybase;
/*
查看正在使用的数据库
*/ SELECT DATABASE();
二、数据库表操作
/*
创建数据库表
create table 表名(
列名 数据类型[长度] [约束],
列名 数据类型[长度] [约束],
列名 数据类型[长度] [约束]
);
数据类型[长度]:如果类型为整数型则不写长度
如果是字符型必须写长度.
约束:限制列的数据
主键约束:限制当前列的数据 不能是空值,必须是唯一的。
primary key
mysql支持主键自动增长 auto_increment 让主键每次自动+1
注意:只能是主键自动增长,并且 主键的类型需要是整数
*/
CREATE TABLE category(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(100)
);
/*
删除表
drop table 表名;
*/
DROP TABLE category;
/*
查看表的定义结构
*/
DESC category;
/*
查看所有表
*/
SHOW TABLES;
/*
修改表结构
*/
/*
添加列
alter table 表名 add 列名 数据类型[长度] [约束];
*/
ALTER TABLE category ADD `desc` VARCHAR(200);
/*
修改列的数据类型 约束
alter table 表名 modify 列名 数据类型[长度] [约束];
*/
ALTER TABLE category MODIFY `desc` INT ;
/*
修改列名 数据类型 约束
alter table 表名 change 旧列名 新列名 数据类型[长度] [约束];
*/
ALTER TABLE category CHANGE `desc` description VARCHAR(100);
/*
删除列
alter table 表名 drop 列名;
*/
ALTER TABLE category DROP description;
/*
修改表名
rename table 旧表名 to 新表名;
*/
RENAME TABLE cat TO category;
三、数据库表数据操作
/*
添加数据
insert into
*/
/*
添加数据格式
insert [into] 表名(列名1,列名2...) values(值1,值2...)
列名和值的顺序要保持一致 顺序一致 个数一致 数据类型一致
除了数字类型 其他类型都需要加''
*/
INSERT INTO category(cid,cname) VALUES(1,'服装');
/*
由于设置了主键的自动增长
可以忽略主键添加
*/
INSERT INTO category(cname) VALUES('家电');
/*
忽略字段添加
insert into 表名 values(全列值);
*/
INSERT INTO category VALUES(NULL,'鞋帽');
/*
批量添加
insert into 表名(列名1,列名2...) values(值1,值2...),(值1,值2...),(值1,值2...),(值1,值2...)
*/
INSERT INTO category(cname) VALUES('厨具'),('玩具'),('家具');
/*
修改记录
update
*/
/*
修改记录的格式
update 表名 set 列名=值,列名=值... [where 条件]
*/
UPDATE category SET cname ='化妆品' WHERE cid = 1 ;
/*
将cid为6 和为7的分类名称都改成 服装
*/
UPDATE category SET cname = '服装' WHERE cid =6 OR cid =7;
/*
删除记录
delete from 表名 [where 条件]
*/
DELETE FROM category WHERE cid = 6;
四、数据库表约束
/*
主键 primary key
主键是每条记录的唯一表示
主键列要唯一
主键列要非null
每个表都应该具备一个主键
并且都只能有一个主键
并且主键一般都与业务逻辑的字段无关
*/
/*
添加主键方式1
创建表时 列名后跟主键约束
*/
CREATE TABLE category(
cid INT PRIMARY KEY AUTO_INCREMENT,
cname VARCHAR(100)
);
/*
添加主键方式2
constraint区域:最后一列和 );之间的位置
[constraint 主键名(自定义)] primary key(字段名)
*/
CREATE TABLE category(
cid INT,
cname VARCHAR(100),
CONSTRAINT pk_cid PRIMARY KEY(cid)
);
/*
添加主键的方式3
修改表结构
alter table 表名 add [constraint 主键名] primary key(字段名)
*/
CREATE TABLE category(
cid INT,
cname VARCHAR(100)
);
ALTER TABLE category ADD CONSTRAINT pk_cid PRIMARY KEY(cid);
/*
删除主键约束
alter table 表名 drop primary key;
*/
ALTER TABLE category DROP PRIMARY KEY;
/*
联合主键 将两个字段设置为一个主键
两个字段的值不可以都相同
*/
ALTER TABLE category ADD PRIMARY KEY(cid,cname);
/*
非空约束 not null
当前列不接收null值
*/
/*
添加非空约束1
创建表时 列名后直接添加
*/
CREATE TABLE persons(
pid INT PRIMARY KEY AUTO_INCREMENT,
lastname VARCHAR(100) NOT NULL,
firstname VARCHAR(100) NOT NULL,
address VARCHAR(100) ,
city VARCHAR(100)
)
/*
添加非空约束方式2
*/
ALTER TABLE persons MODIFY lastname VARCHAR(100) NOT NULL;
/*
删除非空约束
alter table 表名 modify 列名 数据类型[长度] [约束];
*/
ALTER TABLE persons MODIFY lastname VARCHAR(100);
/*
唯一约束 unique
一个表可以有多个唯一约束
但是只有一个主键约束
*/
/*
添加唯一约束方式1
*/
CREATE TABLE persons(
pid INT PRIMARY KEY AUTO_INCREMENT,
lastname VARCHAR(100) UNIQUE,
firstname VARCHAR(100) ,
address VARCHAR(100) ,
city VARCHAR(100)
)
/*
添加唯一约束方式2
constraint 约束名(自定义) unique(列名)
*/
CREATE TABLE persons(
pid INT PRIMARY KEY AUTO_INCREMENT,
lastname VARCHAR(100) ,
firstname VARCHAR(100) ,
address VARCHAR(100) ,
city VARCHAR(100),
CONSTRAINT UNIQUE(lastname)
)
/*
修改表结构添加唯一约束
alter table 表名 add [constraint 约束名] unique(列名);
*/
ALTER TABLE persons ADD CONSTRAINT UNIQUE(firstname)
DESC persons;
/*
删除唯一约束
alter table 表名 drop index 列名;
*/
ALTER TABLE persons DROP INDEX firstname;