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