数据库名=demo;表名=user;字符集=utf8;
1.操作数据库
1.1.直接创建数据库
create database demo;
1.2.判断是否存在并创建
create database if not exists demo;
1.3.指定字符集创建
create database demo character set utf8;
1.4.查看所有数据库
show databases;
1.5.查看某个数据库定义信息
show create database demo;
1.6.修改数据库字符集
alter database demo default character set utf8;
1.7.删除数据库
drop database demo;
1.8.查看正在使用的数据库
select database();
1.9.使用数据库
use demo;
2.操作表和列
2.1.创建表
CREATE TABLE user (
id int(10) NOT NULL AUTO_INCREMENT,
name varchar(30) NOT NULL comment ‘用户名’,
age int(3) DEFAULT NULL comment ‘年龄’,
createtime timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP comment ‘创建时间’,
PRIMARY KEY (id)
);
2.2.查看该数据库中所有表
show tables;
2.3.查看表结构
desc user;
2.4.查看建表语句
show create table user;
2.5.快速创建表结构相同的表
create table new_user like user;
2.6.删除表
drop table user;
2.7.判断存在再删除
drop table if exists user;
2.8.添加表列
alter table 表名 add 列名 类型;
alter table user add remark varchar(20);
2.9.修改列类型
alter table user modify remark varchar(20);
2.10.修改列名
alter table 表名 change 旧列名 新列名 类型;
alter table user change remark new_remark varchar(20);
2.11.删除列
alter table user drop remark;
2.12.修改表名
rename table user to new_user;
2.13.修改字符集
alter table user character set utf8;
3.插入操作
3.1.插入全部字段
insert into user(key1, key2, key3…) values(val1, val2, val3);
// 或者
insert into user values(val1, val2, val3);
3.2.插入部分字段
insert into user( key2, key3…) values(val2, val3);
4.蠕虫复制
蠕虫复制:
在已有的数据基础上,将原来的数据进行复制,插入到新表中
create table new_user like user;
insert into new_user select * from user;
5.修改操作
5.1.不带条件修改
update user set age = 18;
5.2.带条件修改
update user set age = 18 where id = 1;
6.删除操作
6.1.不带条件删除
delete from user;
6.2.带条件删除
delete from user where age = 18;
6.3.删除表记录
truncate将表删除后,创建一张与原来表结构想同的新表
truncate table user;
7.简单查询
7.1.查询所有列
select * from user;
7.2.查询指定列
select id, age from user;
7.3.去除列重复值
select distinct age from user;
8.条件查询
8.1.大于
select * from user where id > 10;
8.2.小于
select * from user where id < 10;
8.3.等于
select * from user where id = 10;
8.4.不等于
select * from user where id <> 10;
select * from user where id != 10;
8.5.逻辑运算
and
、or
、not
(可以使用in
来简写)
8.6.范围查询
select * from user where between 1 and 18;
8.7.模糊查询
%
:表示任意字符,_
:表示一个字符
select * from user where name like ‘%Bosen%’;
8.8.结果排序
asc
:升序(默认),desc
:降序
select * from user order by id desc;
8.9.聚合函数
8.9.1.count
记录为null的不统计
select count(age) from user where id > 10;
8.9.2.sum
指定列不是数值类型,返回结果为0
select sum(age) from user where id > 10;
8.9.3.max
select max(age) from user where id > 10;
8.9.4.min
select min(age) from user where id > 10;
8.9.5.avg
指定列不是数值类型,返回结果为0
select avg(age) from user where id > 10;
8.10.分组查询
通常与聚合函数配合使用,如下查询男性和女性的年龄总和
select sex, sum(age) from user group by sex;
8.11.分页查询
// 跳过10条数据,显示往后的10条记录
// 即显示11~20的数据
select * from user limit 10, 10;
9.数据库约束
9.1.主键约束
9.1.1.创建主键
alter table user add primary key;
9.1.2.删除主键
alter table user drop primary key;
9.1.3.主键自增
auto_increment
// 主键约束设置自增
alter table user modify id int auto_increment;
// 修改自增起始值
alter table user auto_increment= 100;
9.2.唯一约束
9.2.1.创建唯一约束
alter table user add unique(
username
);
9.2.2.删除唯一约束
alter table user drop constraint username;
9.3.非空约束
9.3.1.创建非空约束
alter table user modify age int(10) not null
9.3.2.删除非空约束
alter table user modify age int(10) null
10.连接查询
10.1.内连接查询
select * from user1 inner join user2 on user1.id = user2.id;
10.2.左连接查询
select * from user1 left join user2 on user1.id = user2.id;
10.3.右连接查询
select * from user1 right join user2 on user1.id = user2.id;
10.4.全连接
(select colum1,colum2…columN from user1) union (select colum1,colum2…columN from user2)
10.5.子查询
select * from user1 join user2;
12.修改数据库密码
mysqladmin -u root -p password 654321
// 回车后输入原密码确认身份