一、创建数据库和创建表
1、建库:CREATE DATABASE 数据库名 CHARACTER SET utf8
2、删除数据库:drop database 数据库名
3、use 数据库 选择数据库
mysql -u root -p 连接数据库
show tables; 查看该数据库下所有表
describe 表名; 查看表的区段
4、建表:CREATE TABLE student(
id INT NOT NULL auto_increment PRIMARY KEY COMMENT ‘ID’, //非空约束、自动增长、设置主键
cardid char(11) UNIQUE COMMENT ‘’, //唯一约束
birthday date COMMENT ‘生日’,
sex varchar(4) COMMENT ‘性别’,
aca char(4),
did int,
primary key (id)
)
5、修改表名:rename table test to test1
6、修改字段类型:
alter table 表名 modify column 字段名 类型;
例子:alter table address modify column city char(30);
7、修改字段名:
alter table 表名 change 源字段名 新字段名 字段类型;
8、添加字段:
alter table 表名 add 字段名 varchar(10) not null;
例子:alter table table1 add transactor varchar(10) not Null;
9、
–删除列:
alter table user drop column id;
–修改列为主键:
alter table user modify userid int auto_increment primary key;
–增加字段:
alter table user add column bizuserlevel tinyint not null default 0;
–设置字段的默认值:
alter table user alter column bizuserlevel set default 0;
–将NULL修改为not null:
alter table user modify gender char not null;
–调整字段位置:
alter table user Add column email varchar(20) not null default ‘’ AFTER mobile;
– ALTER TABLE user CHANGE email email varchar(30) null default ‘’ before mobile;
–修改字段名称和类型:
ALTER TABLE user CHANGE city_name location_city varchar(50) DEFAULT ‘’;
– 修改字段类型:
alter table user change amount orderAmount decimal(24,6) default 0;
– 索引操作:
ALTER TABLE user ADD PRIMARY KEY (userid);
–添加唯一索引:
alter table user add UNIQUE(mobile);
–添加普通索引:
ALTER TABLE user ADD INDEX ix_lastmodifytime(lastmodifytime );
–添加组合索引:
ALTER TABLE user ADD INDEX ix_state_cityid(state,city_id );
–添加全文索引:
ALTER TABLE user ADD FULLTEXT(username);
–删除主键:(若这个主键是自增的,先取消自增长)
10、三大范式(详见收藏)
第一范式:表中的每一列都是不可再分的基本数据项;
第二范式:表中的每一条记录都必须是唯一的;
第三范式:实体中的属性不能是其他实体中的非主属性,每一列数据都和主键直接相关,而不能间接相关;
二、数据库表操作
1、添加
INSERT INTO table (字段1,字段2) values (值1,值2)
2、查询
SELECT * FROM table WHERE 1=1
3、删除
DELETE FROM table
4、修改
UPDATE table SET 字段1=‘’,字段2=‘’ WHERE id=1
5、普通查询和降序排序,升序(ASC)
SELECT * FROM table WHERE 1=1 AND CATEGORY_ID = 1 ORDER BY id DESC
6、数量查询
SELECT COUNT(*) FROM table
7、左连接(LEFT JOIN):从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
8、全模糊查询
select * from table where filed like ‘%字段值%’
9、分组查询(group by/ having): having对分组查询结果进行过滤
先分组后过滤group by…having…
10、去掉重复结果:
select distinct from table
11、BETWEEN 运算符用于 WHERE 表达式中,选取介于两个值之间的数据范围。BETWEEN 同 AND 一起搭配使用,语法如下:
WHERE column BETWEEN value1 AND value2
例子:SELECT * FROM user WHERE uid BETWEEN 2 AND 5
12、limit
mysql的分页limit的使用方法大全
1.取表中的n行之后的m条元组(limit n,m)
select * from student limit 4,8; //取出student表中第4行后的8条元组(这里的区间是左开右闭)
2.取出表中前m行元素(limit m)
select * from student limit 3; //取出student表中的前3行元组
3.取出某表某页中的元素
在某表中满足某一条件的元组集合我们认为是页。
<1>取页中的n行之后的m条元组(limit n,m)
select * from student where score>75 limit 2,2; //取出满足成绩大于75分的页中2行以后两条元组
<2>取页中的m条元组(limit m)
select * from student where score>75 limit 2; //取出满足成绩大于75分的页中前2行元组
12、表连接分类:内连接、外连接(左连接,右连接):
https://blog.csdn.net/zjt980452483/article/details/82945663